为了账号安全,请及时绑定邮箱和手机立即绑定

java入门第二季最后的租车求代码

我希望要的租车代码:

1,封装性  2,继承性  3.接口

qwq我的要求很过分,但是还是忍不住    怎么破?

正在回答

6 回答

public interface IZaiHuo {
   void zaiHuo();
}
public interface IZaiRen {
   void zaiRen();
}

public interface IDouZai extends IZaiHuo, IZaiRen {
}

public abstract class Car {
    public int number;
    public String carName;
    public int price;
    public String carType ;
    
    public abstract void print();

}
public class PersonCar extends Car implements IZaiRen {
   public int capacityPerson;
  
   public PersonCar(int number,String carName,int price,int capacityPerson) {
       this.number=number;
       this.carName=carName;
       this.price=price;
       this.capacityPerson=capacityPerson;
       carType = "PersonCar";
   }
   
   public void zaiRen() {
      System.out.print("  载人:"+capacityPerson+"人 ");
   }
   
   public void print() {
       System.out.print(number+".  "+carName+"  "+price+"元/天 ");
       this.zaiRen();
   }

}

public class StuffCar extends Car implements IZaiHuo {
   public int capacityStuff;
   
   public StuffCar(int number,String carName,int price,int capacityStuff) {
       this.number=number;
       this.carName=carName;
       this.price=price;
       this.capacityStuff=capacityStuff;
       carType = "StuffCar";
   }
   
   public void zaiHuo() {
       System.out.print("  载货:"+capacityStuff+"吨 ");
   }
   
   public void print() {
       System.out.print(number+".  "+carName+"  "+price+"元/天 ");
       this.zaiHuo();;
   }

}
public class PersonStuffCar extends Car implements IDouZai {
   public int capacityPerson;
   public int capacityStuff;
   
   public PersonStuffCar(int number,String carName,int price,int capacityPerson,int capacityStuff) {
       this.number=number;
       this.carName=carName;
       this.price=price;
       this.capacityPerson=capacityPerson;
       this.capacityStuff=capacityStuff;
       carType = "PersonStuffCar";

   }
   
   public void zaiRen() {
       System.out.print("  载人:"+capacityPerson+"人 ");
   }
   
   public void zaiHuo() {
       System.out.print("  载货:"+capacityStuff+"吨 ");
   }
   
   public void print() {
       System.out.print(number+".  "+carName+"  "+price+"元/天 ");
       this.zaiRen();
       this.zaiHuo();
   }

}

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.println("欢迎使用答答租车系统:");
        System.out.println("您是否要租车:1是 0否");
        Scanner scanner = new Scanner(System.in);
        int sellect = scanner.nextInt();
        if (sellect==0)
            return;
        
        int totalPersonC = 0;
        int totalStuffC = 0;
        int totalPrice =  0;
        int pCarNum=0;
        int sCarNum=0;
        
        System.out.println("您可租车的类型及其价目表:");
        System.out.println("序号  汽车名称      租金          容量");
        Car cars[] =new Car[6];
        String pcars[]=new String[6];
        String scars[]=new String[6];
        
        cars[0]=new PersonCar(1,"奥迪A4",500,4);
        cars[1]=new PersonCar(2,"马自达6",400,4);
        cars[2]=new PersonStuffCar(3,"皮卡雪    ",450,4,2);
        cars[3]=new PersonCar(4,"金龙     ",800,20);
        cars[4]=new StuffCar(5,"松花江   ",400,4);
        cars[5]=new StuffCar(6,"依维柯   ",1000,20);
        for(Car a : cars) {
            a.print();
            System.out.println("");
            //System.out.print(a instanceof PersonCar);
            //System.out.print(a instanceof StuffCar);
            //System.out.print(a instanceof PersonStuffCar);
        }
        System.out.println("请输入您要租汽车的数量");
        int num=scanner.nextInt();
        for (int i=1;i<=num;i++) {
            System.out.println("请输入第"+i+"量车的序号");
            int n = scanner.nextInt();
            totalPrice+=cars[n-1].price;
            
            switch (cars[n-1].carType) {
            case "PersonCar":pCarNum+=1;
                pcars[pCarNum]=cars[n-1].carName;
                totalPersonC+=((PersonCar)cars[n-1]).capacityPerson;
                break;
            case "StuffCar":sCarNum+=1;
                scars[sCarNum]=cars[n-1].carName;
                totalStuffC+=((StuffCar)cars[n-1]).capacityStuff;
                break;
            case "PersonStuffCar":
                pCarNum+=1;
                pcars[pCarNum]=cars[n-1].carName;
                totalPersonC+=((PersonStuffCar)cars[n-1]).capacityPerson;
                sCarNum+=1;
                scars[sCarNum]=cars[n-1].carName;
                totalStuffC+=((PersonStuffCar)cars[n-1]).capacityStuff;
            }
        }
        System.out.println("请输入租车天数:");
        totalPrice*=scanner.nextInt();
        System.out.println("您的账单:");
        System.out.println("***可载人的车有:");
        for (String s:pcars) {
            if(s!=null)
                System.out.print(s+"  ");
        }
        System.out.println("共载人:"+totalPersonC+"人");
        
        System.out.println("***可载货的车有:");
        for (String s:scars) {
            if(s!=null)
                System.out.print(s+"  ");
        }
        System.out.println("共载货:"+totalStuffC+"吨");
        
        System.out.println("***租车总价格:"+totalPrice+"元");
        
    }
}

我的代码 供你参考 封装性的话 get和set方法怕麻烦没有用 你可以自己改改看 下面也有慕友的代码用到了 ~

0 回复 有任何疑惑可以回复我~

根据你的要求进行了修改 封装 多态 接口都用到了哦

public interface IZaiRen {
   void zaiRen();

}

public interface IZaiHuo {
   void zaiHuo();

}

public interface IDouZai extends IZaiHuo, IZaiRen {
}

public abstract class Car {
    private int number;
    private String carName;
    private int price;
    private String carType ;
    
    public Car(int number,String carName,int price) {
        this.number=number;
        this.carName=carName;
        this.price=price;
    }
    
    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public String getCarName() {
        return carName;
    }

    public void setCarName(String carName) {
        this.carName = carName;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getCarType() {
        return carType;
    }

    public void setCarType(String carType) {
        this.carType = carType;
    }
    
    public abstract void print();

}

public class PersonCar extends Car implements IZaiRen {
   public int capacityPerson;
 
   
   public PersonCar(int number,String carName,int price,int capacityPerson) {
       super(number,carName,price);
       this.capacityPerson=capacityPerson;
       this.setCarType ("PersonCar");
   }
   
   public void zaiRen() {
      System.out.print("  载人:"+capacityPerson+"人 ");
   }
   
   public void print() {
       System.out.print(getNumber()+".  "+getCarName()+"  "+getPrice()+"元/天 ");
       this.zaiRen();
   }

}

public class StuffCar extends Car implements IZaiHuo {
   public int capacityStuff;
   
   public StuffCar(int number,String carName,int price,int capacityStuff) {
       super(number,carName,price);
       this.capacityStuff=capacityStuff;
       this.setCarType ("StuffCar");
   }
   
   public void zaiHuo() {
       System.out.print("  载货:"+capacityStuff+"吨 ");
   }
   
   public void print() {
       System.out.print(getNumber()+".  "+getCarName()+"  "+getPrice()+"元/天 ");
       this.zaiHuo();;
   }

}

public class PersonStuffCar extends Car implements IDouZai {
   public int capacityPerson;
   public int capacityStuff;
   
   public PersonStuffCar(int number,String carName,int price,int capacityPerson,int capacityStuff) {
       super(number,carName,price);
       this.capacityPerson=capacityPerson;
       this.capacityStuff=capacityStuff;
       this.setCarType ("PersonStuffCar");

   }
   
   public void zaiRen() {
       System.out.print("  载人:"+capacityPerson+"人 ");
   }
   
   public void zaiHuo() {
       System.out.print("  载货:"+capacityStuff+"吨 ");
   }
   
   public void print() {
       System.out.print(getNumber()+".  "+getCarName()+"  "+getPrice()+"元/天 ");
       this.zaiRen();
       this.zaiHuo();
   }

}

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.println("欢迎使用答答租车系统:");
        System.out.println("您是否要租车:1是 0否");
        Scanner scanner = new Scanner(System.in);
        int sellect = scanner.nextInt();
        if (sellect==0)
            return;
        
        int totalPersonC = 0;
        int totalStuffC = 0;
        int totalPrice =  0;
        int pCarNum=0;
        int sCarNum=0;
        
        System.out.println("您可租车的类型及其价目表:");
        System.out.println("序号  汽车名称      租金          容量");
        Car cars[] =new Car[6];
        String pcars[]=new String[6];
        String scars[]=new String[6];
        
        cars[0]=new PersonCar(1,"奥迪A4",500,4);
        cars[1]=new PersonCar(2,"马自达6",400,4);
        cars[2]=new PersonStuffCar(3,"皮卡雪    ",450,4,2);
        cars[3]=new PersonCar(4,"金龙     ",800,20);
        cars[4]=new StuffCar(5,"松花江   ",400,4);
        cars[5]=new StuffCar(6,"依维柯   ",1000,20);
        for(Car a : cars) {
            a.print();
            System.out.println("");
            //System.out.print(a instanceof PersonCar);
            //System.out.print(a instanceof StuffCar);
            //System.out.print(a instanceof PersonStuffCar);
        }
        System.out.println("请输入您要租汽车的数量");
        int num=scanner.nextInt();
        for (int i=1;i<=num;i++) {
            System.out.println("请输入第"+i+"量车的序号");
            int n = scanner.nextInt();
            totalPrice+=cars[n-1].getPrice();
            
            switch (cars[n-1].getCarType()) {
            case "PersonCar":pCarNum+=1;
                pcars[pCarNum]=cars[n-1].getCarName();
                totalPersonC+=((PersonCar)cars[n-1]).capacityPerson;
                break;
            case "StuffCar":sCarNum+=1;
                scars[sCarNum]=cars[n-1].getCarName();
                totalStuffC+=((StuffCar)cars[n-1]).capacityStuff;
                break;
            case "PersonStuffCar":
                pCarNum+=1;
                pcars[pCarNum]=cars[n-1].getCarName();
                totalPersonC+=((PersonStuffCar)cars[n-1]).capacityPerson;
                sCarNum+=1;
                scars[sCarNum]=cars[n-1].getCarName();
                totalStuffC+=((PersonStuffCar)cars[n-1]).capacityStuff;
            }
        }
        System.out.println("请输入租车天数:");
        totalPrice*=scanner.nextInt();
        System.out.println("您的账单:");
        System.out.println("***可载人的车有:");
        for (String s:pcars) {
            if(s!=null)
                System.out.print(s+"  ");
        }
        System.out.println("共载人:"+totalPersonC+"人");
        
        System.out.println("***可载货的车有:");
        for (String s:scars) {
            if(s!=null)
                System.out.print(s+"  ");
        }
        System.out.println("共载货:"+totalStuffC+"吨");
        
        System.out.println("***租车总价格:"+totalPrice+"元");
        
    }
}

0 回复 有任何疑惑可以回复我~

用接口好像也不需要特意去定义常量还有必须实现的方法啊

0 回复 有任何疑惑可以回复我~

我也不会实现接口,我直接定义主类,定义参数进行封装,然后在子类带参构造函数中用主类的setter初始化参数就好了。

0 回复 有任何疑惑可以回复我~

我希望能够更好地理解和应用接口,最主要的还是熟悉面向对象

0 回复 有任何疑惑可以回复我~

接口其实没必要

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

java入门第二季最后的租车求代码

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号