본문 바로가기

다시 시작/인프런 실전 자바 - 중급

(2)
240801_Object클래스_equals() equals() - 1. 동일성과 동등성Object는 동등성 비교를 위한 equals() 메서드를 제공함 자바는 두 객체가 같다라는 표현을 2가지로 분리함→ 동일성(Identity)"동일"은 완전히 같음→ 동등성(Equality)"동등"은 같은 가치나 수준을 의미 but 그 형태나 외관등이 완전히 같지 않을 수 있음. 동일성은 물리적으로 같은 메모리에 있는 객체 인스턴스인지 참조값을 확인동등성은 논리적으로 같은지를 확인 동일성은 자바 머신 기준이고 메모리의 참조가 기준이므로 물리적동등성은 보통 사람이 생각하는 논리적인 기준에 맞추어 비교 User a = new User("id-100"); // 참조 x001User b = new User("id-100"); // 참조 x002동일성(참조값)은 다르지만 동..
240731_Object클래스_Object와 클래스 만약 오브젝트 클래스가 없다면각각 메서드를 새로 만들어야함 (toString()메서드를 수행할)BadObjectPrinter 클래스가 구체적인 특정 클래스는 A, B를 사용하는 것을 BadObjectPrinter는 A, B에 의존한다고 표현한다. Object가 없고 제공하는 toString() 이 없다면 서로 아무 관계가 없는 객체의 정보를 출력하기 어려울것.아무 관계가 없다는 것은 공통의 부모가 없다는 뜻. → 없다면 하기 내용을 각각의 클래스마다 별도 메서드를 작성해야함 다행히 자바에는 객체의 정보를 사용할 때, Object클래스와 메서드 오버라이딩 문제를 해결해줄 Object.toString() 메서드가 존재함. 추상적인 것에 의존:ObjectPrinter클래스는 A, B 같은 구체적인 클래스를 사..