我即将进行 Java 测试,这位 Java 教授试图与我发生争执,因为我说我知道我的东西。
这个具体问题引发了大声咒骂。
1. Suppose that c1 and c2 are reference variables of type Clock.
What is the effect of each of the following statements?
a. c1= new Clock();
Answer
a. It creates the object c1, and the instance variables hr, min,
and sec are initialized to 0.
我的答案是它使用默认或无参数构造函数实例化 Clock 对象。但是,不,他的答案是它将所有实例变量设置为 0。
我的问题是你会如何回答?我怎么知道变量在那里?我问我的教授,他回答说:“如果我发布代码,它就会有 3 页长。”他不能在第一行输入“int hr, min, sec; 吗?!
最佳答案
声明
c1 = new Clock();
使用其无参数构造函数创建 Clock 类的新实例,并将其分配给局部变量 c1。如果不知道 Clock 的实现或其无参数构造函数的实现,就无法知道构造时实例 c1 的内部状态是什么。成员变量可能已由构造函数或静态初始化设置。你的猜测和我的一样好。
我认为值得指出的是,在没有看到 Clock 的实现的情况下,您不知道 Clock() 是默认的无参数构造函数还是不带参数的已定义构造函数。
关于java - 回答这些评论问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28843025/