Java中对象比较(第三个代码模型)

来源:互联网 发布:网络实时音视频传输 编辑:程序博客网 时间:2024/06/14 10:07
package cn.mdln.study1;
/**
 * 对象比较(第三个代码模型)
 * @author Administrator
 *  基本数据类型:x==y(内容像等就返回true)
 *   对象比较:obj1.equals(obj2)(只要堆内存的内容相同),则返回true
 *   obj1==obj2(只有两个对象指向的是同一个堆内存),才返回true;
 *   凡是只要是自己定义的类,当比较对象是否相等,必须重写Object类中的equals方法
 */ 
public class TestDemo11 {


public static void main(String[] args) {
Personcls per11=new Personcls("a");
Personcls per22=new Personcls("a");
Personcls per21=per22;
System.out.println(per21==per22);//true
System.out.println(per21.equals(per22));//true
System.out.println(per11==per22);//false
System.out.println(per11.equals(per22));//true
Personcls per1=new Personcls("a",18);
Personcls per2=new Personcls("a",18);
System.out.println(per1==per2);//false
System.out.println(per1.equals(per2));
}
  
}
class Personcls
{
private String name;
private int age;
public Personcls(){}
public Personcls(String name)
{
this.name=name;
}
public Personcls(String name,int age)
{
this.name=name;
this.age=age;
}
public  boolean equals(Personcls cls)
  {
if(this==cls)//判断是否跟自己比较
return true;
else if(cls==null||this==null)//判断是否为空
return false;
  if(this.name.equals(cls.getName())&&this.age==cls.getAge())
  return true;
  else
  return false;
  }
public String getName()
{
return this.name;
}
public int  getAge()
{
return this.age;
}
}
0 0
原创粉丝点击