如下源程序:
import java.io.*;
import java.util.Vector;public class ListOfNumbers {
PrintWriter out;
private Vector<Integer> vectors;
private static final int SIZE = 10;
public static void main(String[] args) {
new ListOfNumbers().writeList();
}
public ListOfNumbers () {
vectors = new Vector<Integer>(SIZE);
for (int i = 0; i < SIZE; i++) {
vectors.addElement(new Integer(i));
}
} public void writeList() {
try {
out = new PrintWriter(
new FileWriter("OutFile.txt"));
} catch(IOException e) {
e.printStackTrace();
} for (int i = 0; i < SIZE; i++) {
out.println("Value at: " + i + " = " +
vectors.elementAt(i));
} out.close();
}
}为什么讲第五行的语句 PrintWeiter out; 放在方法writeList()里面的首行进行编译时会说out引用没有被初始化呢?它不是在接下来的try语句中被初始化了吗?谢谢!
import java.io.*;
import java.util.Vector;public class ListOfNumbers {
PrintWriter out;
private Vector<Integer> vectors;
private static final int SIZE = 10;
public static void main(String[] args) {
new ListOfNumbers().writeList();
}
public ListOfNumbers () {
vectors = new Vector<Integer>(SIZE);
for (int i = 0; i < SIZE; i++) {
vectors.addElement(new Integer(i));
}
} public void writeList() {
try {
out = new PrintWriter(
new FileWriter("OutFile.txt"));
} catch(IOException e) {
e.printStackTrace();
} for (int i = 0; i < SIZE; i++) {
out.println("Value at: " + i + " = " +
vectors.elementAt(i));
} out.close();
}
}为什么讲第五行的语句 PrintWeiter out; 放在方法writeList()里面的首行进行编译时会说out引用没有被初始化呢?它不是在接下来的try语句中被初始化了吗?谢谢!
LZ可以直接写PrintWriter out = new PrintWriter(
new FileWriter("OutFile.txt"));
反正你其他地方不用out
成员变量之所以没错是因为成员变量自动赋了初始值null