java中的Object类
Object类:Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这个类默认继承Object类。Object类中的方法,适合所有子类。
1、toString()方法:在Object类里面定义toString()方法的时候返回的对象的哈希code码(对象地址字符串)。
可以通过重写toString()方法表示出对象的属性。(Eclipse中可以快速重写toString方法:工具栏source,Generate toString(),它会根据对象的属性帮助我们生成toString方法)
2、equals()方法(返回的是布尔类型):比较的是对象的引用是否指向同一块内存地址。
前面学到的 Dog dog = new Dog();我们通常会误以为这个dog就是创建的对象,其实不然,这个dog仅仅是对象在内存中的地址。只不过是操作地址是间接地操作了对象的值。(就像用遥控器间接地操控电视,而遥控器并不能代表电视这个对象),所以准确的说,这个dog是引用了内存当中的一块地址。
生活中对象是否相同分两种情况:
1、你所指的对象和我所指的对象是否是同一个对象。(相当于用equals()方法判断)
2、两个独立的对象是否拥有相同的属性。(需通过重写equals()方法来实现)
(equals()方法与“==”运算符作用相同,“==”可以判断基本类型是否相同,当判断两个引用值是否相同时比较的也是内存地址)
结果:
重写equals()方法:工具栏source,Generate hashCode() and equals()
用重写后的equals()方法![](https://i-blog.csdnimg.cn/blog_migrate/11fae1939e50d99acb09923e50f9eb00.png)
结果
用类调用getClass()得到类对象(用以得到这个对象的类型),当我们用 new 类名 时得到的是一个类的对象,
类对象(左边)和类的对象(右边)有什么区别:
类对象描述的是类的代码信息(这个类有什么属性,是什么类型,变量名是什么,有哪些方法,方法名是什么,方法里的代码是什么)
类的对象更关注的是对象的属性值的信息,即对象的数据信息