자바 공부 24 : 접근 제어자

친환경 개발자
|2024. 2. 22. 22:41

접근제어자란?

변수나 메서드, 생성자 등의 앞에 붙어 사용 권한을 설정하는 용도로 사용됨.

 

접근제어자는 다음과 같은 순서로 접근권한이 더 약해짐

privatedefault(기본)  → protectedpublic

 

 

private

- 해당 클래스 안에서만 접근이 가능

- 같은 패키지도 다른 클래스에서는 접근 불가

public class AnotherClass {
    private int privateVariable;
    
    private void privateMethod() {
        System.out.println("private모드입니다")
    }
}

 

 

default

- 가장 기본적인 권한 상태, 아무것도 안쓰면 default접근제어자가 자동 설정됨

- 동일 패키지 내에서 접근 가능

 

package house;     → 패키지가 동일

class HousePark {
    String lastname = "park";
    
public static void main(String[] args) {
    HouseKim kim = new HouseKim();
    System.out.println(kim.lastname);   → HouseKim 클래스의 lastname 변수 사용 가능
}

 

 

protected

- 동일 패키지 또는 해당 클래스를 상속한 자식 클래스에서만 접근 가능

package house.person;    → 서로 다른 패키지

import house.HousePark;

public class Geuns extends HousePark {     → HousePark 상속
    public static void main(String[] args) {     
        Geuns gp = new Geuns();
        System.out.println(gp.lastname);   → 상속한 클래스의 protected 변수는 접근 가능
    } 
}

 

 

public

- 어디서든 접근 가능함

public class MyClass {
    public int publicVariable;
    
    public void publicMethod() {
        // 메서드 내용
    }
}