Java Object类中常见的方法

API

API(Application Programming Interface) 应用程序编程接口
Java API
	java提供给我们使用的类,这些类将底层的实现封装了。
Object类
	类层次结构的根类,所有类都直接或间接的继承自该类

Object类的hashcode()方法

概述:
	返回该对象的哈希码值。默认情况下该方法会根据对象的地址来计算。
	不同对象的哈希码值一般不会相同,但是同一对象的哈希码值一定相同。
	不是对象的实际地址值。
public class Test {
    public static void main(String[] args) {
        Object obj = new Object();
        Object obj2 = new Object();
        int a = obj.hashCode();
        int b = obj2.hashCode();
        System.out.println(a);
        System.out.println(b);
    }
}

Object类的getClass()方法

概述:public final class getClass()
	返回此Object的运行时类
	可以通过Class类中的一个方法,获取对象真实类的全名称
public class Test{
	public static void main(String[] args){
		Object a=new Object();
		Object b=new Object();
		Object aClass=a.getClass();
		Object bClass=b.getClass();
		boolean c=(aClass==bClass);
		System.out.println(b)//通过布尔类型判断这两个对象是否是同一类
	}
}

Object类中的equals()方法

*指示其他某个对象是否与此对象“相等”
*默认情况下比较的是对象的引用是否相同。
*由于比较对象的引用没有任何意义,一般建议重写该方法。一般用于比较成员变量的值是否相等
格式:
	public boolean equals(Object obj){
		return(this==obj);
	}
	对equals()方法进行优化:

Object类中的toString()方法

返回该对象的字符串表示。通常,toString方法会返回一个“以文本方式”表示此对象的字符串。
Object类的toString方法一个字符串,该字符串由类名(对象是该类的一个实例)、标记符@和此对象的哈希码的无符号十六进制表示组成。建议子类重写该方法。
我们一般重写该方法:
public String toString(){
	return "姓名:"+this.name+" "+"年龄:"+this.age;//调用重写过后的toString方法返回的是该对象的基本属性值
}

Object类中的clone()方法

 protected Object clone() throws CloneNotSupportedException
 * 创建并返回该对象的一个副本。
 * 如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。
 * clone 方法的权限修饰符是protected ,子类要重写该方法后才能使用。
 *复制后的对象和被复制的对象是独立存在的。

代码演示:

public class Test {
    public static void main(String[] args) throws CloneNotSupportedException {
        Teacher t1 = new Teacher("张飞", 36);
        Teacher t2 = (Teacher) teacher.clone();
        t1.name = "刘备";
        t1.age = 39;
        System.out.println(t1);
        System.out.println(t2);
        System.out.println(t1.equals(t2));//显示false,因为teacher与teacher1是不同的对象
    }
}
class Teacher extends Person implements Cloneable{

    public Teacher(String name, int age) {
        super(name, age);
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值