学习笔记之面向对象编程6(equals)
来源:互联网 发布:佛罗里达大学 知乎 编辑:程序博客网 时间:2024/06/05 10:31
equals方法:
Object类中定义有:
《1》public boolean equals(Object obj)方法:提供定义对象是否“相等”的逻辑;
《2》Object的equals方法定义为:x.equals(y),当x和y是同一个对象的应用时,返回true,否则返回false;
《3》一些类,比如String,Date等,重写了Object的equals方法,调用这些类的equals方法,x.equals(y),当x和y所引用的对象是同一类对象且属性内容相等时(并不一定是相同对象),返回true否则返回false;
《4》可以根据需要在用户自定义类型中重写equals方法。
实例代码如下:
class thing{int color,height,weight;thing(int color,int height,int weight){this.color = color;this.height = height;this.weight = weight;}public boolean equals(Object obj){if(obj==null)return false;else{if(obj instanceof thing){thing mimi = (thing)obj;if(mimi.color==this.color&&mimi.height==this.height&&mimi.weight==this.weight)return true;}}return false;}}public class Testequals{public static void main(String[] args){thing t1 = new thing(1,2,3);thing t2 = new thing(1,2,5); System.out.println(t1==t2);System.out.println(t1.equals(t2));String s1 = new String("java");String s2 = new String("java");System.out.println(s1==s2);System.out.println(s1.equals(s2));}}
运行结果:
false
false
false
true
注:两个对象即使是同一类对象,且属性内容完全形同,两者也不可能==(完全等于),因为两者在内存中的位置决不会一模一样,所以说没有完全相等的x和y。
阅读全文
0 0
- 学习笔记之面向对象编程6(equals)
- 学习笔记之JavaSE(15)--面向对象编程6
- 学习笔记之面向对象编程25(网络编程)
- [学习笔记]python之面向对象编程
- JavaScript学习笔记之面向对象编程
- C++之面向对象编程学习笔记
- python学习笔记(三)之面向对象编程
- Python之学习笔记(面向对象编程)
- 学习笔记之JavaSE(10)--面向对象编程1
- 学习笔记之JavaSE(11)--面向对象编程2
- 学习笔记之JavaSE(12)--面向对象编程3
- 学习笔记之JavaSE(13)--面向对象编程4
- 学习笔记之JavaSE(14)--面向对象编程5
- 学习笔记之JavaSE(16)--面向对象编程7
- 学习笔记之JavaSE(17)--面向对象编程8
- 学习笔记之JavaSE(18)--面向对象编程9
- 学习笔记之JavaSE(19)--面向对象编程10
- 学习笔记之JavaSE(20)--面向对象编程11
- js 的动态获取与插入,卡死浏览
- 资源池 'default' 没有足够的系统内存来运行此查询
- 基数排序
- oracle,把多列同时转成用逗号分割的一行,并去除重复数据
- 关于端口做过映射导致nginx自动添加内网端口的问题
- 学习笔记之面向对象编程6(equals)
- CentOS7环境下Jenkins的安装
- HDU 4911 Inversion(归并排序求逆序对)
- java集合关系继承图
- MySQL导入大批Excel数据
- C/C++ 练习题
- string小技巧
- Linux中如何停止kibana
- abort,exit,return 的区别