접근 제한자 (Access Modifiers)
자바에서는 클래스, 변수, 메서드에 접근을 제어하기 위해 접근 제한자를 사용한다.
접근 제한자는 코드의 접근 범위를 제한하여 캡슐화를 강화하고,
코드의 가독성과 유지 보수성을 높인다.
주요 접근 제한자로는 public, protected, default, private가 있다.
public
일반적으로 외부에서 접근이 필요한 메서드나 변수에 사용된다.
접근 범위: 모든 클래스에서 접근 가능
protected
상속관계에서 하위 클래스가 부모 클래스의 멤버에 접근해야 할 때 사용된다.
접근 범위: 같은 패키지 내의 클래스 또는 상속 관계에 있는 클래스에서 접근 가능
default
명시적 선언이 없다면 default로 취급된다.
접근 범위: 같은 패키지 내의 클래스에서만 접근 가능
private
클래스 내부에서만 사용되는 변수나 메서드에 사용된다.
접근 범위: 같은 클래스 내에서만 접근 가능
초기화 블럭(Initialization Blocks)
자바에서는 객체 초기화를 위해 생성자 외에도 초기화 블럭을 사용할 수 있다.
- 인스턴스 초기화 블럭
- static 초기화 블럭
인스턴스 초기화 블럭
인스턴스 초기화 블럭은 객체가 생성될 때마다 실행된다.
생성자 호출 전에 실행되며,
여러 생성자에서 공통으로 초기화해야 할 코드가 있을 때 유용하다.
public class MyClass { { // 인스턴스 초기화 블럭 } }
static 초기화 블럭
static 초기화 블럭은 클래스가 처음 로드될 때 한 번만 실행됩니다.
외부 클래스에는 static을 붙일 수 없다.
주로 static 변수의 초기화에 사용됩니다.
public class MyClass { public static int staticVar; static { staticVar = 10; System.out.println("static 블록 실행"); } }
정리
접근 제한자를 사용하여, 객체의 필드와 메소드에 대한 접근을 제어하고, 초기화 블럭을 활용해, 객체 생성 시점에 필드의 초기 값을 설정하거나 복잡한 초기화 작업을 수행할 수 있다.