본문 바로가기
Java의 정석 기초편(남궁성) 정리 + a/6 ~ 7. 객체지향 프로그래밍 1, 2

객체지향 프로그래밍2 17 ~ 21 . 제어자 , static , final , abstract , 접근 제어자

by doriver 2022. 9. 26.

제어자 ( modifier )

클래스, 변수 , 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다.

하나의 대상에 대해 여러 제어자를 조합하여 사용하는 것이 가능

제어자 접근 제어자 public , protected , (default) , private
그 외 static , final , abstract , native , transient ...

클래스, 멤버변수, 메서드에 주로 사용된다

 

접근제어자는 한번에 네가지중 하나만 선택해서 사용할수 있다

주로 접근 제어자를 제일  왼쪽에 놓는 경향이 있다

 

static

'클래스의' 또는 '공통적인' 의 의미를 가지고 있다

인스턴스가 아닌 클래스에 관계된것 이기 때문에 인스턴스를 생성하지 않고도 사용할수 있다

 

final

'마지막의' 또는 '변경될수 없는'의 의미를 가지고 있다

변수에 사용되면 값을 변경할수 없는 상수가 됨

메서드에 사용되면 오버라이딩을 할수 없게 됨

클래스에 사용되면 자신을 확장하는 자손클래스를 정의하지 못하게 됨

 

abstract

'미완성의' 의미를 가지고 있다

 

 

접근 제어자

private : 같은 클래스 내에서만 접근 가능

default : 같은 패키지 내에서만 접근 가능

protected : 같은 패키지 내에서 + 다른패키지의 자손클래스에서 접근 가능

public : 접근 제한이 전혀 없다

대상 사용가능한 접근 제어자
클래스 public, (default)
메서드 public, protected, (default), private
멤버변수
지역변수 없음

 

접근 제어자를 이용한 캡슐화

클래스 내부에 선언된 데이터를 보호하기위해 접근제어자를 사용

외부에는 불필요한, 내부적으로만 사용되는 부분들을 감추기 위해