10Object(java)

////////////////////person.java

public class person {

private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public person() {
super();
// TODO Auto-generated constructor stub
}
public person(String name, int age) {
super();
this.name = name;
this.age = age;
}
//重写Object类的equals方法:若对象name,age完全相等,
//返回true否则返回false
@Override
public boolean equals(Object obj) {
if(obj instanceof person){
person p = (person) obj;
//只要年龄相等就认为相等
return p.getAge() == this.age;
}
return false;
}
@Override
public String toString() {
return "person [name=" + name + ", age=" + age + "]";
}
}

///////////////////////Objects.java


public class Objects {
//Object 是所有Java类的跟父类,在没有继承时都是默认继承Object类

public static void main(String[] args) {
person p1 = new person("aa",12);
person p2 = new person("bb",13);
person p3 = new person("aa",12);

Objects o = new Objects();
//编译出错
//System.out.println(p1 == o);

System.out.println(p1 == p3);//false
//equals()方法,在person、中重写
System.out.println(p1.equals(p3));

String s1 = new String("qwe");
String s2 = new String("qwe");
System.out.println(s1 == s2);//f
System.out.println(s1.equals(s2));//t

String q1 = "qwer";
String q2 = "qwer";
System.out.println(q1 == q2);//t

//toString 方法
person pp = new person("CC",123);
System.out.println(pp);
System.out.println(pp.toString());
}
}

/*
* 1. ==
* 引用类型的比较是指同一个对象
* 用 == 进行比较时,符号两边数据类型必须一致,否则编译出错

 *2.equals 
* 2.1只能比较引用类型,作用与 == 相同 比较是否指向同一个对象

 */

猜你喜欢

转载自www.cnblogs.com/Mrchengs/p/9649244.html