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基础的重点知识点全集》