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