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

2023-12-29 06:10:47

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

文章来源:https://blog.csdn.net/jnbbwyth/article/details/135280833
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。