}
答 案 :
正确。输出的是 "i = 0"
。int i
属於 instant variable ( 实例变量,或叫成员变量
)
。 instant variable
有 default value
。 int
的 default value
是 0
。
7.下面代码有什么错误
class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
答 案 :
final int i
是个 final
的 instant variable (
实例变量,或叫成员变量 )
。 final 的
instant variable
没有 default value
,必须在 constructor (
构造器 ) 结束之前被赋予
一个明确的值。可以修改为 "final int i = 0;"
。
8.下面代码有什么错误
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
答 案 :
错。看上去在 main
里 call doSomething
没有什么问题,毕竟两个 methods 都在同一
个 class
里。但仔细看, main
是 static
的。 static method
不能直接 call non-static
methods
。 可 改 成
"System.out.println("s.doSomething() returns " +
s.doSomething());"
。同理, static method
不能访问 non-static instant variable
。
9.
此处, Something
类的文件名叫 OtherThing.java
里面的代码,如下: