java复习——继承应用

实现一个内衣商城中的内衣管理类
1.定义一个内衣类
2.定义一个内衣管理类
(1)实现进货功能
(2)可以输出所有内衣信息功能
3.使用继承实现一个可按单价排序输出所有内衣的功能
4.使用继承实现一个只输出女士内衣的功能

import java.util.Arrays;

/**
 * 
 * 继承应用
 *
 */
public class ExtendsDemo {
    public static void main(String[] args){
        Underwear u1 = new Underwear("男士", "背心", 35.5f);
        Underwear u2 = new Underwear("女士", "胸垫", 98.0f);
        Underwear u3 = new Underwear("男士", "内裤", 188.8f);
        Underwear u4 = new Underwear("女士", "内裤", 298.0f);
        Underwear u5 = new Underwear("女士", "bra", 58.0f);

        UnderwearManager um1 = new UnderwearManager();
        um1.add(u1);
        um1.add(u2);
        um1.add(u3);
        um1.add(u4);
        um1.add(u5);
        Underwear[] us1 = um1.getUnderwears();
        for(Underwear u: us1){
            System.out.println(u.getInfo());
        }
        System.out.println("-------------排序子类------------");
        //排序子类
        PriceSortUnderwearManager ps = new PriceSortUnderwearManager();
        ps.add(u1);
        ps.add(u2);
        ps.add(u3);
        ps.add(u4);
        ps.add(u5);
        Underwear[] us2 = ps.getUnderwears();
        for(Underwear u: us2){
            System.out.println(u.getInfo());
        }
        System.out.println("------------女士内衣管理类------------");
        //女士内衣管理类
        WomenUnderwearManager wm = new WomenUnderwearManager();
        wm.add(u1);
        wm.add(u2);
        wm.add(u3);
        wm.add(u4);
        wm.add(u5);
        Underwear[] u6 = wm.getUnderwears();
        for(Underwear u: u6){
            System.out.println(u.getInfo());
        }
    }
}

/**
 * 内衣类
 */

class Underwear{
     float price;//单价
     String name;//名称
     String sex;//男士或女士

     public Underwear(String sex, String name, float price){
         this.sex = sex;
         this.name = name;
         this.price = price;
     }
     public String getInfo(){
         return sex + name + ", RMB" + price;
     }
}

/**
 * 内衣管理类
 */

class UnderwearManager{
    private Underwear[] underwears = new Underwear[3];
    private int count;//记录当前内衣数量,计数器

    //添加内衣功能,实现进货功能
    public void add(Underwear u){
        if(count >= underwears.length){
            //数组动态扩展
            int newlen = (underwears.length * 3) / 2 + 1;
            underwears = Arrays.copyOf(underwears, newlen);
        }
        underwears[count] = u;
        count++;
    }

    //输出所有内衣的信息
    public Underwear[] getUnderwears(){
        Underwear[] us = new Underwear[count];
        for(int i = 0; i < us.length; ++i){
            us[i] = underwears[i];
        }
        return us;
    }
}

//实现按单价排序的字类
class PriceSortUnderwearManager extends UnderwearManager{
    //重写父类方法
    public Underwear[] getUnderwears(){
        Underwear[] us = super.getUnderwears();
        Underwear temp = null;//临时交换变量
        for(int i = 0; i < us.length; ++i){
            for(int j = 0; j < us.length - i - 1; ++j){
                if(us[j].price > us[j].price){
                    temp = us[j];
                    us[j] = us[j + 1];
                    us[j + 1] = temp;
                }
            }
        }
        return us;
    }

}

//女士内衣管理类
class WomenUnderwearManager extends UnderwearManager{
    //重写父类方法
    public Underwear[] getUnderwears(){
        Underwear[] u = super.getUnderwears();
        //创建一个UnderwearManager对象,用于存储女士内衣
        UnderwearManager um = new UnderwearManager();
        for(int i = 0; i < u.length; ++i){
            if("女士".equals(u[i].sex))
                um.add(u[i]);
        }
        return um.getUnderwears();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值