**
一/ equals方法
**
最高父类’Object’中的方法’equals’可以对比对象之间的各种内容是否相同,比如判断两个对象的 内存地址(哈希值) / 属性 / 参数内容 是否相同一致.
但是在没有重写的情况下,Object的’equals’方法包含了对地址值的判断,如果地址值不相同就不再进行 属性 或 参数内容 的判断.
因此,如果需要判断两个对象之间的 属性 或 参数内容 是否一致,需要在对象所属的类(如infoObj和infoObjTwo相对于info)中通过自动生成代码来重写’equals’的方法.
自动生成代码的操作方式:快捷键 Alt+Insert → 单击’equelt() and hashCode()’ → 单击’Next’ → 单击’Next’ → 单击’Finish’ →(可选) 删除其中附带生成的的’hashCode()'方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23public boolean equals(Object o) { //对比两个对象的内存地址(哈希值)是否一致.默认为:假如否则直接返回结果并退出. if (this == o) return true; //对比两个对象的属性(即是通过同一个类创建的)是否一致.默认为:假如否则直接返回结果并退出. if (o == null || getClass() != o.getClass()) return false; //对比两个对象的参数内容(如'age'和'name')是否一致. info info = (info) o; return age == info.age && Objects.equals(name, info.name); } ------------------------------------------------------ public class mainMethod { public static void main(String[] args) { info infoObj = new info("中国",70); info infoObjTwo = new info("美国",205); //对比两个对象的 '内存地址(哈希值)' / '属性' / '参数内容' System.out.println(infoObj.equals(infoObjTwo)); } }
**
二/ toString方法
**
最高父类’Object’的’toString’方法默认是获取对象的所在包位置和内存地址值(哈希值),如果想要它获取的是对象的参数内容,
那么就需要通过自动生成代码,来重写最高父类’Object’里面的’toString’方法.
效果如下:
重写前:code.study.day03.toStringOverRide.Info@3f3afe78
重写后:Info{name=‘永不磨灭的青春’, age=1}
自动生成代码的操作方式:单击’Code’ → 单击’Generate’ → 单击’toString’ → 按要求选择成员变量(默认权限) → 单击OK
或 按Alt+Insert → 单击’toSting’ → 按要求选择成员变量(默认权限) → 单击OK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19public class mianMethod { public static void main(String[] args) { Info infoObj = new Info("永不磨灭的青春",1); System.out.println(infoObj.toString());//重写前:code.study.day03.toStringOverRide.Info@3f3afe78 //重写后:Info{name='永不磨灭的青春', age=1} System.out.println(infoObj); } } ----------------------------------------------------------------------- @Override public String toString() { //通过自动生成代码,来重写最高父类'Object'里面的'toString'方法. // 操作:单击'Code' → 单击'Generate' → 单击'toString' → 按要求选择成员变量(默认权限) → 单击OK // 或 按Alt+Insert → 单击'toSting' → 按要求选择成员变量(默认权限) → 单击OK return "Info{" + "name='" + name + ''' + ", age=" + age + '}'; }
最后
以上就是搞怪鱼最近收集整理的关于Object最高父类的方法应用 equals和toString的全部内容,更多相关Object最高父类的方法应用内容请搜索靠谱客的其他文章。
发表评论 取消回复