JAVA

Java 접근 제어자 완벽 가이드: 초보자도 쉽게 이해하는 접근 제한의 모든 것

CodeCaine Explorer 2024. 12. 18. 19:43
728x90
반응형
SMALL

안녕하세요! 😊
Java의 접근 제어자(access modifiers)에 대해 알아볼 거예요. 처음 들어보면 어려울 수 있지만, 차근차근 배우면 정말 쉬운 개념이랍니다. 끝까지 읽으시면 코드 작성이 훨씬 자신있어질 거예요! 💪


접근 제어자란 무엇인가요?

Java에서 접근 제어자는 클래스, 메서드, 변수다른 코드에서 접근 가능한 범위를 정하는 역할을 해요.
쉽게 말해, "누가 나에게 접근할 수 있을까?"를 정하는 규칙입니다. 🤔

Java에는 4가지 접근 제어자가 있어요:

  1. public
    • 누구나 접근할 수 있어요! (가장 개방적)
    • 👉 예: 전 세계에 공개된 블로그 글처럼 누구든지 볼 수 있는 상태
  2. private
    • 같은 클래스 내에서만 접근 가능해요.
    • 👉 예: 일기장처럼 내가 적은 글은 나만 볼 수 있음
  3. protected
    • 같은 패키지와 상속받은 클래스에서만 접근 가능해요.
    • 👉 예: 가족 사진첩처럼 가족(상속받은 클래스)과 같은 집에 사는 사람(같은 패키지)만 볼 수 있음
  4. (default)
    • 접근 제어자를 지정하지 않으면 자동으로 적용돼요.
    • 같은 패키지 내에서만 접근 가능해요.
    • 👉 예: 친구들만 공유하는 SNS 게시글

간단한 예시 코드 🌟

다음은 접근 제어자의 동작을 보여주는 코드입니다. 주석을 통해 이해를 도와드릴게요!

// 파일명: AccessModifierExample.java
class Person {
    // private 접근 제어자: 같은 클래스 내에서만 접근 가능
    private String name = "John Doe";

    // public 접근 제어자: 어디서든 접근 가능
    public void printName() {
        System.out.println("Name: " + name);
    }

    // protected 접근 제어자: 같은 패키지와 상속받은 클래스에서 접근 가능
    protected void setName(String newName) {
        name = newName;
    }

    // default 접근 제어자: 같은 패키지에서 접근 가능
    void displayGreeting() {
        System.out.println("Hello, welcome to Java world!");
    }
}

// 다른 클래스에서 Person 객체를 사용하는 예제
public class AccessModifierExample {
    public static void main(String[] args) {
        Person person = new Person();

        // public 메서드 호출: 어디서든 접근 가능
        person.printName(); // 출력: Name: John Doe

        // protected 메서드는 직접 호출 불가 (다른 패키지에 있다면 오류 발생)
        // person.setName("Alice"); // 이 코드는 오류 발생 가능

        // default 메서드는 같은 패키지라면 호출 가능
        person.displayGreeting(); // 출력: Hello, welcome to Java world!
    }
}

코드 동작 설명 🛠️

  1. Person 클래스는 4가지 접근 제어자를 사용하는 메서드와 변수를 가지고 있어요.
    • nameprivate이어서 같은 클래스에서만 사용할 수 있답니다.
    • printName()public이어서 어디서든 호출 가능해요.
  2. main 메서드에서 Person 객체를 생성한 뒤,
    • printName()을 호출해 이름을 출력합니다.
    • displayGreeting()default 접근 제어자라 같은 패키지 내에서 호출할 수 있어요.

이해가 어렵다면? 😅

처음에는 "protected와 default의 차이가 뭐지?" 같은 헷갈림이 생길 수 있어요. 하지만 걱정하지 마세요!
🔑 팁: 실제로 코드를 작성하면서 접근 가능한 범위를 하나씩 테스트해 보세요. 손으로 직접 코드를 실행하면 더 쉽게 이해할 수 있답니다. 🚀


왜 중요할까요?

접근 제어자는 코드의 보안과 유지보수성을 높이는 데 필수적이에요.
예를 들어, 중요한 데이터를 private으로 설정하면, 외부에서 잘못된 접근을 막을 수 있죠! 💡


오늘도 함께 학습하느라 수고 많으셨어요! 😊
조금 어렵게 느껴질 수 있지만, 이렇게 작은 개념 하나하나가 모여 실무에서 강력한 코드를 작성할 수 있게 도와준답니다.

궁금한 점이 있다면 언제든 물어보세요. 여러분의 Java 여정을 항상 응원합니다! ❤️

반응형
SMALL