[OOP] 제어자 (접근제어자, 기타제어자)

Sohyun Liiim·2021년 1월 8일

OOP

목록 보기
4/4

제어자 (modifier)

  • 클래스와 클래스의 멤버(멤버변수, 메서드)에 부가적인 의미를 부여한다. (like 형용사!)
  • 하나의 대상에 여러 제어자를 같이 사용 가능하다. (단, 접근제어자는 하나만 사용)

접근제어자

  • 접근제어자를 사용하는 이유
    • 외부로부터 데이터를 보호하기 위해서 (getter/setter)
    • 외부에는 불필요한(내부적으로만 사용하는) 부분을 감추기 위해서

public

  • 접근 제한 없음

protected

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

default

  • 접근 제어자 생략 가능
  • 같은 패키지 내에서만 접근 가능

private

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

제어자같은클래스같은패키지자손클래스 전 체 
publicOOOO
protectedOOO
(default)OO
privateO


그 외 제어자

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

  • 멤버변수에 붙었을 때의 의미
    • 모든 인스턴스에 공통적으로 사용하는 클래스 변수가 됨 (iv → cv)
    • 클래스 변수는 인스턴스를 생성하지 않고도 사용 가능
    • 클래스가 메모리에 로드될 때 생성
  • 메서드에 붙었을 때의 의미
    • 인스턴스를 생성하지 않고도 호출이 가능한 static 메서드가 됨
    • static 메서드 내에서는 인스턴스 멤버를 직접 사용할 수 없음

final (마지막의, 변경 불가한)

  • 클래스에 붙었을 때의 의미
    • 변경될 수 없는 클래스, 확장될 수 없는 클래스가 됨
    • 다른 클래스의 조상이 될 수 없음
    • Ex ) String, Math 클래스 등
  • 메서드에 붙었을 때의 의미
    • 변경될 수 없는 메서드
    • 오버라이딩을 통해 재정의할 수 없음
  • 멤버변수/지역변수에 붙었을 때의 의미
    • 값을 변경할 수 없는 상수가 됨

abstract (추상의, 미완성의)

  • 클래스에 붙었을 때의 의미
    • 클래스 내에 추상 메서드가 포함되어 있음
  • 메서드에 붙었을 때의 의미
    • 선언부만 작성하고 구현부는 작성하지 않은 추상메서드(미완성메서드)임

profile
새싹개발자를 꿈꾸고 있어요🌱

0개의 댓글