본문 바로가기
JAVA/객체지향

제어자

by chogigang 2023. 2. 23.

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

 

접근제어자 public ,protected,default,private

  • public - 모두 접근 가능
  • protected - 동일 패키지, 다른 패키지는 자손클래스에서 접근 가능
  • default - 동일 패키지 안에서만 접근 가능
  • private - 동일 클래스 안에서만 접근 가능

그외  static, final, abstract, native, transient, synchronized, volatile, strictfp

 

 

static (클래스의, 공통적인)

제어자 대상 의미
static 멤버변수 모든 인스턴스에 공통적으로 사용되는 클래스 변수
클래스 변수는 인스턴스를 생성하지 않고도 사용 가능
클래스가 메모리에 로드될 때 사용
메서드 인스턴스를 생성하지 않고도 호출이 가능한 static 메서드
static 메서드 내에서 인스턴스 멤버들을 직접 사용할 수 없음

 

final (마지막의, 변경될 수 없는,인터페이스때 씁니다.)

제어자 대상 의미
final 클래스 변경될 수 없는 클래스, 확장될 수 없는 클래스
final로 지정된 클래스는 다른 클래스의 조상이 될 수 없음
메서드 변경될 수 없는 메서드
final로 지정된 메서드는 오버라이딩을 통해서 재정의 될 수 없음
멤버 변수 변수 앞에 final이 붙으면, 값을 변경할 수 없는 상수가 됨
지역 변수

 

abstratc (추상의, 미완성의)   (인터페이스,추상적 클래스때 많이 사용합니다 고급기술)

제어자 대상 의미
abstract  클래스 클래스 내에 추상 메서드가 선언되어 있음을 의미
메서드 선언부만 작성하고 구현부는 작성하지 않은 추상 메서드

 

 

접근 제어자는 4개중 1개만 쓸수 있습니다

 

 

 

 

 

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

 

데이터를 보호하기위해 접근 제어자를 씁니다

 

 

접근제어자를 사용하는 이유

 

외부로부터 데이터를 보호하기 위해서입니다

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

 

 

 

 

 

 

 

제어자 의 조합

 

 

 

 

'JAVA > 객체지향' 카테고리의 다른 글

추상 클래스  (0) 2023.02.23
다형성  (0) 2023.02.23
Package와 import  (0) 2023.02.23
super & super()  (0) 2023.02.23
상속  (0) 2023.02.23