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

来源:12-2 项目问题解析 1

贱贱贱我们渐渐失去

2018-08-08 19:24

我希望要的租车代码:

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

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

写回答 关注

6回答

  • esperanze203
    2018-09-24 09:49:50
    已采纳
    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方法怕麻烦没有用 你可以自己改改看 下面也有慕友的代码用到了 ~

  • esperanze203
    2018-09-24 10:31:52

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

    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+"元");
            
        }
    }

  • 神影天初
    2018-08-12 10:30:39

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

  • 神影天初
    2018-08-12 10:28:01

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

  • 贱贱贱我们渐渐失去
    2018-08-09 21:46:56

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

  • 呵呵__
    2018-08-09 21:06:34

    接口其实没必要

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

531022 学习 · 6160 问题

查看课程

相似问题