728x90
반응형
제어자= 접근제어자(public, protected, private) +그 외 static, final, abstract 등등
- 제어자는 클래스와 클래스의 멤버에 부가적인 의미를 부여한다.
- 하나의 대상에 여러 제어자 사용 가능하나, 접근제어자는 1개만 가능!
- 접근제어자: private < ( 아무것도 안붙임 ) < protected < public
제어자 | 같은 클래스 | 같은 패키지 | 자손클래스 | 전체 |
public | O | O | O | O |
protected | O | O | O | |
( X ) | O | O | ||
private | O |
- public
- 접근제한이 전혀 없음
- protected
- 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근 가능
- ( X )
- 같은 패키지 내에서만 접근 가능
- private
- 같은 클래스 내에서만 접근 가능
- final
제어자 | 대상 | 의미 |
final |
클래스 | 변경될 수 없는, 확장될 수 없는 클래스 (다른 클래스의 조상이 될 수 없다) |
메소드 | 변경될 수 없는 메소드 ( 오바라이딩(재정의)될 수 없다 ) | |
멤버변수, 지역변수 | 값을 변경할 수 없는 상수 |
-예시
final int hour = 15; //상수
// hour = 10; //값 변경 불가
- abstract
제어자 | 대상 | 의미 |
abstract | 클래스 | 추상메소드를 포함한 클래스 (미완성클래스) * 추상클래스는 객체를 생성할 수 없다. |
메소드 | 추상메소드 : 중괄호{}가 없는 메소드 (선언부만 있고 구현부는 없다) |
- static
제어자 | 대상 | 의미 |
static | 멤버변수 | * 클래스변수는 객체 생성 없이 사용 가능 * 모든 인스턴스에 공통으로 사용되는 클래스변수 |
메소드 | * 객체 생성 없이 호출가능한 static메소드 |
- static은 언제 붙여야 할까?
- 멤버( 변수&메소드 ) 중에서 공통 속성에 static을 붙인다. (인스턴스 변수는 개별속성, 클래스 변수는 공통속성)
- 인스턴스멤버(인스턴스변수& 인스턴스메소드)를 사용하지않는 메소드에 static을 붙인다.
- 인스턴스 변수와 클래스 변수의 차이
- 인스턴스 변수는 객체 생성 후 사용할 수 있고, 클래스 변수는 객체 생성 없이 아무때나 사용할 수 있다.
- 인스턴스 변수 사용
클래스명 참조변수명=new 클래스명; //객체 생성
참조변수명.인스턴스변수
- 클래스 변수 사용
클래스명.클래스변수 //객체 생성 없이 아무때나 사용 (객체 자동생성됨)
728x90
반응형
'Java Tutorial' 카테고리의 다른 글
[Java] Map컬렉션 (1) | 2024.07.14 |
---|---|
[Java] 스트림 (Stream) +Optional 클래스 (0) | 2024.07.02 |
[Java] 인터페이스 (interface) (0) | 2024.06.16 |
[Java] StringBuilder 클래스 (0) | 2023.07.24 |
[Java] 예외 처리 (0) | 2023.07.02 |