JAVA基础(Object类)

一,Object类:是所有类的父类,也就是说任何一个类在定义的时候如果没有明确的继承关系,那么这个类就默认继承Object类,继承关系可以省略。
(1)Object类可以接受所有类的对象,实现自动向上转型

package Object类;
class Book
{
    public void print()
    {
        System.out.println("hello");
    }
}
public class ObjectDemo {
    public static void main(String[] args) {
        //接收Book类的对象
        Object obja = new Book();
        Book b = (Book)obja;
        b.print();
        //接收字符串对象
        Object objb  = "world";
        String s = (String)objb;
        System.out.println(s);

    }

}

(2)Object类中定义无参构造的意义:因为Object类是所有类的父类,子类实例化对象的时候,子类的构造方法一定要调用父类的无参构造

二,覆写Object的toString()与equals()
(1)Object类toString()将数据类型转化为字符串,子类覆写该方法输出对象时自动调用,可得到对象的信息。

package Object类;
class Book
{
    private String name;
    private int num;
    public String toString() {
        return "书名:"+this.name+" 价格:"+this.num;
    }
}
public class ObjectDemo {
    public static void main(String[] args) {
        Book b = new Book();
        System.out.println(b);
    }

}

(2)对象的比较:equals( )

package Object类;
class Book
{
    private String name;
    private int num;

    public Book(String name, int num) {
        this.name = name;
        this.num = num;
    }

    public boolean equals(Object obj) {
        if(!(obj instanceof Book)){return false;}//不是本类对象
        if(this==obj){return true;}//地址相同
        if(obj==null){return false;}
        Book book = (Book)obj;//父类调用子类的自己的属性需要向下转型
        if(this.name.equals(book.name)&&this.num==book.num)
        {
            return true;
        }
        return false;
    }

    public String toString() {
        return "书名:"+this.name+" 价格:"+this.num;
    }
}
public class ObjectDemo {
    public static void main(String[] args) {
        Book b = new Book("aaa",10);
        Book b1 = new Book("aaa",10);
        System.out.println(b.equals(b1));
    }

}

三,Object类接收一切引用类型
(1)接收数组类型

public class ObjectDemo {
    public static void main(String[] args) {
    Object obj = new int[]{1,2,3};//向上转型
    if(obj instanceof int[])
    {
        int data[] = (int [])obj;//向下转型
        for (int i = 0; i < data.length; i++) {
            System.out.println(data[i]);
        }
    }
    }

}

(2)接收接口类型

interface A
{
    void fun();
}
class B extends Object implements A{
    public void fun()
    {
        System.out.println("B类覆写接口A中的fun");
    }
}
public class ObjectDemo {
    public static void main(String[] args) {
        A a = new B();//接口对象
        Object obj = a; //接收接口对象
        A b = (A)obj;//向下转型
        b.fun();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值