0. 핵심

  • 생성자 - 같은 클래스 내에서 재사용 => this() 통해 - 다른 클래스에서 재사용하기 => super() 통해 - Default 생성자는 반드시 필요하지 않다. 상속받을때는 고려해야 함. - 요구사항을 분석하고, 불명확해도 공통적인걸 뽑아내서 상속받게 한다.
  • 메모리 관련 구조에 대한 그림 학습
  • Object Casting과 Type Casting에 대해 배움.
  • equals()와 hashCode()를 중복체크 할때 사용하라.
  • ☆ ☆ ☆ Stack의 값은 다 reference 값이다!

1. 상속의 경우에는 확장한다 라고 한다. extends의 뜻도 확장.

  • 자바는 단일 상속만 지원한다. 왜냐하면 구현부를 고려하기 때문이다. 상속을 한번만 받을 수 있다.
    cf)c++은 다중상속이 지원된다.

2. 상속의 기본 : 가장 가까운 부모를 찾는 것.

3. 오버라이딩의 전제조건은 상속!

4. Overriding 규칙.

  1. Name
  2. Return type (일반적으로 같게 사용, sub class에서 다르게 사용해도 되나보다.)
  3. Argument list
  4. Access modifier는 같거나 보다 넓은 범위를 갖게.

5. 다형성 : 다양한 형태(구현부)의 성질

  • 같은 인터페이스의 구현부를 다양하게 사용할 수 있다해서 다형성

6. this가 호출되는 시점.

  • 객체의 메소드나 생성자가 호출 될 때.

7. Java에서 모든 Memory는 Reference다.

8. instanceof 키워드!

9. StringBuilder가 성능이 가장 좋으니, String 이어붙이기 사용을 지양하라.

10. type casting과 object casting의 차이점

  • 컴파일러가 알아서 걸러주느냐, 그렇지 못하냐의 차이.

11. Java에서 String.format()은 잘 안쓴다. C 개발자들을 위해 생긴 메소드라.

12. 싱글톤 디자인 패턴

  • 한번만 생성한다라기 보다는, 하나의 인스턴스를 유지한다는 개념으로 이해하라.