类的继承与父类方法的重写-衣柜管理器

内容:
定义一个衣服(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);
              }             
          }
	}
}
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值