日期:2014-05-20  浏览次数:20644 次

很简单的集合框架问题
/*
 * 功能:演示java集合的用法
  */
package com.test1;
//用java集合时,先要引入 java.util.*;包
import java.util.*;

public class Demo6_6 {

public static void main(String[] args) {
// TODO Auto-generated method stub

//定义一个ArrayList对象
ArrayList al=new ArrayList();
//创建一个员工对象
Clerk clerk1=new Clerk("宋江",50,1000);
//将clerk1加入到al中
al.add(clerk1);
//继续创建一个员工对象
Clerk clerk2=new Clerk("吴用",30,1500);
al.add(clerk2);
//如何访问al中对象
//访问第一个对象

Clerk temp =(Clerk)al.get(0);
System.out.println(temp.getName());


}

}
//定义一个员工类
class Clerk
{
//构建员工的构造方法
private String name;
private int age;
private float salary;
public Clerk(String name,int age,float sal)
{
this.name=name;
this.age=age;
this.salary=sal;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}

}

我不明白的是这一句:
  Clerk temp =(Clerk)al.get(0);
Clerk temp代表的是什么意思,为何Clerk temp可以接收arrayList返回的对象呢
而这一句中System.out.println(temp.getName()); 的temp为何又能调用getName方法
希望有明白的老师帮我解答下,这个问题没什么技术含量,但是困扰我很久了,求帮忙




------解决方案--------------------
哦,是这个问题啊。这个temp 叫引用,作用就是用来标示对象的。
Clerk temp = new Clerk();这种写法的意义,是创建一个Clerk对象,然后 temp引用指向改对象。
如果有对象
Clerk live = new Clerk();
temp = live;
temp 指向 live 指向的对象。
上面的意思就是 temp 指向al在 index = 0位置上的对象。