(TIL) 20220521, 정적 메서드/기본 메서드, 디자인 패턴
2022. 5. 22. 02:45ㆍTIL(Today I learned)
반응형
🏴Facts(한 것)
- 자바 9 공부
- 디자인 패턴 공부하기(헤드퍼스트 디자인패턴)
- '결승부터 시작하는 커리어' 세션 참여
- 운동하기
- MVC 패턴 강의듣기
🏴Findings(배운 것)
자바 8 이전까지는 모든 메서드가 추상 메서드여야 했다. -> 구현부가 없어야 했다.
하지만 자바 8 이후부터는 실제 구현이 있는 정적 메서드, 기본 메서드, 비공개 메서드를 추가할 수 있다.
먼저 정적 메서드는 인스턴스를 생성하지 않고 바로 사용할 수 있다는 장점이 있다.
특히 호출자 입장에서는 인스턴스가 어떤 클래스의 인스턴스 인지 신경쓸 필요가 전혀 없기 때문에 정적 메서드가 사용되곤 한다.
public interface IntSequence {
static IntSequence digisOf(int n) {
return new DigisSequence(n);
}
}
이렇게 구현 했다면 다른 클래스에서
InteSequence.digisOf(10);
인스턴스를 생성하지 않고 이렇게 바로 사용이 가능하다.
기본 메서드의 경우 이름처럼 기본 동작에 대한 구현을 작성할 수 있다.
당연하게도 따로 구현하지 않는다면 기본 동작으로 작동한다.
이때 문제가 생기는데 바로 다중 구현을 사용할 때이다.
구현하려하는 두개의 인터페이스에 같은 이름의 메서드가 있다면?
이때는 super 키워드를 사용해서 메서드를 호출 할 수 있다.
이 부분은 슈퍼클래서 확장에서 따로 다뤄야한다.
반복자 패턴, 컴포지트 패턴, 상태 패턴을 읽고 간략하게 정리해봤다.
🏴Affirmation(자기선언)
- 매일 알고리즘 문제 1문제 이상 풀기 -> 실패
- 자바 8버전에 익숙해지기 -> 성공
🏴여담
반응형
'TIL(Today I learned)' 카테고리의 다른 글
(TIL) 20220526, 파이썬 2차원 배열 정렬, 람다식 (0) | 2022.05.27 |
---|---|
(TIL) 20220523, Iterable와 Iterator (0) | 2022.05.24 |
(TIL) 20220520, 나의 강점. (0) | 2022.05.21 |
(TIL) 20220518, 데이터 중심 애플리케이션 설계 (0) | 2022.05.19 |
(TIL) 20220517 (0) | 2022.05.18 |