(JAVA) 객체 지향 개념 7장 pt.2


(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. 여러 유형의 객체를 배열로 처리