为了账号安全,请及时绑定邮箱和手机立即绑定

谁能为我解答一下谢谢,基础不好

54c45c310001c59805000354.jpg问题也在图片上

正在回答

2 回答

      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;

                                        }

                             }

                   }


0 回复 有任何疑惑可以回复我~

students应该是一个集合,调用get()方法返回的是一个Student类型的对象,st是对这个对象的引用,可以认为是保存着这个对象的地址,st==null意味着st是一个空的引用。

跟c的指针是一样的,指针本身保存的内存地址,指针的类型说明它所指向的对象的类型。

0 回复 有任何疑惑可以回复我~
#1

Vleyong 提问者

是不是只要是引用 都保存的是对象的地址?还有引用的格式是不是:类型 引用名=集合.方法名() 这种形式?
2015-01-25 回复 有任何疑惑可以回复我~
#2

仗剑闯江湖 回复 Vleyong 提问者

引用保存的对象的地址。 引用没有什么格式,当你把一个对象赋值给变量的时候,并不是把对象本身给这个变量,而是这个对象的地址。 在你这图片里Student newStudent=new Student(ID,name);这个语句new Student(ID,name)是创建一个对象,然后赋值给Student类型的变量newStudent。
2015-01-25 回复 有任何疑惑可以回复我~
#3

Vleyong 提问者 回复 仗剑闯江湖

后者的创建对象并赋值,赋的是Student里面的参数值吧?应该不是地址吧
2015-01-26 回复 有任何疑惑可以回复我~
#4

仗剑闯江湖 回复 Vleyong 提问者

一个对象有一堆属性和一堆方法,你说赋哪个?而且对象的属性还会变来变去,唯一不变的只有对象的地址,你拿到这个地址,想做什么操作或者取哪个属性,直接到那个地址去找就OK了。
2015-01-26 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

谁能为我解答一下谢谢,基础不好

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信