javaSE三个特殊的类 -- Object类

Object类(RealFather) -- 最高参数统一化(所有类都可以向上转型成Object类)

Object类是JDK默认提供的一个类,Java中除了Object类,所有类都存在继承关系,默认会继承Object父类

  • toString()-- 取得对象信息  *** 重要 *** 

            系统输出默认调用对象的toString()方法,输出类名以及对象地址

            Object类中的toString()只是简单输出当前所引用的类名以及对象地址。如果想在类中取得本类属性信息,需要覆写toString();

范例:

class Person{
    private String name;
    private int age;
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String toString(){
        return "姓名为:"+this.name+" 年龄为:"+this.age;
    }
}
public class Test{
    public static void main(String[] args){
        fun(new Person("Dyson",18));
        //StringBuilder本身就有toString()方法
        fun("world");
    }
    public static void fun(Object obj){
        System.out.println(obj);
    }
}
  • 对象比较   --   equals()

范例:实现对象比较  覆写Object类中equals()方法   ****  重要  ****

class Person{ 
    private String name;
    private int age;
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    @Override
    public boolean equals(Object obj){
        //判断obj是否为Person类的对象
        if(!(obj instanceof Person)){
            return false;
        }
        //判断当前对象是否与传入对象地址相同
        if(this == obj){
            return true;
        }
        //obj确是为Person对象,比较两者属性内容
        //向下转型取得Person属性值
        Person per=(Person) obj;
        return (this.name.equals(per.name))&&(this.age==per.age);
    }
}
public class Test{
    public static void main(String[] args){
        Person per1=new Person("Dyson", 18);
        Person per2=new Person("Dyson", 18);
        System.out.println(per1.equals(per2));
    }
}
  • Object接受引用数据类型

            Object可以接受所有引用数据类型:数组,类,接口

            不包括基本类型

范例:Object接受数组

public class Test {
    public static void main(String[] args) {
        //Object接受数组对象,向上转型
        Object obj=new int[]{3,2,2};
        //向下转型,需要强转
        int data[]=(int[])obj;
        for(int temp:data){
            System.out.println(temp+",");
        }
    }
}

范例:Object接受接口对象

interface Message{
    public void print();
}
class MyMessage implements Message{
    public void print(){
        System.out.println("LYX");
    }
    public String toString(){
        return "Dyson";
    }
}
public class Test {
    public static void main(String[] args) {
        //子类向父接口转型
        Message msg=new MyMessage();
        //接口向Object转型
        Object obj=msg;
        ((Message) obj).print();
        System.out.println(obj);
        //强制类型转换
        Message tmp=(MyMessage)obj;
        tmp.print();
    }
}
/*
LYX
Dyson
LYX
*/

猜你喜欢

转载自blog.csdn.net/ds19980228/article/details/83545985