SCJP模拟题 about Default Constructor

Patrick_DK 2002-02-03 10:47:53
125. Which two statements are true regarding the creation of a default constructor? (Choose Two)
A. The default constructor initializes method variables.
B. The default constructor invokes the no-parameter constructor of the superclass.
C. The default constructor initializes the instance variables declared in the class.
D. If a class lacks a no-parameter constructor, but has other constructors, the compiler creates a default constructor.
E. The compiler creates a default constructor only when there are no other constructors for the class.

我选择B。E.

答案确是C.E.

我认为答案错了,不敢确定,来请教一下大家
...全文
177 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bandiadog 2002-02-04
  • 打赏
  • 举报
回复
关注
cherami 2002-02-04
  • 打赏
  • 举报
回复
to pensincun(天高任彭翔):
如果default constructor 是JVM在编译时由系统自动提供的,那么我对答案B的不正确持反对态度,能给一个它不正确的理由吗?
pensincun 2002-02-04
  • 打赏
  • 举报
回复
正确答案是C、E!!!
cherami(cherami)解释的很详细。有一点,我纠正一下
即自己定义的无参的构造方法也可以称为default constructor 的话
————————这个不能称之为default constructor !!!default constructor 是JVM在编译时由系统自动提供的!!!
Patrick_DK 2002-02-03
  • 打赏
  • 举报
回复
My QQ:1359620
Patrick_DK 2002-02-03
  • 打赏
  • 举报
回复
to cherami:

帮我看看

http://www.csdn.net/expert/topic/516/516609.shtm
cherami 2002-02-03
  • 打赏
  • 举报
回复
所以说啊,要考SCJP,最好看英文原版的SL275.:)
cherami 2002-02-03
  • 打赏
  • 举报
回复
还记得构造方法的构造顺序吗?
class X
{
Object o=new Object();//这个?
}
编译后实际是:
class X
{
Object o;
public X() {
o=new Object()
}
}
它的初始化就是指这个。
Patrick_DK 2002-02-03
  • 打赏
  • 举报
回复
我看是在考英文,NND
cherami 2002-02-03
  • 打赏
  • 举报
回复
但是如果二者的概念没有区分的话:即自己定义的无参的构造方法也可以称为default constructor 的话,那么B就是错误的,它可以调用父类的其它构造方法(如果有的话),但是C和E的结论依然正确。因此这个题目很难确定什么是正确答案,除非找到那两个概念的明确而权威的定义。SCJP很大程度上考的就是概念!
Patrick_DK 2002-02-03
  • 打赏
  • 举报
回复
The default constructor initializes the instance variables declared in the class

我对C有疑问,这个instance variables declared in the class究竟是指
class X
{
Object o;//这个?
}
还是指
X x=new X();//这个?
cherami 2002-02-03
  • 打赏
  • 举报
回复
这个问题有两个关键性的概念需要明确!
default constructor 和no-parameter constructor 。
从文中来看,这两个概念是不同的,我们可以做一下假定:
default constructor是在没有声明构造方法是编译器为我们生成的那个构造方法,而no-parameter constructor是我们自己声明的没有参数的构造方法,在形式上二者是一样的,但是SUN是否区分这二者的区别还不清楚。在很大程度上,这二者是没有区分的,最明显的就体现在B的叙述上,个人认为这句话没有错误,当然C也没有错误,E也是正确的。
Patrick_DK 2002-02-03
  • 打赏
  • 举报
回复
to panq() 

怎么可能会没有父类呢?总是默认extends Object的嘛



哦,对了,Object应该没有父类
hailong326 2002-02-03
  • 打赏
  • 举报
回复
ce 没错
我考过的
panq 2002-02-03
  • 打赏
  • 举报
回复
如果没有父类,B就是错的.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧