第5章-第6节-Java中的权限修饰符以及方法toString、equals

1、权限修饰符:Java语言一共有4种

①.private:         私有的
②.缺省:            默认的
③.protected:    受保护的
④.public:          公共的


权限关系图:

                     本类中        同包不同类        跨包子父类        跨包非子父类

private           √                 ×                       ×                        ×

缺省               √                 √                       ×                        ×

protected       √                 √                       √                         ×

public             √                 √                       √                         √


大小关系梳理:
    
    private   <   缺省   <   protected   <   public

总结:
    Java中权限修饰符有4种,但是在实际开发场景下主要就使用两种:private、public


2、Object类中的两个常用方法:

1)、toString

String toString():返回该对象的字符串表示。 

作用:得到对象的属性/数据信息内容

实例化对象完毕后,直接在打印语句内部输出打印对象名,会有一个隐式调用toString方法的环节存在;
查看Object类中toString方法的源代码得知,返回的是对象的地址信息内容;
实际开发环境下,地址信息对于我们意义不大,我们更关心、更想要得到的是对象的属性信息内容;
面临的问题如下:
    Object类中的toString方法我需要使用它,但是方法体的逻辑不适合 ==> 重写它

在实际开发环境下,重写toString方法是非常普遍的,所以idea和eclipse等软件中都提供了快速重写toString的方式;
idea中重写toString的快捷方式如下:
    alt + insert -> Generate toString -> ...

【注意】:

jdk核心类库中的第三方类都已经重写过了toString方法,不需要我们关注重写问题;
对于我们的自定义类,则需要考虑是否要重写toString方法;


2)、equals

boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。 

作用:
    比较对象之间长的"像"不"像"    ==>    对象之间的属性信息内容是否一致

实例化两个对象,我们需要比较两个对象长的"像"不"像" ==> 属性信息内容是否一致;
此时如果使用==进行比较,则比较的是对象的地址是否一致,明显不太合适;
我们考虑使用equals方法,查看Object类中equals方法的源代码得知,比较的仍然是地址;
面临的问题如下:
    Object类中的equals方法我需要使用它,但是方法体的逻辑不适合 ==> 重写它

在实际开发环境下,对于自定义类重写equals方法是非常普遍的,所以idea/eclipse中都定义了快捷重写equals方法的方式;
idea快速重写equal方法的方式如下:
    alt + insert -> Generate equals and hasCode -> ...

【注意】:

jdk核心类库中的第三方类都已经重写过了equals方法,不需要我们关注重写问题;
对于我们的自定义类,则需要考虑是否要重写equals方法;

重写equals思路:如果传进来的对象和this地址相同那么返回true,如果传进来的对象是null那么返回false,如果传进来的对象的实际对象类型不同那么返回false(这里用instanceof),最后再去分别判断对象的每个属性是否相同,全同相等就返回true否则返回false。

本电子书目录:《Java基础的重点知识点全集》 

你可能感兴趣的:(java)