在Java中虽然没有了指针,但是个人觉得其实它还是有的,只不过是Java帮用户处理了,比如说this就是一个很好的实例。Java中对象同样也用到指针。前段时间在写一个程序时,其中有一段就需要不断的应用同样的对象,当时没注意到一个实例对象实际上保存的是一个内存地址,导致将多个对象添加到一个ArrayList中后,得到的结果全是最后添加的一个对象。弄了N久也不知道是怎么回事,最后请教了高手才知道,原来就是因为指针的问题。由于对象保存的是内存地址,所以没用一次对象,就必须新new一个对象,否则应用的都是同一个内存地址上的对象。对于初学者很重要啊,《Think in Java》也是一本相当不错的书,解决了很多初学者的疑惑。
下面是自己弄的一段程序代码:
package StudentsInformation;
import java.io.*;
/**
* 从文件中录入数据
* @author Jhat
* @date 2010-4-25 下午11:50:08
*/
public class AddInf {
Chain c=new Chain();
public Chain readfile() {
String[] rd = new String[100];
int i = 0;
try {
FileReader filepath = new FileReader(
"F:/MyProgram/Java/ClassManagement/StudentsInformation/add.txt");
BufferedReader bf = new BufferedReader(filepath);
rd[0] = bf.readLine();
while (rd[i] != null) {
i++;
rd[i] = bf.readLine();
}
filepath.close();
bf.close();
for( int j = 0; j < i; j++) {
Person per = new Person(); //这里相当重要
String[] inf = rd[j].split(" ");
per.name = inf[0];
per.sex = inf[1];
per.age = inf[2];
per.ID = inf[3];
per.phone = inf[4];
c.Add(per);
}
System.out.println("add ok!");
} catch(IOException e) {
e.printStackTrace();
}
return c;
}
}