public private default protected

BackEnd_Ash.log·2023년 7월 15일
0

자바스터디

목록 보기
9/19

접근제한자

Java에서는 네 가지 접근 제어자(Access Modifier)를 사용하여 클래스, 메서드, 변수 등의 접근 범위를 제한할 수 있습니다. 이들은 public, private, protected 그리고 기본 접근 제어자(아무런 키워드가 없는 경우)입니다.

  1. public: public 키워드가 붙은 멤버는 어떤 클래스에서든지 접근이 가능합니다. 즉, public 접근 제어자는 멤버를 외부에 공개하여 어떤 클래스든지 접근할 수 있게 합니다.

  2. private: private 키워드가 붙은 멤버는 해당 클래스 내에서만 접근이 가능합니다. 즉, private 접근 제어자는 멤버를 외부로부터 감추고 해당 클래스 내에서만 접근할 수 있게 합니다.

  3. protected: protected 키워드가 붙은 멤버는 같은 패키지 내의 다른 클래스 또는 서브 클래스에서 접근이 가능합니다. 즉, protected 접근 제어자는 상속 관계의 클래스나 같은 패키지에 있는 클래스로만 접근을 허용합니다.

  4. default(기본 접근 제어자): 아무런 접근 제어자 키워드도 붙지 않은 멤버는 기본 접근 제어자를 가지며, 같은 패키지 내에서만 접근이 가능합니다.

이 네 가지 접근 제어자를 통해, 클래스의 내부 데이터를 캡슐화하고 보호하는 데 필요한 접근 범위를 설정할 수 있습니다. 이는 객체 지향 프로그래밍의 핵심 원칙 중 하나인 캡슐화를 지원하는 데 중요한 역할을 합니다.

// 패키지 com.example.demo;
package com.example.demo;

public class MyClass {
    public int publicVar = 1;       // public 접근 제어자
    private int privateVar = 2;     // private 접근 제어자
    protected int protectedVar = 3; // protected 접근 제어자
    int defaultVar = 4;             // default (패키지-private) 접근 제어자

    // public 메서드
    public void publicMethod() {
        System.out.println("This is a public method");
    }

    // private 메서드
    private void privateMethod() {
        System.out.println("This is a private method");
    }

    // protected 메서드
    protected void protectedMethod() {
        System.out.println("This is a protected method");
    }

    // default 메서드
    void defaultMethod() {
        System.out.println("This is a default method");
    }
}

위의 클래스에서, publicMethodpublicVar는 다른 패키지의 어떤 클래스에서도 접근이 가능합니다. privateMethodprivateVarMyClass 내에서만 접근이 가능하며, protectedMethodprotectedVar는 같은 패키지 내의 다른 클래스 또는 서브 클래스에서 접근이 가능합니다. 마지막으로, defaultMethoddefaultVar는 같은 패키지 내의 클래스에서만 접근이 가능합니다.

profile
꾸준함이란 ... ?

0개의 댓글