问题也在图片上
public void AddTest(){
for(int i=0;i<3;i=i){
String ID=JOptionPane.showInputDialog("输入学生id"); //我用的是对话框输出,作用一样的
Student stu=students.get(ID); //这里get(ID)是获得"K(ID)"所对应的"V"
if(stu==null){ //stu在此代表的并不是"K(ID)",而是"V"
String name=JOptionPane.showInputDialog("输入学生姓名");
stu=new Student(ID, name); //在此我没创建新对象还是用的stu
students.put(ID, stu); //把ID与stu赋予联系,是他俩存在映射
System.out.println("添加学生:"+students.get(ID).name);
i++;
}else{
System.out.println("该ID被占用");
continue;
}
}
}
students应该是一个集合,调用get()方法返回的是一个Student类型的对象,st是对这个对象的引用,可以认为是保存着这个对象的地址,st==null意味着st是一个空的引用。
跟c的指针是一样的,指针本身保存的内存地址,指针的类型说明它所指向的对象的类型。