carCommon抽象类
public abstract class carCommon { public abstract String getName(); //汽车名字 public abstract String getBrand(); //汽车品牌 public abstract float getPrice(); //汽车价格 public abstract String getCarSort();//汽车类型 public abstract float mathPrice(int year); //汽车按年折旧率 }
busCar公共汽车的实现
public class busCar extends carCommon{ private String name = null; //汽车名字 private float price; //汽车品牌 private String brand = null; //汽车价格 private String carSort = "bus公共汽车"; //汽车分类 private float discount = 0.85f; //汽车折旧率 /*全部初始化值*/ public busCar(String name,float price,String brand){ this.name = name; this.price = price; this.brand = brand; } public String getBrand() { return brand; } public String getName() { return name; } public float getPrice(){ return price; } public String getCarSort() { return carSort; } public float mathPrice(int year) { for(int i=0; i<year; i++){ price = price*discount; } return price; } }
minCar的小汽车实现
public class minCar extends carCommon{ private String name = null; //汽车名字 private float price; //汽车品牌 private String brand = null; //汽车价格 private String carSort = "car小汽车"; //汽车分类 private float discount = 0.90f; //汽车折旧率 /*全部初始化值*/ public minCar(String name,float price,String brand){ this.name = name; this.price = price; this.brand = brand; } public String getBrand() { return brand; } public String getName() { return name; } public float getPrice(){ return price; } public String getCarSort() { return carSort; } public float mathPrice(int year) { for(int i=0; i<year; i++){ price = price*discount; } return price; } }
最后是testCar的类
import java.util.ArrayList; public class testCar { public static void main(String[] args){ testCar testcar = new testCar(); busCar a0 = new busCar("野地0",900,"一汽"); busCar a1 = new busCar("野地1",300,"一汽"); busCar a2 = new busCar("野地2",500,"一汽"); minCar b0 = new minCar("家居0",350,"大众"); minCar b1 = new minCar("家居1",550,"大众"); minCar b2 = new minCar("家居2",750,"大众"); ArrayList alist = new ArrayList(); alist.add(a0); alist.add(a1); alist.add(a2); alist.add(b0); alist.add(b1); alist.add(b2); System.out.println("##########开始1##########"); for(int i=0; i<alist.size(); i++){ System.out.println(((carCommon)alist.get(i)).getPrice()); } /** * 根据价格排序 */ Object mid; for(int i=0; i<alist.size(); i++){ for(int j=0; j<alist.size(); j++){ if(((carCommon)alist.get(i)).getPrice() < ((carCommon)alist.get(j)).getPrice()){ mid = alist.get(i); alist.set(i, alist.get(j)); alist.set(j, mid); } } } System.out.println("##########开始2##########"); for(int i=0; i<alist.size(); i++){ System.out.println(((carCommon)alist.get(i)).getPrice()); } System.out.println("##########开始3##########"); System.out.println(testcar.comparePrice(a0,2,b2,2)); } /** * 按年折旧后比较价格 * @param a1 * @param year1 * @param a2 * @param year2 * @return */ public String comparePrice(carCommon a1,int year1,carCommon a2,int year2){ String returnStr = null; if(a1.mathPrice(year1) > a2.mathPrice(year2)){ returnStr = year1 + "年的" + a1.getBrand() + "品牌中" + a1.getCarSort() + a1.getName() + "的价格为" +a1.getPrice() + "比" + year2 + "年的" + a2.getBrand() + "品牌中" + a2.getCarSort() + a2.getName() + "的价格为" +a2.getPrice() + "贵了" +(a1.getPrice()-a2.getPrice()); } else { returnStr = year1 + "年的" + a1.getBrand() + "品牌中" + a1.getCarSort() + a1.getName() + "的价格为" +a1.getPrice() + "比" + year2 + "年的" + a2.getBrand() + "品牌中" + a2.getCarSort() + a2.getName() + "的价格为" +a2.getPrice() + "便宜了" +(a2.getPrice()-a1.getPrice()); } return returnStr; } }
测试结果:
##########开始1########## 900.0 300.0 500.0 350.0 550.0 750.0 ##########开始2########## 300.0 350.0 500.0 550.0 750.0 900.0 ##########开始3########## 2年的一汽品牌中bus公共汽车野地0的价格为650.25比2年的大众品牌中car小汽车家居2的价格为607.5贵了42.75