继承的应用

来源:互联网 发布:阿里云软件市场分成 编辑:程序博客网 时间:2024/05/22 05:16

继承的应用

课程大纲

一、  定义一个内衣商城中的内衣管理

1、       定义一个内衣类

2、       定义一个内衣管理类(实现进货管理和输出所有内衣信息功能)

3、       使用继承实现一个可按单价排序输出所有内衣功能

4、       使用继承实现一个只输出女士内衣的功能


import java.util.Arrays;
/**
 内衣管理
*/

class ExtendsDemo
{
 public static void main(String[] args)
 {
  Underwear u1 = new Underwear("背心","男士",35.5f);
  Underwear u2 = new Underwear("胸垫","女士",50.5f);
  Underwear u3 = new Underwear("内裤","男士",135.5f);
  Underwear u4 = new Underwear("内裤","女士",235.5f);
  Underwear u5 = new Underwear("bra","女士",355.5f);
  /*UnderwearManager um = new UnderwearManager();
  um.add(u1);
  um.add(u2);
  um.add(u3);
  um.add(u4);
  um.add(u5);
  Underwear[] us = um.getUnderwears();//返回的是数组
  for(Underwear u:us )
  {
   System.out.println(u.getInfo());
  }
  */
  /*
  System.out.println("---------排序子类------------");
  PriceSortUnderwearManager um1 = new PriceSortUnderwearManager();
  um1.add(u1);
  um1.add(u2);
  um1.add(u3);
  um1.add(u4);
  um1.add(u5);
  Underwear[] us = um1.getUnderwears();//返回的是数组
  for(Underwear u:us )
  {
   System.out.println(u.getInfo());
  }
  */
  System.out.println("-------------女士内衣子类----------------");
  WomanUnderwearManager wm = new WomanUnderwearManager();
  wm.add(u1);
  wm.add(u2);
  wm.add(u3);
  wm.add(u4);
  wm.add(u5);
  Underwear[] us = wm.getUnderwears();
  for(Underwear u: us){
   System.out.println(u.getInfo());
  }





 }
}
/**
 内衣类
*/
class Underwear
{
 float price;
 String name;
 String sex;
 public Underwear(String name,String sex,float price)
 {
  
  this.name = name;
  this.sex = sex;
  this.price = price;
 }
 public String  getInfo()
 {
  return name+sex+",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-1;i++)
  {
     for(int j=0;j<us.length-1-i;j++)
      if(us[j].price>us[j+1].price)
   {
    temp = us[j];
    us[j] = us[j+1];
    us[j+1] = temp;
      }
  }
  return us;

 }
}
//女士内衣管理
class WomanUnderwearManager extends UnderwearManager
{
 //重写父类的方法
 public Underwear[] getUnderwears()
 {
  Underwear[] src = super.getUnderwears();
  //创建一个UnderwearManager对象用来存储女性内衣;
  UnderwearManager um = new UnderwearManager();
  for(int i =0;i<src.length;i++)
  {
   if("女士".equals(src[i].sex))
   {
      um.add(src[i]);
   }
  }
  return um.getUnderwears();
 }


}

0 0
原创粉丝点击