inblog logo
|
Coding_study
    JAVA

    접근 제어자

    #JAVA #접근제어 #클래스와 객체
    Dec 31, 2023
    접근 제어자

    1. 접근제어자란?

    • 접근 제어(access control)는 객체 지향 프로그래밍에서 클래스의 멤버(변수, 메서드)에
    대한 외부로부터의 접근을 제어하는 개념이다. (객체 지향 프로그래밍의 핵심적인 부분이다.)
    • 즉, 클래스, 멤버 변수, 메서드 등의 접근 가능성을 제어하는 것.
    • 접근 제어자를 사용하여 클래스의 멤버 변수와 메서드의 접근 범위를 제어할 수 있다.
    • 이를 통해 캡슐화를 구현하고, 외부에서 직접 접근하지 못하도록 보호 (정보은닉) 할 수 있다
    • 코드의 유지 보수성과 재사용성을 향상시킬 수 있음
     
    이러한 접근 제어 지시자를 통해 클래스의 멤버에 대한 접근을 제한함으로써 정보 은닉, 캡슐화, 보안 등의 프로그래밍 원칙을 지키고 안정성을 확보할 수 있다.

    2. 접근제어자의 종류

    notion image
     

    [접근제어자 4가지 종류]

    2-1. public (공개)

    공용이라는 의미로 public 을 멤버 앞에 붙이면 누구나 자유롭게 접근 할 수 있다.
    어떤 클래스에서든 접근할 가능하고 클래스 외부에서도 접근 가능하며,
    다른 패키지에서도 접근 가능하다.
    public class Example { public int publicVariable; public void publicMethod() { // 메서드 내용 } }
     

    2-2. private (비공개)

    전용이라는 의미로 private 를 붙이면 클래스 안에서만 접근이 가능한 멤버가 된다.
    동일한 클래스 내에서만 접근할 수 있고 다른 클래스에서는 접근할 수 없다.
    public class Example { private int privateVariable; private void privateMethod() { // 메서드 내용 } }
    💡
    주민등록번호와 같은 민감한 정보들에게 private를 사용한다.
    접근 제어자
    해당 클래스 안
    패키지
    자식 클래스
    전체
    public
    O
    O
    O
    O
    protected
    O
    O
    O
    X
    없음 (default)
    O
    O
    X
    X
    private
    O
    X
    X
    X
    ㅤ
    ㅤ
    ㅤ
    ㅤ
    ㅤ
     

    2-3. protected (보호)

    protected 붙이면 멤버는 부모 클래스와 자식 클래스만이 접근할 수 있다.
    같은 패키지 내에서는 접근할 수 있으며, 상속 관계 접근 가능
    💡
    하위 클래스에서 접근 가능 = 상속 관계에 있는 클래스들 사이에서의 접근 가능성
    public class Example { protected int protectedVariable; protected void protectedMethod() { // 메서드 내용 } }
     

    2-4. default (아무 지정 없음)

    해당 패키지 내에서만 접근할 수 있습니다.
    접근 제어 지시자를 명시하지 않으면 기본(default)으로 설정된다.
    패키지는 서로 관련된 클래스들은 하나로 묶은 것이다.
    class Example { int defaultVariable; void defaultMethod() { // 메서드 내용 } }

     
    💡
    필드는 특별한 이유가 있는게 아니면 무조건 private (상수를 제외하고는 필드에 public 사용 XXX)
     
    Share article

    Coding_study

    RSS·Powered by Inblog