黑马程序员技术交流社区
标题:
== equals比较,一共19题,你都能写对么
[打印本页]
作者:
黎健东
时间:
2012-7-21 21:35
标题:
== equals比较,一共19题,你都能写对么
自己比较的做总结了一些容易弄乱 == equals比较,总结
一共19个,不编译自己写一下答案,你能100%最对么,传一下你的答案上来看看
比如这样:
1-5:FFFFF
6-10:TTTTT
public class ObjectEquals2 {
public static void main(String [] args){
Person p1 = new Person(20);
Person p2 = new Person(20);
Person p4 = new Person(21);
Person p3 = p1;
System.out.println("p1 == p2 :" + (p1 == p2) + ""); //问题1:
System.out.println("p1.equals(p2) :" + p1.equals(p2)); //问题2:
System.out.println("p1 == p3 :" + (p1 == p3)); //问题3:
System.out.println("p1.equals(p3) :" + p1.equals(p3)); //问题4:
System.out.println("p1.eq(p2) :" + p1.eq(p2)); //问题5:
System.out.println("**************1-5************************");
System.out.println("p1.eq(p4) :" + p1.eq(p4)); //问题6
Cat c1 = new Cat(20);
Cat c2 = new Cat(20);
Cat c3 = new Cat(20);
System.out.println("c1 == c2 :" + (c1 == c2) + ""); //问题7:
System.out.println("cp1.equals(c2) :" + c1.equals(c2)); //问题8:
System.out.println("c1 == c3 :" + (c1 == c3)); //问题9:
System.out.println("c1.equals(p3) :" + c1.equals(c3)); //问题10:
System.out.println("***************6-10***********************");
System.out.println("c1 == p1 :" + (c1 == c2) + ""); //问题11:
System.out.println("c1.equals(p1) :" + c1.equals(p1)); //问题12:
Integer i1 = new Integer(11);
Integer i2 = new Integer(11);
System.out.print("i1 == i2 :");
System.out.println(i1 == i2); //问题13
System.out.println("i1.equals(i2) :" + i1.equals(i2)); //问题14
Integer i3 = 25;
Integer i4 = 25;
Integer i5 = 137;
Integer i6 = 137;
System.out.print("i3 == i4 :");
System.out.println(i3 == i4); //问题15
System.out.println("***************11-15***********************");
System.out.println("i3 == i4" + (i3 == i4)); //问题16:
System.out.print("i3.equals(i4) : ");
System.out.println(i3.equals(i4)); //问题17:
System.out.print("i5 == i6 : ");
System.out.println("" + (i5 == i6)); //问题18:
System.out.print("i5.equals(6) : ");
System.out.println(i5.equals(i6)); //问题19:
System.out.println("***************16-19***********************");
}
}
class Person{
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(int age) {
this.age = age;
}
public boolean eq(Object obj){
if(! (obj instanceof Person) ){
throw new ClassCastException("类型错误");
}else{
Person p = (Person)obj;
return super.equals(obj);
// return this.age == p.age;
}
}
}
class Cat{
private int age;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Cat other = (Cat) obj;
if (age != other.age)
return false;
return true;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Cat(int age) {
this.age = age;
}
}
复制代码
//FFTTF
//FFTFT
//FFFTT
//TTFT
复制代码
作者:
黑马罗坚
时间:
2012-7-21 21:59
false
false
true
true
false
false
false
true
false
true
false
false
false
true
true
true
true
false
true
作者:
黑马罗坚
时间:
2012-7-21 22:33
我稍微来帮你补下
class Student{
public int hashCode(){
return 1;
}
public boolean equals(Object o){
return false;
}
}
Set set=new HashSet();
Student st=new Student();
Student st1=st;
set.add(st);
System.out.println(set.add(st1)); //问题1
Character c1=2;
Character c2=2;
Character c3=128;
Character c4=128;
System.out.println(c1==c2);//问题2
System.out.println(c3==c4);//问题3
Integer i1=Integer.valueOf(-128);
Integer i2=Integer.valueOf(-128);
Integer i3=Integer.valueOf(128);
Integer i4=Integer.valueOf(128);
System.out.println(i1==i2);//问题4
System.out.println(i3==i4);//问题5
System.out.println(Double.valueOf(3)==Double.valueOf(3));//问题6
Integer i5=i2+i3;
Integer i6=Integer.valueOf(0);
System.out.println(i5==i6);//问题7
String s1="我们的";
String s2=String.valueOf("我们的");
String s3=s1+"1";
String s4="我们的1";
System.out.println(s1==s2);//问题8
System.out.println(s3==s4);//问题9
作者:
朱烈葵
时间:
2012-7-21 22:59
拿回去 猛的打印就可以了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2