ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-03-29 15:55:10  阅读:179  来源: 互联网

标签:p2 p1 21 Person Object equals 面向对象 name


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

标签:p2,p1,21,Person,Object,equals,面向对象,name
来源: https://www.cnblogs.com/897463196-a/p/12592679.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有