Day 12(8/16) Equals
2016. 8. 23. 14:30ㆍProgramming/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 |