内容:
定义一个衣服(clothing)类,具有type(String)、color(String)、size(int)三种数据成员,一个带有三个参数的构造函数和一个toString()方法。
类型(type)如: shirt、overcoat等;
颜色(color)如: white、black、red等;
定义一个衣柜(wardrobe)类,具有
容器contents(Clothing数组)和容量capacity(int)两种数据成员;
其中capacity为符号常量,代表衣柜最多容纳的衣服数量。
put(Clothing clo)方法,实现把衣服放入wardrobe中。如果有空位,输出衣服信息以及衣服放入的位置;如果衣柜已经满了,提示信息“衣柜已满。”;
searchfor(String color)方法,实现根据衣服颜色查找符合条件的衣服。如果找到,将所有符合条件的衣服信息及在衣柜中的位置输出,如果没有找到,输出“未找到指定颜色的衣服。 ”
定义测试类,创建Wardrobe对象,实现Wardrobe类的方法。在测试类中从键盘输入查找的颜色,允许多次查找,直到输入0结束。
public class Clothing {
protected String type;
protected String color;
protected int size;
public Clothing(String type,String color,int size) {
this.type=type;
this.color=color;
this.size=size;
}
public String toString() {
return "类型:"+type+"\t 颜色:"+color+"\t尺寸:"+size;
}
}
public class Wardrobe {
Clothing[] contents;
final int CAPACITY=3;
public Wardrobe() {
contents=new Clothing[CAPACITY];
}
// 将一件衣服放入衣柜
public void put(Clothing cloth) {
int i,flag=0; // flag标识一件衣服是否已经成功放入衣柜,若成功,则置为1。
for(i=0;i<CAPACITY;i++) {
if(contents[i]==null) { // 判Clothing数组元素是否为空
contents[i]=cloth;
flag=1;
System.out.println(cloth.toString()+",已放入衣柜第"+(i+1)+"格。");
break;
}
}
if(flag==0)
System.out.println("衣柜已满");
}
// 输出衣柜放置状况
public void show() {
for(int i=0;i<contents.length;i++) {
System.out.println(contents[i]);
}
}
// 按颜色查找衣服并输出
public void searchfor(String color) {
int flag=0; // 标识是否找到符合条件的衣服
for(int i=0;i<contents.length;i++) {
if(color.equals(contents[i].color)) {
System.out.println(contents[i].toString()+",放在第"+(i+1)+"格。");
flag=1;
}
}
if(flag==0) {
System.out.println("未找到指定颜色的衣服。");
}
}
}
public class WardrobeTest {
public static void main(String[] args) {
Wardrobe war=new Wardrobe();
Clothing clo1=new Clothing("shirt","white",172);
Clothing clo2=new Clothing("shirt","black",175);
Clothing clo3=new Clothing("overcoat","white",172);
Clothing clo4=new Clothing("overcoat","black",175);
Clothing clo5=new Clothing("overcoat","red",172);
war.put(clo1);
war.put(clo2);
war.put(clo3);
war.put(clo4);
war.put(clo5);
Scanner scan=new Scanner(System.in);
while(true) {
System.out.println("请输入你要查找的衣服颜色,按0结束查找");
String color=scan.next();
if(color.equals("0")) {
System.out.println("退出程序。");
break;
}else {
war.searchfor(color);
}
}
}
}