贱贱贱我们渐渐失去
2018-08-08 19:24
我希望要的租车代码:
1,封装性 2,继承性 3.接口
qwq我的要求很过分,但是还是忍不住 怎么破?
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方法怕麻烦没有用 你可以自己改改看 下面也有慕友的代码用到了 ~
根据你的要求进行了修改 封装 多态 接口都用到了哦
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+"元");
}
}
用接口好像也不需要特意去定义常量还有必须实现的方法啊
我也不会实现接口,我直接定义主类,定义参数进行封装,然后在子类带参构造函数中用主类的setter初始化参数就好了。
我希望能够更好地理解和应用接口,最主要的还是熟悉面向对象
接口其实没必要
Java入门第二季
531292 学习 · 6327 问题
相似问题