第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基础的重点知识点全集》?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!