제어자= 접근제어자(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 |
클래스 | 변경될수없는, 확장될수없는 클래스 (다른 클래스의 조상이 될수없다) |
메소드 | 변경될수없는 메소드 ( 오바라이딩(재정의)될수없다 ) | |
멤버변수, 지역변수 | 값을 변경할수없는 상수 |
- abstract
제어자 | 대상 | 의미 |
abstract | 클래스 | 추상메소드를 포함한 클래스, 미완성클래스 *추상클래스의 객체는 생성 불가능하다 |
메소드 | 추상메소드: 중괄호{}가 없는 메소드 (선언부만 작성하고 구현부는 작성하지않은 메소드) |
- static
제어자 | 대상 | 의미 |
static | 멤버변수 | *클래스변수는 객체생성없이 사용 가능 *모든 인스턴스에 공통으로 사용되는 클래스변수 |
메소드 | *객체생성없이 호출가능한 static메소드 |
- static은 언제 붙여야 할까?
- 멤버( 변수&메소드 ) 중에서 공통속성에 static을 붙인다. (인스턴스변수는 개별속성, 클래스변수는 공통속성)
- 인스턴스멤버(인스턴스변수& 인스턴스메소드)를 사용하지않는 메소드에 static을 붙인다.
- 인스턴스변수는 객체생성 후 사용가능하고, 클래스변수는 객체생성없이(자동생성) 아무때나 사용가능하다!
- 인스턴스변수?
클래스명 참조변수명=new 클래스명; //객체생성
참조변수명.인스턴스변수
- 클래스변수?
클래스명.클래스변수
728x90
반응형
'Java Tutorial' 카테고리의 다른 글
[Java] 스트림 (Stream) +Optional 클래스 (0) | 2024.07.02 |
---|---|
[Java] 인터페이스 (interface) (0) | 2024.06.16 |
[Java] StringBuilder 클래스 (0) | 2023.07.24 |
[Java] 예외 처리 (0) | 2023.07.02 |
[Java 필수 기초 지식] 클래스 (생성자, 필드, 메소드) (0) | 2023.06.06 |