| 1. Basics | 클래스, 객체, 변수, 메서드 // 생성자, 초기화 |
| 2. Advanced | 상속, 오버라이딩 // package, import, modifiers, 다형성 // 추상클래스, interface, 내부클래스 |
| 4. Modifier(제어자) | 1. 제어자 2. static 3. final 4. abstract 5. 접근 제어자(public, private, protected...) 6. 제어자의 조합 |
*'제어자' 라고 부르는 경우는 드묾 **static 정도 중요하게 보면 될 듯
4.1 제어자(modifiers)
- 제어자
-클래스, 변수, 메서드의 선언부와 함께 사용되어 부가적인 의미를 부여함 - 제어자의 종류
-접근 제어자(access control modifier):
public, protected, (default), private
-그 외의 제어자
static, final, abstract, (native, transient, synchronized, volatile ...)
*하나의 대상에 여러 개의 제어자를 조합하여 사용하는 것 가능
(public과 private 함께 사용 불가)
4.2 static *객체와 static 구분하자
-멤버변수, 메서드, 초기화 블록에서 사용 가능
- 멤버변수에서의 사용
-모든 인스턴스에 공통적으로 사용하는 클래스 변수가 됨
-클래스 변수는 인스턴스를 생성하지 않고도 사용 가능 - 메서드에서의 사용
-인스턴스를 생성하지 않고도 호출이 가능한 static 메서드가 됨
-static 메서드 내에서는 인스턴스 멤버들을 직접 사용할 수 없음 - 초기화 블록에서의 사용
-static 변수의 복잡한 초기화 작업을 수행함
4.3 final
-클래스, 메서드, 멤버변수, 지역변수에서 사용 가능
-의미: 변경 불가
- 클래스에서의 사용
변경될 수 없는 클래스, 확장될 수 없는 클래스가 됨 - 메서드에서의 사용
변경될 수 없는 메서드, 오버라이딩을 통해 재정의 될 수 없는 메소드가 됨 - 멤버볌수, 지역변수에서의 사용
값을 변경할 수 없는 상수가 됨

- 생성자를 이용한 final 멤버변수 초기화
-final이 붙은 변수는 상수이므로 보통 선언과 동시에 초기화 수행
-인스턴스 변수의 경우 생성자에서 단 한번만 초기화 가능
*각 인스턴스마다 final이 붙은 멤버변수가 다른 값을 가질 수 있음

4.4 abstract
-클래스, 메서드에서 사용 가능
- 클래스에서의 사용
클래스 내에 적어도 하나 이상의 abstract 메서드가 선언되어 있음을 의미함 - 메서드에서의 사용
abstract 메서드는 선언부만 존재, 구현부는 존재치 않음 => '추상 메서드'에서 자세히 배움
4.5 접근 제어자(access modifier)
-접근 허용 범위를 나타냄
-클래스 또는 멤버에 사용되어 외부에서 접근하지 못하도록 제한하는 역할
-접근 제어자가 사용될 수 있는 곳: 클래스, 멤버변수, 메서드, 생성자
- 접근 제어자 종류
public, protected, default. private
*default 접근 제어자: 아무런 접근 제어자도 붙이지 않은 경우, package라고도 함 - 대상에 따라 사용할 수 있는 접근 제어자

- 접근 제어자에 따른 접근 허용 범위

'CSE > CP1 이론' 카테고리의 다른 글
| CP1_07. 객체지향프로그래밍_Advanced_추상클래스 (0) | 2024.06.10 |
|---|---|
| CP1_06.객체지향 프로그래밍_Basics_2 (0) | 2024.06.05 |
| 12주차_객체지향프로그래밍 II. Advanced 3. Package와 import~ (0) | 2024.05.27 |
| CP1_06.객체지향 프로그래밍_Basics_1 (0) | 2024.05.02 |
| CP1_05.배열_2.String배열 (0) | 2024.04.30 |