2012-12-13 2 views
0

가능한 중복 :
Java default constructorJava 기본 생성자 문제 - 실제로 '기본 생성자'를 구성하는 것은 무엇입니까?

내가 자바 연습 문제 일하고이 건너 온 :

을 감안할 때 : 클래스는 기본을 가지고

class X {} 

class Y {Y() {}} 

class Z {z(int i) {} } 

을 건설자?

A. X 만

B. Y 만

C. Z 만

D. X 및 Y

E. Y 및 Z

,

F. X와 Z

G. X, Y 및 Z

내가 클래스 X가 유일한 클래스가 어떤 명시 적으로 정의 된 생성자 않고 있기 때문에 정답이하는 일 것이라고 말할 것입니다

. 내 생성자는 기본 생성자를 구성하는 것이 실제로 생성자 본문 내에서 값을 변경하기 때문에 G가 될 것이라고 말합니다.

우리는 몇 가지 조사를 수행했으며 기본 생성자가 실제로이 레벨에서 무엇인지에 관해서는 답변이 다른 것처럼 보입니다.

누구나 답변을 제공 할 수 있습니까? 고맙습니다.

+5

가인가를 사용하는 것이 소원'Z Z는 (I를 INT)'(I에게 INT)'또는' –

답변

9

내 생성자는 G가 될 것이라고 말합니다. 기본 생성자를 구성하는 것이 실제로 생성자 본문 내에서 값을 변경하기 때문입니다.

여기 언어 수준에서 동료가 잘못되었다고합니다. Section 8.8.9 of the JLS은 "기본 생성자"는 "생성자가 명시 적으로 지정되지 않은 경우 컴파일러에서 제공하는 생성자"를 의미합니다. 나는이 더 명시 적으로 철자했다하고자

- 나는 또한 C 번호가 같은 용어 :(

+2

+1' Z'는'z'가'Z'로 읽혀지지 않으면 컴파일되지 않습니다 –

+0

고맙습니다 - 또한 대답 키는 G라고 대답합니다. 이것은 대답 키가 잘못되었음을 의미합니다 http://en.wikipedia.org/wiki/Default_constructor –

+0

@EricT : 네, 그건 틀 렸습니다. –