21.面向对象-----Object类的使用

1.说明

1.Object类是所Java类的根父类;

2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类。如:

class Person{}

等价于:

class Person extends Object{}

3.由于受继承性的影响,所有的类默认继承Object类,如果没有显示的继承某个类,则默认继承Object类,Object类中的功能(属性、方法)就具有了通用性。

4.Object类只声明了一个空参构造器

2.主要结构

 

 

 3.==操作符和equals()

==操作符:

  > 基本类型比较值:只要两个变量的值相等,即为true。

  > 引用类型比较引用(是否指向同一个对象):只有指向同一个对象时,==才返回true。

    Person p1 = new Person();

    Person p2 = new Person();

    if(p1 == p2){}

注意:

用“==”进行比较时,符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译出错

代码:

public class test {
    public static void main(String[] args) {
        //对于基本数据类型
        int a = 10;
        int b = 10;
        if (a == b) {
            System.out.println("a = b");//a = b
        }else{
            System.out.println("a != b");
        }

        //对于引用数据类型
        Person p1 = new Person();
        Person p2 = new Person();
        if (p1 == p2){
            System.out.println("p1和p2指向同一个地址");
        }else{
            System.out.println("p1和p2的引用地址不同");//p1和p2的引用地址不同
        }
    }
}

class Person{
    String name;
    int age;

    public void eat(){
        System.out.println("人吃饭");
    }
}

equals()方法:

 

 

 如何重写equals()?

class User{
String name;
int age;
    //重写其equals()方法
    public boolean equals(Object obj){
        if(obj == this){
            return true;
        }
        if(obj instanceof User){
            User u = (User)obj;
            return this.age == u.age && this.name.equals(u.name);
        }
        return false;
    }
}

注:开发中不会自定义重写equals(),选择自动生成。

4.toString()方法

 

 

 如何重写tostring()方法?

//自动实现
@Override
public String toString() {
    return "Customer [name=" + name + ", age=" + age + "]";
}

 

 

作者:Java之美

日期:2020-03-29

posted @ 2020-03-29 15:48  郭少  阅读(...)  评论(...编辑  收藏