【发布时间】:2015-06-22 18:49:44
【问题描述】:
我对输出有点困惑。
这是第一个程序。
class A {
private int price;
private String name;
public int getPrice() {
return price;
}
public String getName() {
return name;
}
}
class B {
public static void main(String[] args) {
A a = new A();
System.out.println(a.getName());
System.out.println(a.getPrice());
}
}
这个程序编译没有错误。并且变量都有值。
输出 -
null
0
第二个节目是,
class B {
public void value() {
int x;
System.out.println(x);
}
}
这个程序甚至无法编译。
B.java:4: error: variable x might not have been initialized
问题是为什么这些变量表现不同?是什么原因。 这可能是一个非常简单的问题。但请解释一下。
谢谢。
【问题讨论】:
-
int 是一个原始值,而 String 是一个引用。
-
This answer 适用于 C#,但同样的想法适用于 Java:使用未初始化的本地可能是一个错误,而且很容易检测到;使用未初始化的成员也可能是一个错误,但很难检测到它不值得付出努力。
标签: java