JAVA_SE基础——60.初识Object
来源:互联网 发布:sqlserver 身份证 男女 编辑:程序博客网 时间:2024/06/13 21:22
java是面向对象的语言,核心思想:找适合 的对象做适合 的事情:
方式一:自定义类,然后通过自定义的类创建对象。
方式二:sun提供了很多的类给我使用,我们只需要认识这些类,我们就可以通过这些类创建对象了。
Object类是所有类的终极父类。 任何一个类都继承了Object类。
方式一:自定义类,然后通过自定义的类创建对象。
方式二:sun提供了很多的类给我使用,我们只需要认识这些类,我们就可以通过这些类创建对象了。
Object类是所有类的终极父类。 任何一个类都继承了Object类。
Object:所有类的根类。
Object是不断抽取而来,具备着所有对象都具备的共性内容。
class Person{ private int age ; Person(int age){ this.age = age; }}class Demo{}class ObjectDemo{ public static void main(String[] args){ Person p1 = new Person(20); Person p2 = new Person(20); Person p3 = p1; Demo d = new Demo(); System. out.println(p1 == p2);//false System. out.println(p1.equals(p2));//false System. out.println(p1.equals(p3));//true System. out.println(p1.equals(d));//false }}运行结果:
false
false
true
false
上面都是比较内存地址,而没有比较年龄,然而需要比较年龄则需要重写equals方法~
P.S.
==以及Object类的equals方法默认都是根据对象的哈希值判断两个对象是否相等。
可以通过覆盖Object的equals方法来重写比较规则。
class Person{ private int age ; Person( int age){ this.age = age; } //比较Person的年龄,是否是同龄人 //一般都会覆盖此方法,根据对象的特有内容,建立判断对象是否相同的依据。 public boolean equals(Object obj){ if(!(obj instanceof Person)) throw new ClassCastException("类型错误"); Person p = (Person)obj; return this .age == p.age; }}class ObjectDemo{ public static void main(String[] args){ Person p1 = new Person(20); Person p2 = new Person(20); System. out.println(p1.equals(p2)); }}运行结果:
ture
class Person{ private int age ; Person(int age){ this.age = age; } public int hashCode(){ return age ; }}class ObjectDemo{ public static void main(String[] args){ Person p1 = new Person(20); System. out.println(p1); System. out.println(p1.getClass().getName() + " $ " + Integer.toHexString(p1.hashCode())); }}运行结果:
Person@21
Person $ 21
System. out.println(p1.getClass().getName() + " $ " + Integer.toHexString(p1.hashCode()));为了方便初学者理解上面的代码,接下来分别对其中用到的方法进行解释,具体如下:
1.getClass().getName()代表返回对象所属类的类名,即是Person。
2.hashCode()代表返回该对象的哈希值。 (也可以把哈希码理解成是对象的内存地址)
3.Integer.toHexString(p1.hashCode())代表将对象哈希值用16进制表现。
其中,hashCode()是Object类中定义的一个方法,这个方法将对象的内存地址进行哈西运算,返回一个int型的哈希值
toString() : 返回该对象的字符串表示,返回一个字符串用于描述该对象的。 (返回的字符串表示: 完整类名+@+ 对象的哈希码)
交流企鹅:654249738,和自学者交流群:517284938
1 0
- JAVA_SE基础——60.初识Object
- JAVA_SE基础——6.标识符&关键字
- JAVA_SE基础——7.常量&变量
- JAVA_SE基础——8.基本数据类型
- JAVA_SE基础——15.循环嵌套
- JAVA_SE基础——16.方法
- JAVA_SE基础——27.匿名对象
- JAVA_SE基础——28.封装
- JAVA_SE基础——29.构造函数
- JAVA_SE基础——31.this关键字
- JAVA_SE基础——39.继承
- JAVA_SE基础——40.super关键字
- JAVA_SE基础——43.抽象类
- JAVA_SE基础——47.接口
- JAVA_SE基础——48.多态
- JAVA_SE基础——51.内部类
- JAVA_SE基础——53.什么是异常?
- JAVA_SE基础——54.异常
- 应用开发内测fir.im
- 软件架构模式
- asp.net 后台 flv格式文件播放
- XSS(跨站脚本攻击)
- Qt事件驱动处理机制
- JAVA_SE基础——60.初识Object
- UNPv1第二十五章:原始套接口
- jQuery表单验证
- 如何提高读取源代码的效率
- IOS7以上用UINavigationController 导致tableview下移解决方法
- android屏幕适配全攻略
- 在AndroidStudio中引用jni的时候出错
- OpenCV3.1.0+VS2013配置+Win10(64位)
- iOS开发中__weak typeof(self)释义