集合2-8编程问题
import java.util.List;
import java.util.ArrayList;
public class EmployeeTest {
public static void main(String[] args) {
//定义ArrayList对象
Employee em1=new Employee(1,"张三",5000);
Employee em2=new Employee(2,"李四",5500);
Employee em3=new Employee(3,"赵六",4000);
List list=new ArrayList();
list.add(em1);
list.add(em2);
list.add(em3);
System.out.println("员工姓名"+" "+"员工薪资");
for(int i=0;i<list.size();i++){
System.out.println(((Employee)(list.get(i))).getName()+"\t"+((Employee)(list.get(i))).getSalary());
}
//创建三个Employee类的对象
//添加员工信息到ArrayList中
//显示员工的姓名和薪资
}
}
老师,代码打完了,运行上没有什么问题。但是,我对这步:
System.out.println(((Employee)(list.get(i))).getName()+"\t"+((Employee)(list.get(i))).getSalary());
里的强转一点都不明白,我完全是根据之前的课程照猫画虎硬记下来这么打的的。这不行,过两天肯定就忘了,因为根本不理解。老师,为什么不能写成list.get(i).getName()这种形式,我不懂啊。。。。。好头疼
正在回答 回答被采纳积分+1
同学你好,
1、这里说List list=new ArrayList();创建的list对象没指定具体类型,是指得是list集合中对象的类型,没有显式的指定。在Java中规定,如果直接创建List list=new ArrayList();则默认list中的集合对象为Object类型。而在案例中,我们需要在集合中存放Employee类型的对象,所以这理需要强转。
2、为什么调用get(i)方法后,得到的是Object类的对象的问题:
我们可以在Eclipse将鼠标移到这个方法处,我们可以看到它返回的类型为Object类型哦~另外同学也可以这样想:由于直接创建List list=new ArrayList();则默认list中的集合对象为Object类型。所以当我们获取集合中的元素时,它的类型也就是Object类型了。
具体如图:
同学也可以回顾一下,老师在“2-7案例:公告的添加和显示”中的10分20秒左右也有讲到哦~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星