【面向对象(高级)】_Object类笔记

【面向对象(高级)】_Object类笔记

掌握Object类的作用
掌握Object类中toString(),equals()方法的作用
掌握Object接受引用数据类型的操作

在java中所有类都有一个公共的父类就是Object类,一个类只要没有明确的继承一个类,则肯定是Object类的子类,如下面两行代码表示含义都是一样的:
class Person extends Ojbect{}
class Person{}

Object类中的主要方法:
方法名称                类型    描述
public Object                构造    构造方法
public boolean equals(Object obj)    普通    对象比较
public int hashCode()            普通    取得Hash码
public String toString()        普通    对象打印时调用


实例一:
class Demo{};
public class ObjectDemo01{
    public static void main(String args[]){
        Demo d = new Demo();
        System.out.println("不加toString()输出:"+d);
        System.out.println("加上toString()输出:"+d.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 ObjectDemo02{
    public static void main(String args[]){
        Person per = new Person("牛人",30);
        System.out.println("对象信息:"+per);
    }
}


打印对象信息

equals()方法
equals()方法的主要功能是进行对象的比较操作。
String本身也是Object类的子类,所以已经覆写了此方法。

class Person{
    private String name;
    private int age;
    public Person(String name,int age){
        this.name = name;
        this.age = age;
    }
    public boolean equals(Object obj){
        if(this==obj){
            return true;
        }
        if(!(obj instanceof Person)){//不是person对象
            return false;
        }
        Person per = (Person)obj;
        if(per.name.equals(this.name)&&per.age==this.age){
            return true;
        }else{
            return false;
        }
    
    }
    public String toString(){
        return "姓名:"+this.name+",年龄:"+this.age;
    }
}
public class ObjectDemo03{
    public static void main(String args[]){
        Person per1 = new Person("牛人",30);
        Person per2 = new Person("牛人",30);
        System.out.println(per1.equals(per2));
    }
}



对象比较步骤:
1.是否直接相等this==obj;
2.是否是父类的实例使用instanceof判断。
3.先向下转型然后通过对象字段进行验证。

数组实际上也可以使用Object进行接收

public class ObjectDemo05{
    public static void main(String args[]){
        int temp[] = {1,3,5,7,9};
        Object obj = temp;
        print(obj);    
    }
    public static void print(Object obj){
        if(obj instanceof int[]){
            int x[] = (int[])obj;
            for(int i=0;i




总结:
1.Object类是所有类的父类,只要是引用数据类型都可以使用Object进行接收
2.对象在进行向下转型之前一定要先发生向上转型,要使用instanceof关键字判断
3.toString(),对象打印时调用
4.equals():对象比较时调用。
5.String类也是Object的子类。

你可能感兴趣的:(Java)