一、Object类里面的ToString方法
1.包:java.lang.Object
2.Object类是一切子类都可以使用的
3.public String toString( ) 默认返回的是堆内存中的地址信息;默认地址信息格式:类的全限名(包名+类名)@内存地址
4.直接调用toString方法(对象名.toString)返回的是对象在内存中的地址
5.直接输出对象名称,默认会自动调用toString()方法,所以toString()可以省略不写
6.开发中直接输出对象或者默认输出对象的地址都是毫无意义的
开发中输出对象变量,更多的时候是希望看到对象的内容数据而不是地址信息,所以父类toString方法存在的意义就是为了子类重写,以便返回对象的内容信息
7.其实代码可以自动生成按住“alt+insert”找到toString点击即可就可以查看对象内容
8.重写tostring就是为了看到对象的内容信息
二、equals方法
1.public boolean equals(Object obj):指示其他某个对象是否与此对象相等
2.==运算符返回一个布尔值,基本数据类型比较的是值,引用数据类型比较的是两个对象的地址值
3.Object类的equals方法 比较的是两个对象的地址值,没有意义,所以我们要重写equals方法,比较两个对象的属性
问题就是:隐含着一个多态,多态的弊端:无法使用子类特有的内容(属性和方法); 解决:可以使用向下转型
4.Null是不能调用方法的,就会抛出空指针异常,Objects类的equals方法,对两个对象进行比较,防止空指针异常 【Objects.equals(s1,s2)】
相关文章
- 12-1348、Android解压缩工具类
- 12-13单纯的类不纯时引发的虚函数调用问题
- 12-13计数-小球放盒的八类讨论
- 12-13python-类的多态
- 12-13一起Talk IOS吧(第十四回 类中方法的定义和使用)
- 12-13类与对象
- 12-13Boost源码剖析之:泛型指针类any
- 12-13线程 2.自定义线程类
- 12-13聊聊在idea dubug模式下,动态代理类出现的null现象
- 12-13线程类的其他方法