实现一个内衣商城中的内衣管理类
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();
}
}