- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章类的重用 第五章 类的重用 public boolean equals(Object obj) { Student st=null; if(obj instanceof Student) //首先判断obj是否为当前类的对象。 st = (Student)obj; else return false; if(…) //属性判断表达式 return true; else return false; } 上述例子改进后,可写为: 例5.6:equals方法综合应用示例。 class Student { String name; int age; public boolean equals(Object obj) { Student st=null; if(obj instanceof Student) st = (Student)obj; else return false; if(== st.age==this.age) return true; else return false; } } public class Test { public static void main(String[] args) { Student p=new Student(); Student q=new Student(); Student r=p; =xyz; p.age=13; =xyz; q.age=13; System.out.println(p==q); System.out.println(p.equals(q)); System.out.println(p==r); } } 运行结果如图5-6。 图5-6 对象的比较 5.3 ?终结类与终结方法 5.3.1终结类 如果一个类被final修饰或限定,说明这个类不可能有子类,即final类不能有派生类。如果把有继承关系的类组织成一棵倒状的树,所有类的父类是树根,每个子类是一个分支,则被声明为final的类只能是这棵树上的叶节点。 被声明为final的类通常是一些固定作用,用来完成某种标准功能的类,不能被继承以达到修改的目的,如java系统的java.long.String、java.long.Math、.InetAddress。在java程序设计中,当引用一个类或其对象是实际引用的既可能的确是这个类或其对象本身,但也可能是这个类的子类及子类对象,即具有一定的不确定性。将一个类声明为final,则可以将它的内容、属性和功能固定下来,与它的类名形成稳定的映射关系,从而保证引用这个类时所实现功能的稳定性。 Final类的存在有以下两个理由:? l????????? 安全方面:黑客用来搅乱系统的一个手法是建立一个类的派生类,然后用它们的类代替原来的类。这个派生类看起来和原来的类没有什么区别,但实际上它和原始类做完全不同的事情,可能引起一系列的系统损坏或机密泄漏。为了避免这种情况发生,可以声明此类为final类,从而不能派生任何子类。 在java.long包中,String类就是由于这个原因而声明为final类的。这个类对编译器和解释器的操作非常重要,以至于java必须保证一个方法或对象无论何时使用String时,String必须来自java.long包,而非其他的包。这就保证了所有的字符串没有奇异的、不一致、不想要或不可预知的属性。 如果编译一个final类的子类,编译器将输出一个错误信息,编译不通过。此外,字节校验码通过检查一个类不是final类的子类来确保颠覆不会发生在字节码层次上。 l????????? 设计方面从面向对象设计的角度考虑,如果某些对象从 概念上讲不应该有任何派生类,则最好声明该类为最终类。 声明一个类为最终类,须在类名前加修饰符final。格式如下: final class 类名 { … } 5.3.2终结方法 final修饰符修饰的方法是功能和内部语句不能被更改的最终方法,即不能被当前类的子类重载的方法。在面向对象程序设计中,方法的重写使得子类可以对父类中的方法进行更新。这种方法固然有其自身优势,但对于一些比较重要且不希望子类进行更改的方法,可以使用final关键字对成员方法进行声明,这样,该类的子类就不能再重新声明与此方法同名的方法了, 此时子类只能使用从父类的继承来的方法。通过这种方法,固定了某些方法所对应的操作,可以防止子类对父类关键方法的错误重写,增加了代码的安全性和正确性。 除了安全方面的考虑,将
您可能关注的文档
- IT职业英语 高巍巍 YF-Grammar 语法 unit2 Passive voice被动语态.ppt
- IT职业英语 高巍巍 YF-Grammar 语法 unit3 Sentences句子.ppt
- IT职业英语 高巍巍 YF-Grammar 语法 unit5 Reported speech间接引语.ppt
- IT职业英语 高巍巍 YF-Grammar 语法 unit7 Relativeattributive clauses定语从句.ppt
- IT职业英语 高巍巍 YF-Grammar 语法 unit11 Non finite verb非谓语动词.ppt
- IT职业英语 高巍巍 YF-Grammar 语法 unit12 Infinitive&Gerund不定式&动名词.ppt
- J2ME移动软件程序设计 -卢军 第2章.ppt
- J2ME移动软件程序设计 -卢军 第5章.ppt
- J2ME移动软件程序设计 -卢军 第12章.ppt
- J2ME移动软件程序设计 -卢军 第13章.ppt
- Java程序设计与应用 -张仕斌 第9章.ppt
- Java程序设计与应用 -张仕斌 第11章.ppt
- Java程序设计与应用 -张仕斌 第12章.ppt
- Java高级程序设计 -王路群 第02章 异常.ppt
- Java高级程序设计 -王路群 第06章 Swing.ppt
- Java高级程序设计 -王路群 第09章 Java数据库连接.ppt
- Java高级程序设计 -王路群 第11章 Java API.ppt
- Java语言程序设计 -郭磊 第01章 Java语言概述.ppt
- Java语言程序设计 -郭磊 第03章 Java中的类与接口.ppt
- Java语言程序设计 -郭磊 第05章 Java中的多线程.ppt
文档评论(0)