A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黎健东 中级黑马   /  2012-7-21 21:35  /  1495 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自己比较的做总结了一些容易弄乱 == equals比较,总结
一共19个,不编译自己写一下答案,你能100%最对么,传一下你的答案上来看看
比如这样:
1-5:FFFFF
6-10:TTTTT


  1. public class ObjectEquals2 {

  2.         public static void main(String [] args){
  3.                 Person p1 = new Person(20);
  4.                 Person p2 = new Person(20);
  5.                 Person p4 = new Person(21);
  6.                 Person p3 = p1;       
  7.                 System.out.println("p1 == p2 :" + (p1 == p2) + "");        //问题1:
  8.                 System.out.println("p1.equals(p2) :" + p1.equals(p2));        //问题2:
  9.                 System.out.println("p1 == p3 :" + (p1 == p3));        //问题3:
  10.                 System.out.println("p1.equals(p3) :" + p1.equals(p3));                //问题4:
  11.                 System.out.println("p1.eq(p2) :" + p1.eq(p2));                //问题5:
  12.                 System.out.println("**************1-5************************");
  13.                 System.out.println("p1.eq(p4) :" + p1.eq(p4));                //问题6
  14.                 Cat c1 = new Cat(20);
  15.                 Cat c2 = new Cat(20);
  16.                 Cat c3 = new Cat(20);
  17.                 System.out.println("c1 == c2 :" + (c1 == c2) + "");        //问题7:
  18.                 System.out.println("cp1.equals(c2) :" + c1.equals(c2));        //问题8:
  19.                 System.out.println("c1 == c3 :" + (c1 == c3));        //问题9:
  20.                 System.out.println("c1.equals(p3) :" + c1.equals(c3));                //问题10:
  21.                 System.out.println("***************6-10***********************");
  22.                 System.out.println("c1 == p1 :" + (c1 == c2) + "");                //问题11:
  23.                 System.out.println("c1.equals(p1) :" + c1.equals(p1));        //问题12:               
  24.                 Integer i1 = new Integer(11);
  25.                 Integer i2 = new Integer(11);               
  26.                 System.out.print("i1 == i2 :");       
  27.                 System.out.println(i1 == i2);        //问题13
  28.                 System.out.println("i1.equals(i2) :" + i1.equals(i2));        //问题14
  29.                 Integer i3 = 25;
  30.                 Integer i4 = 25;
  31.                 Integer i5 = 137;
  32.                 Integer i6 = 137;               
  33.                 System.out.print("i3 == i4 :");               
  34.                 System.out.println(i3 == i4);        //问题15
  35.                 System.out.println("***************11-15***********************");
  36.                 System.out.println("i3 == i4" + (i3 == i4));        //问题16:
  37.                 System.out.print("i3.equals(i4) : ");
  38.                 System.out.println(i3.equals(i4));        //问题17:
  39.                 System.out.print("i5 == i6 : ");
  40.                 System.out.println("" + (i5 == i6));        //问题18:
  41.                 System.out.print("i5.equals(6) : ");
  42.                 System.out.println(i5.equals(i6));        //问题19:
  43.                 System.out.println("***************16-19***********************");
  44.         }
  45. }

  46. class Person{
  47.         private int age;
  48.         public int getAge() {
  49.                 return age;
  50.         }
  51.         public void setAge(int age) {
  52.                 this.age = age;
  53.         }
  54.         public Person(int age) {
  55.                 this.age = age;
  56.         }
  57.        
  58.         public boolean eq(Object obj){
  59.                 if(! (obj instanceof Person) ){
  60.                         throw new ClassCastException("类型错误");
  61.                 }else{
  62.                         Person p = (Person)obj;
  63.                         return super.equals(obj);
  64. //                        return         this.age == p.age;
  65.                 }
  66.                
  67.         }

  68. }

  69. class Cat{
  70.         private int age;
  71.         @Override
  72.         public int hashCode() {
  73.                 final int prime = 31;
  74.                 int result = 1;
  75.                 result = prime * result + age;
  76.                 return result;
  77.         }
  78.         @Override
  79.         public boolean equals(Object obj) {
  80.                 if (this == obj)
  81.                         return true;
  82.                 if (obj == null)
  83.                         return false;
  84.                 if (getClass() != obj.getClass())
  85.                         return false;
  86.                 Cat other = (Cat) obj;
  87.                 if (age != other.age)
  88.                         return false;
  89.                 return true;
  90.         }
  91.         public int getAge() {
  92.                 return age;
  93.         }
  94.         public void setAge(int age) {
  95.                 this.age = age;
  96.         }
  97.         public Cat(int age) {
  98.                 this.age = age;
  99.         }
  100.        
  101.        
  102. }
复制代码

  1. //FFTTF
  2. //FFTFT
  3. //FFFTT
  4. //TTFT
复制代码

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
false  
false
true
true
false
false
false
true
false
true
false
false
false
true
true
true
true
false
true
回复 使用道具 举报
我稍微来帮你补下
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
回复 使用道具 举报
拿回去 猛的打印就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马