Day 12(8/16) Equals

2016. 8. 23. 14:30Programming/Java

**오늘 배운 내용**

1) Equals가 필요한 이유

2) Equals 활용



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Animal{
     String name;
     //필드는 전역 변수이자 클래스가 가지는 성질
 
     public Animal(String name){
          this.name = name;
     }
 
@Override
 public boolean equals(Object obj) {
 boolean flag = true;
 Animal a = (Animal)obj; //형 변환
 //Object 클래스가 모든 클래스의 조상이기 때문에 가능
 
 if(this.getClass() != a.getClass()){
      flag = false;
  }
  if(this.name.equals(a.name)){
      flag = false;
  }
      return flag; 
  }
 
public class L04Equals {
     public void main(String[] args){
          String a = "hi";
          String b = new String("hi");
              System.out.println(a);
              System.out.println(b);
              System.out.println(a==b); //false 출력
              System.out.println(a.equals(b)); 
//true 출력. Object 클래스의 equals를 String이 재정의함
          Animal cat = new Animal("페르시안");
          Animal cat2 = new Animal("페르시안");
              System.out.println(cat.equals(cat2)); 
//false 출력 -> equals 형 변환 통해 true로 출력
  
          }
     }
}
cs


//a.equals(b): a와 b의 값을 비교(NOT 주소비교)

//equals()는 복제인간 수준으로 같은 객체는 같다고 본다.
//==으로는 비교할 수 없기 때문에 equals가 등장함



1
2
3
4
5
6
7
8
9
10
public class L05EqualsEx {
     public static void main(String[] args) {
     //new ArrayList().add("list"); // 저장에 성공했는지 아닌지 확인하는 boolean의 반환
     ArrayList list = new ArrayList();
         list.add("list");
     EqualsDemo ed1 = new EqualsDemo("demo"30, list, "object");
     EqualsDemo ed2 = new EqualsDemo("demo"30, list, "object");
         System.out.println(ed1.equals(ed2)); //true 반환
     }
}
cs


'Programming > Java' 카테고리의 다른 글

Day 14(8/18) Final, Enum  (0) 2016.08.23
Day 13(8/17) public, private  (0) 2016.08.23
Day 11(8/15) Object, hashCode  (0) 2016.08.23
Day 10(8/12) Abstract, Interface  (0) 2016.08.16
Day 9(8/11) extends, @Override, frame  (0) 2016.08.16