[Java] : 접근 제어자, 기타 제어자

dohyoungK·2024년 3월 13일
1

면접 스크립트

목록 보기
14/25
post-thumbnail

[Java] : 접근 제어자, 기타 제어자


제어자(Modifier)

제어자란 클래스와 클래스 멤버(필드, 메소드, 생성자)의 선언 시 사용하여 부가적인 의미를 부여하는 키워드를 의미한다. 자바에서 제어자는 접근 제어자와 기타 제어자로 구분할 수 있다.


접근 제어자

접근제어자는 클래스와 클래스의 멤버를 사용할 때, 접근할 수 있는 범위를 지정하는 역할을 한다. 그렇게 함으로써 클래스 외부에서의 직접적인 접근을 허용하지 않는 멤버를 설정해 캡슐화가 가능하다.

접근 제어자의 종류

  • public : 접근 제한 없음
  • protected : 같은 패키지 내에서, 자손 클래스에서 접근 가능
  • default : 같은 패키지 내에서만 접근 가능
  • private : 같은 클래스 내에서만 접근 가능

public > protected > default > private 순으로 범위가 넓다.

종류같은 클래스같은 패키지자식 클래스그 외 영역
publicOOOO
protectedOOOX
defaultOOXX
privateOXXX

기타 제어자

final 제어자

자바에서 final 제어자는 변경할 수 없다는 의미로 사용된다.

  • 클래스에 사용 : 다른 클래스가 상속받을 수 없는 클래스가 된다.
  • 메소드에 사용 : 오버라이딩을 통한 재정의를 할 수 없는 메소드가 된다.
  • 필드나 지역변수에 사용 : 값을 변경할 수 없는 상수가 된다.

static 제어자

자바에서 static 제어자는 공통적인 이라는 의미로 사용된다. 프로그램 시작 시 최초 한 번만 생성되고 초기화 된다. 또한 클래스의 모든 인스턴스가 공유하며 인스턴스 생성 없이 사용 가능하다.

  • 메소드에 사용 : 객체 생성없이 사용 가능한 클래스 메소드로 만들어 준다.
  • 변수에 사용 : 생성한 각 객체들이 값을 공유하는 클래스 변수로 만들어 준다.

abstract 제어자

자바에서 abstract 제어자는 추상적인 이라는 의미로 사용된다. 선언부만 있고 구현부가 없는 메소드인 추상 메소드를 정의할 때 쓰이며, 하나 이상의 추상 메소드를 포함하는 추상 클래스를 정의할 때 사용된다.

대상사용 가능한 제어자
클래스public, default, final, abstract
메소드모든 접근 제어자, final, static, abstract
필드모든 접근 제어자, final, static
지역 변수final

0개의 댓글