很简单的集合框架问题
/*
  * 功能:演示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位置上的对象。