해시 자료 구조에서 equals 메서드와 hashCode 메서드를 재정의 해야하는 이유? 해시 자료 구조를 사용할려면 equals 메서드와 hashCode 메서드를 구현해야한다. 왜 두 메서드를 재정의 해야하는 이유는 아래 예제 코드를 통해 확인해본다.Object의 기본 기능 우선 equals 메서드와 hashCode 메서드는 Object 클래스에 기본 기능이다. 클래스를 만들 때 두 메서드를 재정의하지 않으면, 해시 자료 구조에서 Object가 기본으로 제공하는 hashCode, equals 메서드(참조값을 기반으로 동작하는)를 사용하게 된다.hashCode(): 객체의 참조값을 기반으로 해시 코드를 반환한다.equals(): 동일성 비교를 한다. 객체의 참조값이 같아야 true를 반환한다.예제1 ha..
열거형이란? 열거의 뜻은 어떤 항목을 나열하는 것이며, 자바에서의 열거형은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. 열거형이 생긴 이유? 우선 열거형이 생기기 전의 예제를 보면서 열거형이 생긴 이유를 봐야한다. 아래 예제는 부모, 선생님, 학생에 따라 노출되는 문자를 리턴해주는 예제이다. 예제1public class SchoolService { public String show(String division) { String returnView = ""; if (division.equals("Parent")) { returnView = "A"; } else if (division.equa..
OCP 원칙이란?Open for extension: 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확장할 수 있어야 한다.Closed for modifiction: 기존의 코드는 수정되지 않아야 한다.위의 두 의미를 합치면, 확장에는 열려있고, 변경에는 닫혀 있다는 뜻인데, 즉 기존의 코드는 수정 없이 새로운 기능을 추가할 수 있다는 의미이다. 예제Playerpublic class Player { private GameConsole gc; public void setGc(GameConsole gc) { this.gc = gc; } public void play() { gc.gamePlay(); }}GameConsolepublic inter..
