[Android面试题-11] 实现一个类的equals方法
2013-09-29 13:59
204 查看
在实现equals方法之前我们应该明确,equals方法本身具备以下性质:
1.自反性:对于任何非空引用x,x.equals(x)应该返回true。
2.对称性:对于任何引用x和y,如果x.equals(y)返回true,那么y.equals(x)也应该返回true。
3.传递性:对于任何引用x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也应该返回true。
4.一致性:如果x和y引用的对象没有发生变化,那么反复调用x.equals(y)应该返回同样的结果。
5.非空性:对于任意非空引用x,x.equals(null)应该返回false。
了解了以上性质之后我们便可以写出如下的equals方法:
1.自反性:对于任何非空引用x,x.equals(x)应该返回true。
2.对称性:对于任何引用x和y,如果x.equals(y)返回true,那么y.equals(x)也应该返回true。
3.传递性:对于任何引用x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也应该返回true。
4.一致性:如果x和y引用的对象没有发生变化,那么反复调用x.equals(y)应该返回同样的结果。
5.非空性:对于任意非空引用x,x.equals(null)应该返回false。
了解了以上性质之后我们便可以写出如下的equals方法:
class People{ private String name; public People(String name){ this.name = name; } public String getName(){ return this.name; } public boolean equals(Object obj); } public boolean equals(Object obj){ if(this == obj) return true; if(obj == null) return false; if(this.getClass() != obj.getClass()) return false; People tmp = (People)obj; if(tmp.getName().equals(this.getName())) return true; return false; }
相关文章推荐
- Android中将一个图片切割成多个图片的实现方法
- Android UI 之居间绘制文本内容的正确方法——实现自定义一个TextView
- Android编程实现在Activity中操作刷新另外一个Activity数据列表的方法
- Android简单实现一个颜色渐变的ProgressBar的方法
- 怎样实现android 返回到上一个Activity并重新执行一次onCreate方法
- Android实现在一个activity中添加多个listview的方法
- java 面试题 请设计一个方法,可以实现获取任意范围内的随机数
- Android中实现定时器的三种方法 分类: Android 2015-07-14 18:04 11人阅读 评论(0) 收藏
- iOS和Android用同一个二维码实现跳转下载链接的方法
- Android ListView同一个item显示2列的实现方法(仿2列商品列表)
- Android Studio implements 一个类后如何实现这个类的方法
- Android每隔几秒做一个动作实现方法
- Android 使用LinearLayout.getChildAt(i)获取一个线性布局的view,并实现content中实现方法
- Android UI 之居中绘制文本内容的正确方法——实现自定义一个TextView
- android 入门 004 (同一个方法,点击实现不同的效果)
- (三十一)工具方法:获得应用程序包名/安装apk/如何获得当前栈顶的Activity/android如何实现点击一个按钮进入指定网页
- Android实现将一个Activity设置成窗口样式的方法
- Android实现为Notification加上一个进度条的方法
- Android编程实现在一个程序中启动另一个程序的方法
- 高频面试题之三种方法实现两个栈实现一个队列