제어자

백엔드/JAVA / / 2021. 8. 31. 05:33
  • 제어자 : 접근 제어자와 기타 제어자로 구분할 수 있다.
    • 접근 제어자 : 클래스 외부에서의 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보 은닉을 구체화할 수 있다.
      • private : 정보를 은닉하는 용도로 외부에 공개되지 않으며, 외부에서는 직접 접근할 수 없다.
        • 즉, 정보를 보여주고 싶지 않을 때 private을 사용하면 된다.
      • public
        • 외부에 공개되며, 해당 객체를 사용하는 프로그램 어디에서나 직접 접근할 수 있다.
        • public 메소드를 통해서만 해당 객체의 private 멤버에 접근할 수 있다.
        • 즉, public 메소드는 private 멤버와 프로그램 사이의 인터페이스 역할을 수행한다고 할 수 있다.
      • protected
        • 부모 클래스에 대해서는 public 멤버처럼 취급
        • 외부에서는 private 멤버처럼 취급
      • default
        • 따로 존재하지 않으며, 지정되지 않으면 자동적으로 가진다.
        • 같은 패키지에 속하는 멤버에서만 접근할 수 있다.
    • 기타 제어자
      • final : 클래스, 메소드, 필드, 지역 변수에 사용할 수 있다.
        • 변경할 수 없다는 의미를 가지며 필드나 지역 변수에 사용하면 상수가 된다.
        • 클래스에 사용하면 다른 클래스가 상속받을 수 없게 된다.
        • 메소드에 사용하면 오버라이딩을 통한 재정의를 할 수 없게 된다.
      • static : 메소드, 필드, 초기화 블록에 사용한다.
        • 프로그램 시작 시 최초에 단 한 번만 생성되고 초기화된다.
        • 인스턴스를 만들 수 없고, 생성자도 갖지 않는다.
        • 싱글톤 패턴과 static class의 차이를 알면 좋다.
      • abstract : 클래스, 메소드에 사용할 수 있다.
        • 선언부만 있고 구현부가 없는 메소드를 추상 메소드라 하며, 반드시 abstract 제어자를 붙여야 한다.

'백엔드 > JAVA' 카테고리의 다른 글

[JAVA] 객체 자료형 이해하기  (0) 2021.12.25
추상 클래스, 내부 클래스, 인터페이스  (0) 2021.08.31
class와 메모리 구조  (0) 2021.08.31
상수, 리터럴, enum  (0) 2021.08.31
스트림 API  (0) 2021.08.22