오늘은 알고리즘 시험 전 마지막 날로써 뭔가 집중이 되지 않았다. 분명 시험도 안 끝났고 문제는 다 풀었다. 시험 전날 이어서 그런가 싶었는데, 기술 매니저님이 오시면서 뭔가 준비하신거 같았다. 조원들을 따로 부르시고서 무언가 물어보신다고 했다. 마치고 온 조원들은 아무말도 안해주고 재밌었다라고만 했다. 궁금해서 미쳐버릴 지경이었다. 시간이 흐르고 내 차례가 돌아왔다. 역시나 테스트였는데 곧 있을 Spring주차를 앞두고 객체지향에 대한 이해도를 물어보셨다.
1. Book이라는 클래스를 만들고 인스턴스 변수 index, title, contents를 만들어라
2. 클래스 변수 pages를 만들어라
3. title, contents를 초기화 하는 생성자를 만들고 기본생성자를 만들어라
4. contents를 수정하고 확인하는 메서드 2개를 각각 만들어라 (updateContents / getContents)
5. int 값을 매개변수로 받아 현재 객체의 index와 비교하여 true / false를 반환하는 메서드를 만들어라
문제를 보자마자 머리가 하얘지면서 멍해졌다. 대충은 그려지는데 구체적으로 안 써내려가고 무의식적으로 쓰고 있었다. Book이라는 클래스를 만들고 인스턴스 변수들도 선언을 했는데 갑자기 클래스 변수 pages?를 선언할려니 숨이 턱 막혔다. 기억이 나질 않았다. 클래스 변수가 뭐였지 싶었다. title, contents를 초기화 하는 생성자랑 기본 생성자? 생성자는 클래스 이름이랑 똑같아야 하는데 뭐지 싶었다. 유일하게 내새울 정도로 잘했다고 할만한게 boolean을 통한 메서드를 만드는 것이다.
public class Book {
int index;
String title;
String contents;
static int pages;
Book() { }
public Book(String title, String contents) {
this.title = title;
this.title = contents;
}
public void updateContents(String contents){
this.contents = contents;
}
public String getContents() {
return contents;
}
private boolean checkIndex(int index) {
return this.index == index;
}
}
내가 Spring을 들어가기 전 객체 지향에 대해 정확히 알지 못하고 있구나라는 인식을 했다. 좀 창피했다. 나름 공부한다고 했다고 생각했는데 정작 내 머리속에는 이해도 하지 못하고 그냥 막 이유없이 쓰고 있던가 아님 모르고 있었다. 당장 주특기 Spring이 곧 앞두고 있는데 객체지향에 대해 다시 한번 정리를 해야 겠다. 피하지 말고 직접 코드를 쳐가면서 이해하도록 노력하겠다.