
(7장 – 객체 지향 프로그래밍 II)
1. 컨트롤러
클래스 및 클래스 멤버(메서드 및 멤버 변수)에 추가 의미 추가
* 액세스 제어: public , protected , (기본값) , private
* 기타 컨트롤러: static , final , abstract (나중에 나머지는 배우게 됩니다)
하나의 목적지에 여러 컨트롤러를 함께 사용할 수 있으며, 4개의 액세스 컨트롤러 중 하나만 사용할 수 있습니다.
가장 왼쪽 액세스 수정자 사용
1) 정적 – 공통
static은 멤버 변수, 메서드 및 초기화 블록에서 사용됩니다(객체 생성 없이 사용됨).
인스턴스 멤버는 정적 메서드 내에서 사용할 수 없습니다.
2 ) 최종 – 변경할 수 없음
final은 어디에나 추가할 수 있으며 기능은 추가된 위치에 따라 다릅니다.
1⃣ 클래스 : 크기 조정, 확장 불가 클래스
상속 계층 구조의 마지막
후손이 없는 클래스 = 다른 클래스의 조상이 될 수 없음
2⃣ 변수(iv, lv): 상수
3⃣ 방법: 재정의할 수 없는 방법
+ 덮어쓰기 ? 조상으로부터 상속된 메서드의 내용 수정
3) 초록 – 미완성
1⃣ 클래스: 클래스에 추상 메서드가 있음을 의미(미완성 청사진)
2⃣ 메소드: 선언 부분만 있고 구현 부분은 없는 메소드 { }
3⃣ 추상 클래스는 객체를 생성할 수 없고, 추상 메서드가 있으므로 상속받아 완성해야 함
2. 액세스 제어
| 같은 반 | 같은 패키지 | 같은 패키지 + 자손 클래스 |
제한 없음 | |
| 공공의 | ||||
| 보호 | ||||
| (기본) | ||||
| 사적인 |
액세스 범위: public > protected > (기본값) > private
4) 캡슐화 및 액세스 제어
3. 다형성
하위 유형 객체는 상위 유형 참조 변수로 참조될 수 있습니다.
반대로 하위 유형의 참조 변수는 조상 유형의 객체를 참조할 수 없습니다.
참조 변수에 사용할 수 있는 멤버 수는 인스턴스의 멤버 수보다 작거나 같아야 합니다.
참조 변수 유형과 인스턴스 유형은 일반적으로 일치하지만 일치하지 않는 경우도 있습니다.
class Tv { }
class SmartTv extends Tv { }
Tv t = new Tv ();
SmartTv stv = new SmartTv ();
// 기존에 우리가 쓰던
// 참조변수와 인스턴스의 타입이 일치
Tv t = new SmartTv () ;
// 조상타입 참조변수로 자손타입 인스턴스 참조
// Tv타입 참조변수 t로 SmartTv인스턴스의 모든 멤버를 사용할수 없음
// Tv 클래스로부터 상속받은 멤버만 사용 할수 있다.
SmartTc stv = new Tv ();
// 자손타입 참조변수로 자상타입 객체 참조 할수 없음.
4. 참조 변수의 타입 변환
5. 연산자의 인스턴스
6. 매개변수의 다형성
7. 여러 유형의 객체를 배열로 처리