문제
Java에서 A 클래스의 생성자 이름과, 과거에 소멸자와 유사한 역할로 설명되었던 메소드 이름의 조합으로 가장 적절한 것은?
① 생성자: A, 소멸자: finalize ② 생성자: init, 소멸자: delete ③ 생성자: A, 소멸자: destructor ④ 생성자: newA, 소멸자: destroy
정답
1번
해설
정답: 1. Java의 생성자 이름은 클래스명과 같아야 하므로 A 클래스의 생성자는 A이다. Java에는 C++와 같은 명시적 소멸자가 존재하지 않지만, 과거에는 finalize 메소드가 소멸자와 유사한 역할로 설명되었다.
오답 풀이
- 1번: 생성자 이름은 클래스명 A와 같으며, finalize는 과거 소멸자 유사 메소드로 설명되었다.
- 2번: init과 delete는 Java의 생성자·소멸자 이름이 아니다.
- 3번: destructor는 Java의 소멸자 메소드 이름이 아니다.
- 4번: newA와 destroy는 Java의 생성자·소멸자 이름이 아니다.
보충 개념 Java는 명시적인 소멸자를 따로 두지 않으며, 객체 메모리는 가비지 컬렉터가 자동으로 회수한다.