override
[Java] hashCode()
[Java] hashCode()
2023.07.02hashCode() hashCode()는 객체, 즉 Object에 정의되어 있다. hashCode()는 객체의 주소 값을 변환하여 생성한 고유한 정수 값이다. 만약 같은 객체를 참조하고 있다면 hashCode 값은 동일하게 나온다. 예시로, 다음과 같이 작성하여 출력해보면 정수값을 확인해볼 수 있다. class Person { } public class Test { public static void main(String[] args) { System.out.println(new Person().hashCode()); // ex) 798154996 } } Java의 모든 객체의 최상위 부모는 Object이므로 hashCode() 메서드를 Override하여 재정의할 수 있다. equals()와 hashCo..
[Java] abstract class vs interface
[Java] abstract class vs interface
2023.01.20abstract class에 대해 공부하다가 interface와의 차이점이 궁금하여 작성하였다. 추상 클래스(Abstract class) vs 인터페이스(Interface) 추상 클래스(Abstract class) 먼저 추상 클래스(abstract class)는 클래스 내에 추상 메서드가 하나 이상 포함된 클래스를 말한다. 클래스 안에 메서드가 하나 이상 있다면 그 클래스 앞에는 반드시 abstract 클래스명으로 표기되어야 하며 abstract와 final 키워드를 동시에 표기할 수 없다. 일반 클래스에서 추상 클래스를 상속을 받는다면 추상메서드가 있을 경우 모두 구현해주어야 한다. 인터페이스(Interface) 반면 인터페이스(interface)는 모든 메서드가 추상 메서드인 경우이다. 간단히 생각하..