这是我写的“嗒嗒租车系统”,欢迎大神来指导交流

我有个问题,就是MennedCar  RentCar  OverallCar 3个类中double menned改为和Car类一样类型int menned,运行主函数到车辆信息就会出现输出Null,怎么回事。

package test2.DadaRentCar;
/*根据所学知识,编写一个控制台版的“嗒嗒租车系统”
 * 功能:
 * 1、展示所有可租车辆
 * 2、选择车型、组车辆
 * 展示租车清单,包含:总金额、总载量及其车型、总载人量及其车型
 *
 * 参考:
 * 欢迎使用嗒嗒租车系统:
 * 您是否要租车:1是   0否
 * 1
 * 您可租车的类型及其价目表:
 * 序号    汽车名称    租金                  容量
 * 1.  奥迪A4  500/天          载人:4人
 * 2.  马自达6  400/天         载人:4人
 * 3.  金龙             800/天         载人:20人
 * 4.  松花江         400/天         载货:4吨
 * 5.  依维柯         1000/天      载货:20吨
 * 6.  皮卡雪6  450/天         载人:4人  载货:2吨
 * 请输入您要租汽车的数量:
 * 4
 * 请输入第一辆车的序号:
 * 1
 * 请输入第二辆车的序号:
 * 2
 * 请输入第三辆车的序号:
 * 3
 * 请输入第四辆车的序号:
 * 4
 * 请输入租车天数:
 * 3
 * ***租车信息:
 * 奥迪A4  马自达6   金龙      松花江
 * 共可载人树:28人
 * 共可载货重:4.0吨
 * ***租车总价格:
 * 6300.0元
 */
import java.util.*;
public class RentCar {

public static void main(String[] args) {
 
 //创建三种车型对象
    Car car1=new MennedCar();
    Car car2=new MennedCar();
    Car car3=new MennedCar();
    Car car4=new LoadCar();
    Car car5=new LoadCar();
    Car car6=new OverallCar();
 
 Scanner input=new Scanner(System.in);//创建Scanner对象
 System.out.println("欢迎使用嗒嗒租车系统:"+ "\n"+"您是否要租车:1是   0否");
 int write=input.nextInt();//获取用户输入信息并保存
 if(write==1){System.out.println("您可租车的类型及其价目表:"+"\n"+"序号    汽车名称       租金              载人量       载物量");
  //调用载人型车型信息
  car1.carPro(1,"奥迪A4",500,4,0);
  car2.carPro(2,"马自达6",400,4,0);
  car3.carPro(3,"金龙            ",800,20,0);
     //调用载货型车辆信息
  car4.carPro(4,"松花江        ",400,0,4 );
  car5.carPro(5,"依维柯        ",1000,0,20 );
  //调用载人载货型车辆信息  
  car6.carPro(6,"皮卡雪        ",450,4,2);
  
  System.out.println("请输入您要租汽车的数量:(限租20量)");
  int amount=input.nextInt();//获取用户输入租车数量信息并保存
  if(amount<=20){
   int []putnum=new int[20];
   int i=1;
  for(;i<=amount;i++){System.out.println("请输入第"+i+"辆车的序号:");
   putnum[i-1]=input.nextInt();//获取用户输入车辆序号信息并保存
   //根据输入序号输出对应车型
   if(putnum[i-1]==1){System.out.println(car1.name);}
   else if(putnum[i-1]==2){System.out.println(car2.name);}
   else if(putnum[i-1]==3){System.out.println(car3.name);}
   else if(putnum[i-1]==4){System.out.println(car4.name);}
   else if(putnum[i-1]==5){System.out.println(car5.name);}
   else if(putnum[i-1]==6){System.out.println(car6.name);}
   else{System.out.println("你输入的序号有误!");}
  }
  System.out.println("请输入租车天数:");
  int days=input.nextInt();//获取用户输入租车天数并保存
  System.out.println("***租车信息:");
  //循环输出租车信息
        for(int j=0;j<amount;j++){if(putnum[j]==1){System.out.println(car1.name);}
        else if(putnum[j]==2){System.out.println(car2.name);}
   else if(putnum[j]==3){System.out.println(car3.name);}
   else if(putnum[j]==4){System.out.println(car4.name);}
   else if(putnum[j]==5){System.out.println(car5.name);}
   else if(putnum[j]==6){System.out.println(car6.name);}
       }
        //计算所租车辆总载人数
        int[] people=new int[20];int People=0;
  for(int j=0;j<amount;j++){if(putnum[j]==1){people[j]=car1.menned;}
        else if(putnum[j]==2){people[j]=car2.menned;}
   else if(putnum[j]==3){people[j]=car3.menned;}
   else if(putnum[j]==4){people[j]=car4.menned;}
   else if(putnum[j]==5){people[j]=car5.menned;}
   else if(putnum[j]==6){people[j]=car6.menned;}
  People=People+people[j]; 
  }
  System.out.println("共可载人数:"+People+"人");
  //计算所租车辆总载物重
  double[] goods=new double[20];double Goods=0;
  for(int j=0;j<amount;j++){if(putnum[j]==1){goods[j]=car1.load;}
        else if(putnum[j]==2){goods[j]=car2.load;}
   else if(putnum[j]==3){goods[j]=car3.load;}
   else if(putnum[j]==4){goods[j]=car4.load;}
   else if(putnum[j]==5){goods[j]=car5.load;}
   else if(putnum[j]==6){goods[j]=car6.load;}
  Goods=Goods+goods[j]; 
  }
  System.out.println("共可载货重:"+Goods+"吨");
  //计算所租车辆总费用
     double[] monney=new double[20];double Monney=0;
  for(int j=0;j<amount;j++){if(putnum[j]==1){monney[j]=car1.rent;}
        else if(putnum[j]==2){monney[j]=car2.rent;}
   else if(putnum[j]==3){monney[j]=car3.rent;}
   else if(putnum[j]==4){monney[j]=car4.rent;}
   else if(putnum[j]==5){monney[j]=car5.rent;}
   else if(putnum[j]==6){monney[j]=car6.rent;}
  Monney=Monney+monney[j]; 
  }
  Monney=Monney*days;
  System.out.println("***租车总价格:");
  System.out.println(Monney+"元");}else{
   System.out.println("您输入的租车数量不符合要求!");
  }
 }else{System.out.println("欢迎下次光临!");}

}
}

 


package test2.DadaRentCar;

public class Car {
   public String name;
     public double rent;
     public int menned;
     public double load;
     public int num;
    
     public void carPro(int num,String name,double rent,int menned,double load){
     this.name=name;
     this.rent=rent;
     this.menned=menned;
     this.load=load;
     this.num=num;
 System.out.println(
  num+"   "+name+"   "+rent+"/天        "+menned+"人         "+load+" 吨   ");
 }
 
}

package test2.DadaRentCar;

public class MennedCar extends Car {
 public void carPro(int num ,String name,double rent,double menned,double load){
  
 } 

}

package test2.DadaRentCar;

public class LoadCar extends Car {
 public void carPro(int num, String name,double rent,double menned,double load){
  
 }
}

package test2.DadaRentCar;

public class OverallCar extends Car {
 public void carPro(int num,String name,double rent, double menned,double load){
  
 }
}



寂Mo聆听
浏览 2933回答 2
2回答

一条小咸鱼

用数组管理所有车的对象更好子类和父类都相同了,为什么还要创建子类。建议重新设计继承结构,父类值只有共有的属性,子类有自己独有的属性

GlenOrchyGle

感觉有点复杂,还可以优化代码
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java