http://www.verejava.com/?id=16992784958543
/**
知识点: 对象数组
1. 对象数组的使用
2. 对象数组的foreach 增强for循环
3. 可变参数
题目:乘客一次只能带2个箱子免费上飞机
思路:
1. 抽象出类 乘客(Customer) , 箱子(Box)
2. 乘客和箱子的关系 1对2的关系 Box->Customer
*/
public class ObjectArray
{
public static void main(String[] args)
{
//实例化一个乘客
Customer c=new Customer("黎明");
//实例化两个箱子一个装衣服, 一个装书
Box clothBox=new Box("装衣服");
clothBox.setId(1);
clothBox.setWeight(20);
Box bookBox=new Box("装书");
bookBox.setId(2);
bookBox.setWeight(30);
//将箱子添加到乘客
c.addBox(clothBox);
c.addBox(bookBox);
//打印该乘客的信息
System.out.println("乘客姓名: "+c.getName());
System.out.println("箱子编号, 箱子重量, 箱子描述");
Box[] boxes=c.getBoxes();
for(Box box:boxes)
{
System.out.println(box.getId()+","+box.getWeight()+","+box.getDescription());
}
//测试可变参数
Box[] boxes2={clothBox,bookBox};
c.setBoxes();//不传参数
c.setBoxes(clothBox);//传一个参数
c.setBoxes(boxes2);//传一个数组
boxes=c.getBoxes();
for(Box box:boxes)
{
System.out.println(box.getId()+","+box.getWeight()+","+box.getDescription());
}
}
}
class Customer
{
private String name;//乘客名字
private Box[] boxes=new Box[2];//箱子属于乘客, 添加箱子引用
public Customer(String name)
{
this.name=name;
}
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name=name;
}
public Box[] getBoxes()
{
return this.boxes;
}
/**
乘客携带添加的箱子
返回值: 如果添加成功返回true 否则false
*/
public boolean addBox(Box box)
{
for(int i=0;i<boxes.length;i++)
{
if(boxes[i]==null)
{
boxes[i]=box;
return true;
}
}
return false;
}
public void setBoxes(Box ...boxes)
{
this.boxes=boxes;
}
}
class Box
{
private float weight;//箱子的重量
private int id;//箱子的编号
private String description;//描述
public Box(String description)
{
this.description=description;
}
public String getDescription()
{
return this.description;
}
public void setDescription(String description)
{
this.description=description;
}
public int getId()
{
return this.id;
}
public void setId(int id)
{
this.id=id;
}
public float getWeight()
{
return this.weight;
}
public void setWeight(float weight)
{
this.weight=weight;
}
}
http://www.verejava.com/?id=16992784958543