Java常用类Object
1、Object类的定义
- 超类、基类。所有类的直接或间接父类,位于继承树的最顶层
- 任何类如果没有书写extends显示继承某个类,都默认继承Oblect类,否则为间接继承
- Object类中所定义的方法是所有对象都具备的方法
- Object类型可以存储任何对象
2、Object类的使用
- Object作为形参,但是一定要在必要的场景下才使用
- object作为返回值,可以返回任意的值
package com.qianfeng.xqc.day0302;
public class TestObject {
public static void main(String[] args) {
test1(new Integer(20));
test1("abc");
test1(new Person());
test2(5);
System.out.println(test2(8));
}
public static void test1(Object obj) {
System.out.println(obj);
}
public static Object test2(int num) {
if(num % 5 == 0) {
return new Object();
}else if(num % 5 == 1) {
return new Object() {};
}else if(num % 5 == 2) {
return "abc ";
}else if(num % 5 == 3) {
return 555;
}else {
return new Integer(20);
}
}
}
3、Object类的常用方法
- getClass()
- 用于判断两个引用中实际存储对象类型是否一致
- hashCode()
- 返回该对象的十六进制的哈希值
- 把一个物件 -> 经过一系列的算法 -> 得到一串整形的数字
- 不同的物件进行hash , 又非常小的概率可能得到同一个hash值(hash碰撞)
- toString()
- 返回该对象的字符串表示
- 可以根据程序需求覆盖该方法:用于展示对象各个属性值
- equals()
- 默认实现为(this = obj),比较两个对象地址是否相同
- 可进行覆盖,比较两个对象的内容是否相同
package com.qianfeng.xqc.day0302.TestObject;
public class FunObject {
public static void main(String[] args) {
Object obj1 = new Person();
Object obj2 = new Person();
Object obj3 = 555;
Object obj4 = "abc";
Object obj5 = new Object();
System.out.println(obj1.getClass());
System.out.println(obj2.getClass());
System.out.println(obj3.getClass());
System.out.println(obj4.getClass());
System.out.println(obj5.getClass());
System.out.println(obj1.getClass() == obj2.getClass());
Class clas;
Class cls = obj1.getClass();
System.out.println(cls);
System.out.println("测试hashCode()");
System.out.println(obj1.hashCode());
System.out.println(obj2.hashCode());
System.out.println(obj3.hashCode());
System.out.println(obj4.hashCode());
System.out.println(obj5.hashCode());
System.out.println("测试toString()");
System.out.println(obj1.toString());
System.out.println(obj2.toString());
System.out.println(obj3.toString());
System.out.println(obj4.toString());
System.out.println(obj5.toString());
System.out.println("测试equals(obj)");
Person p1 = new Person();
Person p2 = new Person();
System.out.println(p1.equals(p2));
Object objstr1 = "abc";
Object objstr2 = "abc";
Object objstr3 = new String("abc");
System.out.println(objstr1.equals(objstr2));
System.out.println(objstr1.equals(objstr3));
}
}