本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Object类
-
Object类
- Object类是所有Java类的根父类(基类)。即多层继承,处于最高层的父类一定是Object类
- 如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类
-
Object类中的主要方法
-
注:
- 对象比较指的是引用对象的比较
- toString输出对象内存地址
-
对象类型转换
-
对象类型转换
-
基本数据类型的Casting
- 自动类型转换:小的数据类型可以自动转换为 大的数据类型;
- 例如:long g=20;double d=12.0f;
- 强制类型转换:可以把大的数据类型强制转换(casting)成小的数据类型
- 例如:float f=(float)12.0;int a=(int)1200L;
-
对java对象的强制类型转换称为造型
- 从子类到父类的类型转换可以自动进行
- 从父类到子类的类型转换必须通过造型(强制类型转换)实现
- 无继承关系的引用类型间的转换是非法的
-
对象类型转换举例
- Person类
- Student类
- Test类
- 总结
-
-
==操作符与equals()方法
-
==操作符
- 基本类型比较值:只要两个变量的值相等,即为true。例如:int a=1;if(a==6){……}
- 引用类型比较引用(是否指向同一个对象):只有指向同一个对象时,==才返回true
- 注:使用“==”进行比较时,符号两边的数据类型必须兼容(可以自动转换的基本数据类型除外),否则编译出错
-
equals()
-
所有类都继承了Object,也就是得到了equals()方法。还可以重写。
- 只能比较引用类型,其作用与“==”相同,比较是否指向同一个对象。格式:obj1.equals(obj2)
-
特例:当用equals()方法进行比较时,对类File、String、Date及包装类(Wrapper Class)来说,是比较类的内容而不考虑引用是否是同一个对象;
- 原因:在这些类中重写了Object类的equals()方法。
-
-
总结
- 特殊的类:File、String、Date及包装类(Wrapper Class),使用==比较的是对象(对象的堆内存地址),equals比较的是内容
- 除了特殊类之外的其他普通类:==和equals比较的都是对象(对象的堆内存地址)
- 如果想改变某个类的equals,重写即可
-