※ Override
String one = "hello world!";
String two = "hello world1";
//문자열 비교
if(one.equals(two))
System.out.println("they are the same");
one 의 hello world와 two의 hello world를 비교하는 자바 코드로 두 문자열을 비교하기 때문에 equals 메소드는 두 변수가 같다고 판단할 것이다.
Object one = "hello world!";
Object two = "hello world1";
//문자열 비교
if(one.equals(two))
System.out.println("they are the same");
하지만 이번엔 equals 메소드가 두 개의 메모리 주소를 비교하게 되어 두 객체가 일치하지 않다는 결과가 나온다.
이와같이, 객체 클래스의 equals는 메모리 주소를 비교하지만, 문자열 클래스의 equals를 오버라이드하면 메모리 주소 대신 문자열을 비교하게 만들 수 있다.
※ Comparable 인터페이스
- 객체에서 원하는 자료형으로 비교하고자 Comparable 인터페이스를 활용하고 이는 같은 자료형의 다른 객체 하나를 인자로 받아와 비교하는 compareTo 함수를 이용한다. a.compareTo(b)는 a가 b보다 작을 때 0보다 작은수 a와 b가 같으면 0, a가 b보다 크면 0보다 큰수를 반환한다.
'기타 > What I Learned' 카테고리의 다른 글
[TIL] 자료구조 - 매개변수화 타입 (0) | 2022.03.11 |
---|---|
[TIL] 자료구조 - 제너릭 프로그래밍 (0) | 2022.03.10 |
[TIL] 자료구조 - 객체지향 프로그래밍 (0) | 2022.03.07 |
[TIL] 자료구조 - 빅 오 표기법 (0) | 2022.03.04 |
[TIL] 자료구조 - 복잡성 (0) | 2022.03.03 |