본문 바로가기
Study/JAVA

생성자에서 메서드를 사용할 수 있는 이유

by 나아가는 2025. 3. 6.
반응형

객체가 생성 되기 전에 해당 인스턴스의 메서드를 사용할 수 있다는 것에 의문이 들었다.

결론은 객체가 생성되는 과정에서 생성자 실행 중에도 인스턴스 메서드를 호출할 수 있다.!

 

왜 가능한지?

- 생성자가 실행 될 때, 객체는 이미 메모리에 할당되어 있다.

- 다만 객체의 초기화 과정이 진행중일 뿐이다.

- 생성자가 실행되는 동안 해당 객체의 this 참조는 이미 존재하기 때문에 같은 인스턴스의 매서드를 호출 할 수 있다.

public class Example {
    private final String value;

    public Example() {
        this.value = "initialized";
        processValue(); // 호출 가능
    }

    private void processValue() {
        System.out.println("Value: " + value);
    }
}

 

 

주의할 점

- 초기화 되지 않은 필드를 사용하는 메서드는 호출하지 않도록 주의해야한다.

public class Example {
    private final String value;

    public Example() {
        processValue(); // 여기서 value를 사용하면 초기화되지 않은 상태!
        this.value = "initialized";
    }

    private void processValue() {
        System.out.println("Value: " + value); // null 출력됨
    }
}

 

반응형