- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运算符与equals方法
* * * * * * final即最终的意思。这个关键字可以被用来修饰类,方法或者变量。所修饰的事物即为最终的,不可修改的。 final修饰的类是不能被继承的类 final修饰的方法是不能被覆盖的 final修饰的变量是常量,不能被修改的 * * 前面已经提到了,一个类一旦被声明成final的,则这个类就不能被继承了 ,这可以限制其他人对类的随意扩展。 例如,在JDK中,Java.lang.String就是一个final类。这样做是出于安全原因,因为它保证,如果方法有字符串的引用,它肯定就是类String的字符串,而不是某个其它类的字符串,这样保证了 String不被恶意窜改,保证了其在程序中的稳定性。 在开发中,我们也可以借鉴这样的思想,把不想让被人扩展的类设置成final的。 * * 一个方法如果是被声明成final的,则这个方法是不能被覆盖的。 这也是出于安全的考虑。final保证方法有唯一的实现。 例如,Thread类的stop方法就被声明称final的,因为stop是进行线程控制的,复写这个方法可能会引起程序的错误,所以我们把它设置为final的,以保证没有人能复写它。 前面我们已经提到了“动态联编”,java是一种面向对象的语言,支持overload和override。一般程序只有在运行的时候,才能确定调用调用的是哪个方法。这就是“动态联编”。 而final的方法不能被复写,所以在编译的时候能直接确定方法调用的方法,运行的效率比普通代码高 。 * * 如果变量被标记为final,则这个变量称为常数。这里有一个声明final变量的例子。 在JDK中有很多的变量被声明称final的,例如,Math类中的PI变量,这是数学中的一个常量,值是固定的,不能让任何人修改它。 另外:注意,如果对一个实例的引用被标记为final,那么该引用不能指向任何其它对象。但可能改变对象的内容,因为只有引用本身是final的。 下面有一个例子 * * 在本例中,在第6行,我们把A的一个引用赋给了final变量test ,这时,我们在第7行改变了test的内容,这是没有问题的。但如果在第8行把test指向另外一个对象,则会出现编译错误。因为test是final的。 这就是引用的内容可以改变,引用不可以改变。 * * 下面讲解instanceof运算符 * * 如果我们想知道一个对象是哪个类的,这时我们用到了instanceof运算符。 首先要记住instanceof是个运算符,而不是什么类的方法。他用来判断一个对象是否是某个类的,他返回一个boolean值。 使用方法是“对象a instanceof 类A” 如果a是A的一个对象则返回true。 如果如果a是A类的子类的对象,也会返回true 否则返回false 下面有一个例子。 * * 这个例子中有3个类Employee类, Manager类 Contractor 类。 其中Manager和Contractor 都是Employee的子类。 在第8行,e instanceof Manager 为false 。因为,e是Employee的对象, Employee是Manager的父类而不是子类。 在第9行,e instanceof Employee为true,因为,e是Employee的对象。 在第10行,m instanceof Employee为true,因为,m是Manager的对象,而Manager是Employee的子类。 在第11行, m instanceof Contractor为false,因为m是Manager的对象,而Manager不是Contractor的子类。 通过这样的方法,我们就可以判段某个对象是否是哪个类的了。 * * 下面讲解String和StringBuffer这两个十分相似,又经常被搞混的类。 * * String和StringBuffer都用来表示字符串的,但他们有不同之处。 String最大的特点是不变性,即对象一旦创建,内容是不能被改变的。要改变内容只能生成新的对象。 在本页的例子中共创建了两个对象,首相用new方法创建了一个String,内容为 “I love”。 当这个对象被附加上“Java”时,原来的a对象并没有改变,而是生成了一个新的对象”I love Java”,并赋给a。这就是Sting类的不变性。 教材中 列出了String类的一部分源码,大家可以参照源码理解一下String的不变性。 String对象的存储是用数组来实现的,数组一旦初始化长度是不能变的,所以String对象具有不变性。 * * StringBuffer类也是用来表示字符串,和String相比,最大的特点是可变的。 看一下本页的例子,在这个例子中
您可能关注的文档
最近下载
- 机电安装工程调试方案.doc VIP
- 2024-2025学年初中数学八年级上册青岛版(2024)教学设计合集.docx
- 化工单元操作(浙大)中国大学MOOC慕课 章节测验期末考试客观题答案.docx VIP
- 2023-2024学年湖南省郴州市七年级(下)期末数学试卷(含答案).pdf VIP
- 酒店宾馆客房卫生检查表.docx VIP
- 标准图集-03S402-室内管道支架及吊架.pdf VIP
- 2024铁路隧道机械化施工技术指南.pdf
- 2024年中考语文备考之八年级上学期名著阅读《红星照耀中国》要点梳理+中考真题.docx VIP
- 《新闻编辑》课程考试复习题库(含答案).docx VIP
- 《建设项目工程总承包计价规范》解读与应用 (正式版).pptx
文档评论(0)