Post

[JAVA Questions] 생성자 예상질문

자바 생성자에 대한 질문 정리

[JAVA Questions] 생성자 예상질문

1. 생성자를 왜 쓰는지?

객체가 생성될 때 초기 상태를 설정하기 위해 사용 필드 초기화를 자동화 하고, 객체 사용 전 필요한 값들을 설정할 수 있음.

2. 자바에서 생성자 오버로딩이 필요한 이유?

객체를 다양한 방식으로 초기화할 수 있도록 하기 위해

3. 생성자를 사용하지 않고 필드를 일일이 초기화하는 방식과 비교했을 때, 생성자의 장점?

필드를 직접 초기화하면 중복, 실수 가능성이 큼 생성자는 초기화 로직을 하나의 블록으로 모아 가독성과 유지보수성이 좋아짐

4. this() 키워드는 언제, 왜 사용하는 건가요? 생성자에서만 사용 가능한가요?

this는 같은 클래스의 다른 생성자를 호출할 때 사용하며 생성자 블록 안에서만 사용 가능

5. 생성자 안에서 this() 호출이 항상 첫 줄에 있어야 하는 이유는 무엇인가요?

어떤 생성자가 먼저 실행될지 불명확해 컴파일 오류가 발생할 수 있기 때문에

6. 기본 생성자는 언제 자동으로 만들어질까

클래스에 생성자가 없을 경우

7. 생성자에서 필드를 초기화하는 것과, 초기화 블록({})에서 초기화하는 것의 차이점은 무엇인가요?

생성자는 객체 생성 시 호출되는 메서드고, 초기화 블록은 모든 생성자보다 먼저 실행되어 공통 초기화 코드를 담을 수 있음.

8. 생성자를 오버로딩할 때 주의해야 할 점은 무엇인가요?

매개변수의 타입, 개수, 순서가 달라야 한다. 그렇지 않으면 컴파일러가 어떤 생성자를 호출해야 하는지 혼동

9. 아래 코드에서 발생하는 문제를 설명해보세요.

1
2
3
4
Book(String title, String author) {
    System.out.println("생성자 호출");
    this(title, author, 100); // 이 줄이 두 번째 줄에 위치
}
this는 생성자 블록의 첫줄에 사용하지 않으면 컴파일 오류가 발생하기 때문

10. 실무에서 생성자보다 정적 팩토리 메서드(static factory method)를 사용할 수 있는 상황은 언제인가요?

객체 생성시 이름을 부여하고 싶을 때, 캐싱, 불변 객체, 생성자 숨기기 등을 하고 싶은 경우

복습을 자주 하자.

This post is licensed under CC BY 4.0 by the author.

Trending Tags