240807 내일배움캠프 백엔드 Java 6기 TIL : Java 추가공부

박대현·2024년 8월 7일
0
post-thumbnail

Java Team Project 마무리단계라서 시간적인 여유가 있었다. 그래서 인프런에 김영한씨가 만든 스프링입문을 들을 예정이었는데, 최종코드리뷰를 하면서 팀원분 한분이 다소 충격적인 말을 했다.

우리 객체지향적으로 못짠게 아쉽네요.

아니, 나는 누구보다 객체지향적으로 짜려고 노력했는데, 그게 아니라는 말에 다소 놀라서 이유를 물어봤는데, 정확하게는 객체지향의 요소를 다 충족시키지는 못했다는 의미였다. 약한 수준의 캡슐화나 SRP는 잘 지켰지만, 상속이나 인터페이스, 다형성을 활용하지 못해 아쉽다는 말이었다. 그말을 듣고 어느정도 이해했다고 생각했던 객체지향의 의미를 다시 공부해야겠다는 생각에, 'Java의 정석 객체지향' 파트 정주행을 시작했다.

가져가야할 지식

  • static을 언제 붙여야할까?
    • 필드(변수) : 공통속성일 때
    • 메소드 : 인스턴스변수를 쓰지 않을 때
  • 메서드 오버로딩이 성립하는 조건
    • 이름이 같아야하고
    • 매개변수의 종류나 개수가 달라야한다.
    • 리턴타입은 성립조건에 영향이 없다.
  • this() : 생성자의 디폴트값을 정해줄 때, 코드중복을 줄이면서 사용 가능
  • 오버라이딩의 조건
    • 선언부가 조상과 동일
    • 접근제어자를 조상보다 좁게 못함
    • 조상보다 많은 예외를 둘 수 없음
  • Static {} : 복잡초기화의 예시

  • 상속의 특징 : 생성자와 초기화블럭은 상속이 안된다.

0개의 댓글