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

有几点不是很理解 希望有大佬解惑

1.为什么要初始化属性students 属性不是应该赋值吗  this.students=new ArrayList<String,Student>(); 有什么用  为什么这么用  是什么意思

2.public Map<String,Student>students;  声明属性我懂 为什么用Map类型  不是说Map是接口吗  不应该是int char string  这种类型吗

3.Student st=students.get(ID);   为什么属性.get()  可以调用get方法  不应该是对象名.get 或者类名.get吗

不知道我是不是知识点没记住 但我好像没忘记什么啊  但就是想不通

正在回答

3 回答

  1. this.students=new ArrayList<String,Student>();这一步就是为属性赋值的操作,因为map是一个类,它声明的是一个对象的引用,这一步:new ArrayList就是将一个对象实例化,然后将对象的地址赋值给students这个对象的引用上的。然后我们通常把这一步操作叫做利用构造器为属性初始化

  2. map声明的是对象的引用,并不是用map去实例化一个对象,我们知道多态是可以利用父类来声明对象的引用从而指向子类实例化的对象的,这里就是通过接口声明了一个map对象的引用,然后用它指向一个实现了map对象的子类的对象

  3. 虽然这里的students是一个属性,但是他是一个保存着对象地址的属性,所以用它:students。get()方法实际上是用它所指向的那个对象进行get()方法。

  4. 以上就是我的理解,可能有些说的不够透彻。不过如果有问题或者有更好的理解可以及时回复,大家共同进步。

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

因为Map是接口,所以不能实例化 ,只能实例化HashMap;

因为students的类型是Map,Map里面 有get方法,所以可以students.get();

个人观点。。

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

Map的映射,key-value,==>String-Student

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

认真的小萌新 提问者

这个泛型我懂 只是为什么要用Map来定义属性 不应该使用类 来定义吗
2018-08-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有几点不是很理解 希望有大佬解惑

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