접근 제어자 : 클래스의 접근 범위를 제한하기 위한 제어자이다.
public : 접근제한 x
protected : 같은 패키지 + 다른 패키지의 자식 클래스에서 접근 o
default : 같은 패키지 내에서만 접근 o(자료형 앞에 아무 것도 쓰지 않았을 때)
private : 같은 클래스에서만 접근 o
허용 범위 : public > protected > default > private
접근 제어자 | 같은 클래스 | 같은 패키지 | 자식 클래스 | 그 외 |
public | o | o | o | o |
protected | o | o | o | x |
default | o | o | x | x |
private | o | x | x | x |
기타 제어자
final : 변경할 수 없는 상수(constant)를 의미한다. (c,c++ 관점에서 바라볼 때 const와 같은 의미이다)
final을 사용하면 다른 클래스가 상속 받을 수가 없으면 메소드 오버라이딩(overriding)을 통한 재정의가 불가능하다.
=>클래스 메소드 필드 지역변수에서 사용 가능
static(공통적) : 프로그램 시작시 한 번만 생성되고 초기화된다. 인스턴스를 생성하지 않고도 사용 가능
해당 클래스의 모든 인스턴스가 공유할 수 있다.
인스턴스 변수, 지역 변수 등은 인스턴스를 생성해야 변수를 사용할 수 있다.
abstract(추상적): 선언부 x 구현부만 존재하면 abstract 메소드라고 하며, 추상 메소드를 포함하고 있는 추상 클래스는 반드시 abstract 제어자를 붙여줘야 한다.
'Java > Java Concept' 카테고리의 다른 글
메소드의 구분(클래스 메소드, 인스턴스 메소드) (0) | 2022.08.09 |
---|---|
필드의 구분(클래스 변수, 인스턴스 변수, 지역 변수) (0) | 2022.08.09 |
패키지(package) 개념 (1) | 2022.07.08 |
메소드 오버로딩 (1) | 2022.07.04 |
this와 this() (1) | 2022.07.04 |