Object类
java.lang.Object
Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class.
Object这个类是所有类的根基类(老祖宗)。是所有类的父类,所有的对象,包括数组对象,也实现了这个类的方法。
1 public static void main(String[] args) { 2 Object obj=new Object(); 3 }
Ctrl+鼠标左键 ,点击Object ,进入源代码 .
了解几个常用的方法。
1 public boolean equals(Object obj) { 2 return (this == obj); 3 }
比较2个对象的地址,地址相同,返回true,否则,false。
1 public String toString() { 2 return getClass().getName() + "@" + 3 Integer.toHexString(hashCode()); 4 }
把一个对象转成字符串。
getClass().getName() 获取到类的名字(包含 包名)
+ "@" + Integer.toHexString(hashCode()); 把对象的哈希码,转成无符号的16进制的数字。
所以我们来用一哈,如下。
1 public static void main(String[] args) { 2 Object obj=new Object(); 3 Object obj2=new Object(); 4 System.out.println(obj.toString()); 5 System.out.println(obj2.toString()); 6 } 7 }
控制台输出
java.lang.Object@55f33675
java.lang.Object@527c6768
显然地址不同
使用equals方法
System.out.println(obj==obj2);
System.out.println(obj.equals(obj2));
控制台输出
false false
我们能不能重写这两个方法呢?答案是肯定的。
equals方法重写(等到容器,再更,牵扯到容器)
toString方法重写
因为object 是根基类,所以我们不写extends object,他也是继承的。
重写方法最好复制粘贴原来的方法名,手写容易失误,因为方法名里的单词(驼峰原则),中间大写的字母你小写他是不会报错的,默认是新的方法名。
我们创建一个类
1 public class Mobile { 2 public String toString(){ 3 return "我是iphoneX,您的肾准备好了吗?"; 4 } 5 }
在main方法里创建对象
1 Mobile m = new Mobile(); 2 System.out.println(m.toString());
控制台输出
1 我是iphoneX,您的肾准备好了吗?
小贴士:如何看一个类有什么父类和子类呢?(类型层次结构)
1.F4
2.鼠标放类名上 + Ctrl+t
3.鼠标右键 Open Type Hierarchy
posted on 2017-09-28 20:30 PoeticalJustice 阅读(144) 评论(0) 收藏 举报
浙公网安备 33010602011771号