Java之Object类学习

一、Object概述:

Object类是所有Java类的祖先,每个类都是在使用Object类作为超类。我们学习的所有的(数组)都是实现这个类相对应下的方法。
我们有时候在不给出超类的情况下,就会自动的将Object定义为该类的超类。使用Object指向任意类型的对象,当然我们在对Object学习发现它有一个相对应的构造函数public Object(),在构造其子类时,就会先调用这个默认的构造函数。
在对对象进行专门的操作时,都需要都知道它们的原始类型并进行类型转换。例如:
Object obj1 = new MyObject();
MyObject x = (MyObject)obj1;

二、Object的API预览

Object():默认构造方法
clone():创建并返回此对象的一个副本。
equals(Object obj):指示某个其他对象是否与此对象“相等”。
finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
getClass():返回一个对象的运行时类。
hashCode():返回该对象的哈希码值。
notify():唤醒在此对象监视器上等待的单个线程。
notifyAll():唤醒在此对象监视器上等待的所有线程。
toString():返回该对象的字符串表示。
wait():导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。
wait(long timeout):导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。
wait(long timeout, int nanos):导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。

三、方法解析:

public boolean equals(Object object)方法测试:
这个是测试对象是否和另外一个对象是相等的,他在Object类中的意义是判断两个对象是否指向同一块内存当中,用处不是很大,因为即使是内容相同的对象,两者的内存区域也是不同的,所以Object类的equals()等价于==。所以我们只有当在继承了Object的类的重载(override)了equals()方法时,继承实现了用equals()方法比较两个对象是否相等,这个时候equals和==的不同。如下:

    private String name;
    private String sex;
    public  boolean equals(Object object){
        if (this==object)
            return  true;
        if(object instanceof TextObject){
            TextObject t= (TextObject) object;
            if(t.name.equals(this.name)&&t.sex.equals(this.sex))
                return  true;
            return  false;
        }
       return false;
    }
2//必须理解==与equals之间的区别。
        int num1=6;
        int num2=6;
        if(num1==num2){
            System.out.print("ok");
        }else {
            System.out.println("no");
        }
        Student student1=new  Student("xiaoming");
        Student student2=new  Student("xiaoming");
        student1.equals(student2);
    }

public int hashcode():
当我们覆写(override)了上述方法时:就会发现hashcode()方法也实现了覆写。

 public  int hashcode(){
        int h=hash;
        if(h==0&&value.length>0){
            char val[]=value;
            for(int i=0;i<valude.;engjt;i++){
                h=31*h+val[i];
            }
            hash=h;
        }
        return  h;
    }

总结学习:

当然在Java中的Object还有许多的其他的类,但是Object是一个十分重要的基础类,在学习中要好好理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值