Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바 생성자(Java Constructor) 면접 질문 총정리

들어가며

자바(Java) 면접에서는 기본 개념이 명확하지 않으면 예상치 못한 곳에서 막히기 쉽습니다. 따라서 자바 클래스, 메서드, 인터페이스, 상속 등 객체지향 프로그래밍(OOP)의 핵심 개념과 동작 원리를 철저히 이해해 두는 것이 중요합니다. 특히 생성자(Constructor)는 객체 생성의 출발점이 되는 요소로, 면접에서 단골로 다뤄지는 주제입니다.

아래는 자바 생성자와 관련해 자주 등장하는 대표적인 면접 질문들을 정리한 목록입니다. 각 질문에 스스로 답해 보면서 개념을 점검해 보세요.

생성자 기본 개념 질문

  • 상위 클래스(슈퍼 클래스)의 생성자를 사용하여 하위 클래스(서브 클래스)의 생성자를 호출할 수 있나요?
  • new 연산자를 사용하지 않고 객체를 생성하려면 어떻게 해야 하나요?
  • 클래스를 정의할 때 반드시 생성자를 정의해야 하나요?
  • 매개변수가 있는 생성자(Parameterized Constructor)란 무엇이며, 명시적으로 정의할 수 있나요?
  • 기본 생성자(Default Constructor)와 매개변수가 있는 생성자를 동시에 가질 수 있나요?

생성자 정의 규칙 관련 질문

  • 자바에서 생성자를 정의할 때 지켜야 할 규칙 몇 가지를 나열해 보세요.
  • 생성자에 반환 타입(return type)을 지정할 수 있나요? 가능하거나 불가능한 이유는 무엇인가요?
  • 생성자에 반환 타입을 붙이면 컴파일 타임 에러가 발생하나요? 아니면 단순 경고만 표시되나요?

this와 super의 활용

  • 일반 메서드 내부에서 this() 함수와 super() 함수를 사용할 수 있나요?
  • 상위 클래스 생성자 호출은 어떤 순서와 방식으로 이루어지나요?

접근 제어자와 생성자

  • 생성자를 private으로 선언할 수 있나요? 선언한다면 어떤 상황에서 유용한가요?
  • protected 생성자라는 것도 존재하나요?

오버로딩과 특수한 형태의 생성자

  • 생성자 오버로딩(Constructor Overloading)이 가능한가요? 가능하다면 왜 필요할까요?
  • 자바에는 정적(static) 생성자가 있나요?
  • final 생성자를 만들 수 있나요?

마무리

위 질문들은 단순 암기를 넘어, 생성자의 동작 원리와 객체지향 설계에 대한 이해를 확인하기 위한 것입니다. 각 질문에 대한 답을 코드로 직접 작성해 보면서 검증하면 면접 대비에 큰 도움이 됩니다. 특히 private 생성자와 싱글턴 패턴, 생성자 오버로딩과 빌더 패턴처럼 실무와 연결되는 사례까지 함께 학습해 두는 것을 추천합니다.