오늘 한일
- 상속에 대해 배웠다. 상속을 하는 이유 중 하나는 중복을 없앤다이전까지는 단순히 상속을 하면 부모에서 자식들이 공통적으로 사용할 메소드를 정의 함으로써 자식들이 편리하게 해당 기능을 쓸 수 있다는 점만 생각 했다. 근데 그걸 다르게 보면 자식들이 중복적으로 코드를 작성 함으로 생기는 코드의 중복을 없앨 수 있다는 얘기인 것이다. 추가로
protected : 같은 패키지 내에서 접근 가능, 또한 다른 패키지에서 상속받은 클래스에서도 가능
protected를 이론 상으로만 보고 실제 써본 적이 적어서 까먹고 있었던 접근제어자 였는데 이제는 모든 접근제어자들을 한번씩은 제대로 써보면서 어떤 변수, 메소드에 어떤 접근제어자를 지정 해야할 지 조금씩은 감이 오는 것 같다.
- super 해당 키워드는 자식 클래스가 부모에 접근할때 쓰인다. super.xxx, super() 등등 또한
자식(Type xx){ //super(); this.xx = xx; }
이런 식의 코드가 있으면 주석이 없다 해도 자식이 생성될때 super()가 내부적으로 실행 된다. 즉, 부모의 생성자를 먼저 호출 한 다음 자신의 생성자의 내용을 수행한다. 또한 super()가 부모 인스턴스를 생성하는게 아니라 부모의 상태값들을(부모의 모든 기능을 쓰기 위해) 초기화 시킨다음 자식 자신을 만든다. 즉, 자식이 생성될려면 부모를 먼저 초기화 시킨다음 자신을 초기화 시키라고 강제화를 시키라는 규약 같은 것이다.
- 바코드 기기의 구현이 어느정도 마무리 되어 이제는 다른 사람들의 작업이 끝난 다음 추가 작업을 하면 될 것 같다.
- 카카오 공개채용 문제를 일부 풀어봤는데, 풀면서 재미도 느꼈지만 알고리즘 공부가 부족했던 걸 느꼈다. 틈틈히 백준 등 알고리즘 문제를 풀면서 공부를 해봐야겠다.
- 체스 게임 구현은 부모, 자식 클래스를 어떻게 나눌까 고민 하는데 시간을 많이 쏟느라, 정작 코드 작성은 많이 못했다.
오늘 느낀점
- 일단 TIL작성을 매일 남아서 공부를 한 후 집에 와서 하다보니 12시 이전에 마무리 짓지 못하는 것 같다. 내일 부터는 10시 쯤이면 TIL작업을 일정 부분 한다음 마무리 부분을 추가해야 할 것 같다.
- 상속!! 저번의 인터페이스도 그랬지만, 상속도 자바의 기본서로 공부하면서 이론적인 사용법이야 알았다. 그렇지만 사용시 생기는 효용성이 크게 와닿지 않았고, 실질적으로 어떻게 써야하는지는 잘 몰랐는데 이제는 조금 알 것 같다. 하지만 아는 것과 할 줄 아는건 별개이니 앞으로 상속 및 인터페이스가 필요한 부분을 찾아가며 의도적으로 연습을 해야 할 것 같다. 특히나 상속과 인터페이스를 배우면서 객체지향의 매력을 다시금 느꼈다. 객체지향.. 어렵지만 참 매력적인 것 같다.
- 알고리즘!! 일단은 간단한 문제부터 하루에 한,두개씩 풀어 나가야 할 것 같다. 알고리즘을 풀면서 패스하는 걸 보면서 단위 테스트가 떠올랐는데 단위 테스트를 활용해서 풀어보는 것도 재밌을 것 같다.
- 책을 아직은 못 읽었다. 일단은 내가 보고 싶어서 두시간 정도 읽다 잘 생각이지만, 수업이 있는 월,수,금은 책 보다는 그날 배운 부분 공부 쪽에 비중을 더 두는게 나을 것 같다.
내일 할일
- 체스 게임(상속 부분 지속적으로 구현)
- 웹 개발 워크북 일기
- 알고리즘 공부 할 사이트 찾기