[java] 리플렉션과 접근제어자

이번에는 자바 프로그래밍에서 중요한 주제인 리플렉션(Reflection)접근제어자(Access Modifier)에 대해 알아보겠습니다.

리플렉션(Reflection)

리플렉션은 실행 중인 자바 애플리케이션 내부의 클래스와 인터페이스 등을 검사하거나 사용할 수 있는 기능을 말합니다. 리플렉션을 통해 클래스의 필드, 메서드, 생성자 등에 접근하고 조작할 수 있습니다.

주로 다음과 같은 상황에서 활용됩니다.

public class Example {
    public String name;

    private void printName() {
        System.out.println(name);
    }
}

위 예제의 Example 클래스에서 리플렉션을 이용해 name 필드와 printName 메서드에 접근할 수 있습니다.

접근제어자(Access Modifier)

자바에서는 접근제어자를 통해 클래스, 필드, 메서드, 생성자 등의 접근 범위를 제한합니다. 주요 접근제어자로는 public, protected, default, private가 있습니다.

public class Example {
    public String publicField;
    protected String protectedField;
    String defaultField;
    private String privateField;
}

위 코드 예시에서 publicField는 외부에서 접근 가능하고, privateField는 해당 클래스 내부에서만 접근 가능합니다.

정리하면, 리플렉션은 런타임에 클래스의 정보를 동적으로 다루는 데 활용되며, 접근제어자는 클래스 멤버들의 접근 권한을 조절합니다. 올바르게 활용하면 안정적이고 유연한 자바 프로그래밍을 할 수 있습니다.