Java 中equals和toString()方法重写
1,equals方法
(1)什么时候需要重写?
如果希望不同内存但相同内容的两个对象equals时返回true,则需要重写equals
(2)怎么重写?
class A
{ public int i;
pulic A(int i)//构造函数
{this.i=i;
}
public boolean equals(Object obj)//重写equals
{A aa=(A)obj;
if(this.i==aa.i)
return true;
else
return flase;
}
}
public class testEquals{
public staric void main(String[] args){
A aa1=new A(10);
A aa2=new A(10);
System.out.println(aa1.equals(aa2));
}
}
(3)注意问题:
String类系统已经重写equals了,不必再重写;
另外区分equals和==
public class extendsPrivateTest {
public static void main(String[] args){
String str1=new String("China");
String str2=new String("China");
System.out.println(str1.equals(str2));
System.out.println(str1==str2);
String str3="China";
String str4="China";
System.out.println(str3.equals(str4));
System.out.println(str3==str4); } }
str1和str2放在堆里
true//equals已经被系统重写
false
str3和str4是放在数据区,都是指向一个数据
true
true
2.toString方法
(1)为什么需要重写toString?
Object类中的toString方法返回的是类的名字和该对象的哈希码组成的一个字符串,例,A@deced
而我们实际想用System.out.printf(类对象名)输出该对象的toStringd()方法返回的字符串不是上述的时,就必须重写toSring方法。
(2)怎么重写toString方法?
注意:为了实际需要,建议子类重写从父类Object继承的toString()方法
class Point{
private int i,j;
puvlic Point(int i,int j){
this.i=i;
this.j=j;
}
public String toString(){
return "["+i+","+j+"]";
}
}
public class testtoString{
public static void main(String[] args){
Point p1=new Point(1,3);
System.out.println(p1);
}
}
Java 中equals和toString()方法重写的更多相关文章
- java中equals和hashCode方法随笔二
前几天看了篇关于java中equals和hashCode方法的解析 1.Object类中的equals方法和hashCode方法. Object类中的equals和hashCode方法简单明了,所有的 ...
- java中equals与hashCode的重写问题
这几天有一个朋友问我在重写equals和hashCode上出现了问题,最后我帮她解决了问题,同时也整理出来分享给大家 现上Object的equals与HashCode的代码 public boolea ...
- java中equals和hashCode方法的解析
解析Java对象的equals()和hashCode()的使用 前言 在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个.在多 ...
- Java中equals和hashcode的区别?
Java中equals和hashcode方法是在Object对象中的,所以每个对象都有这两个方法,大多数时候我们为了实现特定需求需要重写这两个方法 equals和hashcode方法常用在同一个类中用 ...
- java中equals方法和==的用法
java中equals方法的用法以及==的用法(参考一)equals 方法是 java.lang.Object 类的方法.两种用法说明:(1对于字符串变量来说,使用“==”和“equals()”方法比 ...
- Java中equals与==和comparaTo的区别
一.先说说Java中equals和==的区别: Java中的数据类型,可分为两类: 1.基本数据类型(也叫原始数据类型) 八大基本数据类型 char byte short int long doubl ...
- java中equals和==的区别 (转)
java中equals和==的区别 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...
- Java中Set的contains()方法
Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...
- 深入探究Java中equals()和==的区别是什么
目录 相等判断符"==" "=="判断基本类型数据 "=="判断引用类型数据 相等判断方法equals() 思考:为什么要设计equals( ...
随机推荐
- xml读写文件实例
在某个通讯中需要向服务器发送请求xml,格式例子如下: <?xml version="1.0" encoding="UTF-8"?> <ROO ...
- mongoDB中的ID的生成原则
- keepalived的安装和使用
IP配置 管理IP地址 角色 备注 网卡 192.168.1.114 主调度器(Director) 对外提供VIP服务的地址为192.168.1.88 eth1 192.168.1.205 备用调度器 ...
- (四)802.1Q VLAN
- 在Android中查看和管理sqlite数据库
在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看.android项目中的sqlite数据库位于/data/data/项目包/databas ...
- 将一堆石子分成多堆——Multi-SG 游戏
这类博弈只需要记住一点,一个由多个游戏组成的游戏sg值为这多个游戏的sg值异或和. 也就是所有对一整个nim游戏它的sg值即为每一小堆的sg的异或和. hdu 5795 这题就是可以选择把一堆石子分成 ...
- spring中文乱码问题
第一:code @RequestMapping(value = "/query/{keyword}", method = RequestMethod.GET, produces = ...
- C语言 常用单词
main 主要的 printf(print format)格式输出 include , return ,if ,else ,switch ,case 机箱:案 ...
- chmod修改文件的权限/chown修改文件和目录的所有者
ll指令的显示的信息为(当前目录下只有nameservice1一个目录): drwxr-xr-x 3 hdfs hdfs 4096 4月 14 16:19 nameservice1 上述信息分别表示: ...
- unity3d magnitude的意义
http://blog.csdn.net/fzhlee/article/details/8663564 magnitude (Read Only) 返回向量的长度,也就是点P(x,y,z)到原点( ...