본문 바로가기

불변 객체2

『Java』 동일성 (Identity) vs 동등성 (Equality) 자바에서 객체를 비교할 땐 동일성과 동등성 개념이 필요하다. 동일성 (Identity)메모리 내 주소가 같은지 비교한다. 자바에서는 == 연산자를 사용하여 동일성 비교한다.동등성 (Equality)값이 동등한 지 비교한다. 자바에서는 equals() 메서드를 재정의하여 동등성 비교한다.  자동차 클래스 비교하기  Car 클래스는 name과 position 상태를 가진다. 여기서 같은 이름의 자동차는 존재할 수 없다는 요구사항이 있다고 가정하자. 따라서 이름이 같은 두 Car 객체는 동등한 객체로 취급되어야 한다.   equals() 메서드 재정의this == o로 메모리 주소가 같은지 확인한다.o가 null이거나 클래스 타입이 다르면 false를 반환한다.name 필드의 값이 같은지를 비교하여 논리적 동.. 2024. 11. 4.
『Java』 final에 대한 이해 finalfinal 키워드는 변수, 메서드, 또는 클래스에 대한 변경 불가능 하도록 하는 데 사용된다.final 키워드를 사용하면 그 요소는 한 번 할당되거나 정의된 후 변경될 수 없다.   변수에 final 사용지역 변수final로 선언된 지역 변수는 한 번만 값을 할당할 수 있다. 초기화 이후에는 그 값이 변경될 수 없다.  필드 (멤버 변수) 객체의 필드에 final을 사용하면 객체가 생성될 때 필드를 초기화해야 하며, 그 이후에는 그 필드의 값을 변경할 수 없다.  파라미터 메서드의 파라미터를 final로 선언하면, 메서드 안에서 파라미터의 값을 변경할 수 없다. 이는 메서드 안에서 파라미터가 참조하는 데이터의 무결성을 유지한다.  메서드에 final 사용 final로 선언된 메서드는 하위 클래.. 2024. 10. 24.