Day 11 _ 객체지향 심화 (부제 : 장염 조심)
1. 상속
- 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법
- 하위 클래스는 상위 클래스가 가진 모든 멤버를 상속받음
- extends를 사용함 => 기존의 것에서 확장시킨다는 개념
- 다형적 표현이 가능하다.
- 단일상속만 허용 (다중 상속은 x)
2. 포함과의 구분
클래스와의 관계를 기준으로
- ~은 ~이다 : 상속이 적합함
- ~은 ~을 가지고 있다 : 포함관계
3. 메서드 오버라이딩
- 상위 클래스로부터 상속받은 메서드와 동일한 이름의 메서드를 재정의하는 것
- 메서드 이름, 매개변수, 반환 타입 등이 상위클래스와 일치해야 함
- 접근 제어자의 범위가 상위 클래스의 메서드보다 같거나 넓어야 함
- 상위 클래스 메서드보다 예외를 더 많이 선언할 수 없음
4. super와 super()
- super : 상위 클래스의 객체 호출
- super() : 상위 클래스의 생성자 호출
- super() 메서드는 생성자 안에서만 사용 가능, 반드시 첫 줄에 와야함(this()와 같은 특징)
* 참고 : this와 this()
- this : 자신의 객체 호출
- this() : 자신의 생성자 호출
5. 캡슐화
- 객체 안의 속성과 기능을 하나로 만들어(캡슐) 데이터를 보호하는 것
- 목적 : 데이터 보호 및 불필요한 외부 노출 방지 위해
- 장점 : 정보 은닉. 독립성 확보
- 핵심수단 : 접근제어자, getter와 setter
6. 접근 제어자
- 제어자 : 클래스, 필드, 메서드, 생성자 등에 부가적인 의미를 부여하는 키워드
- 접근제어자 : public, protected, (default), private
- public(제한없음) > protected(동일패키지 + 하위클래스) > dafault(동일 패키지) > private(동일클래스)
7. getter와 setter
- setter : 데이터 값을 변경할 수 있게 해줌
- getter : 설정한 변수값 읽어옴
* 오늘은 장염 혹은 급체 그 어딘가 때문에 유난히 힘들었다.
다행히 비상약이 있어 약을 챙겨 먹으면서 겨우 커리큘럼을 쫓아갈 수 있었다.
그리고 웰컴 기프트가 도착했다. 티셔츠랑 컵 둘 다 실물이 더 예쁘고요.
마무리 공부 조금만 더 하고 자러 가야겠다.