海人丶
2018-07-19 14:07
四个定义类:
package com.imooc;
//Truck类
public class Truck extends Car {
private int goods;
public Truck(String name, int price, int goods){
this.name=name;
this.price=price;
this.goods=goods;
}
public int getGoods(){
return goods;
}
public void setGoods(int goods){
this.goods=goods;
}
}
//皮卡类
package com.imooc;
public class Pickup extends Car {
private int men;
private int goods;
public Pickup(String name,int price,int men,int goods){
this.name=name;
this.price=price;
this.men=men;
this.goods=goods;
}
public int getMen() {
return men;
}
public void setMen(int men) {
this.men = men;
}
public int getGoods() {
return goods;
}
public void setGoods(int goods) {
this.goods = goods;
}
}
//载人类
package com.imooc;
public class Man_pick extends Car {
private int men;
public Man_pick(String name,int price,int men){
this.name=name;
this.price=price;
this.men=men;
}
public Man_pick(){
}
public int getMen() {
return men;
}
public void setMen(int men) {
this.men = men;
}
}
//大类:Car类
package com.imooc;
public class Car {
public int price;
public String name;
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//主函数: Carsystem
package com.imooc;
import java.util.*;
public class Carsystem {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Car[] cars= {new Man_pick("奥迪A4",500,4),new Man_pick("马自达6",400,4),new Pickup("皮卡雪6",450,4,2),
new Man_pick("金龙",800,20),new Truck("松花江",400,4),new Truck("依维柯",1000,20)};
System.out.println("欢迎使用答答租车系统");
System.out.println("您是否要租车?1是 0否");
Scanner sc= new Scanner(System.in);
int sel=sc.nextInt();
if(sel==0) System.exit(0);
else if(sel == 1){
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号\t汽车名称\t租金\t\t容量");
int i=1;
for(Car car : cars){
if(car instanceof Man_pick )
{
Man_pick mtemp =(Man_pick) car;
System.out.println(i+".\t"+mtemp.getName()+"\t"+mtemp.getPrice()+"元/天\t\t载人:"+mtemp.getMen()+"人");
}
else if(car instanceof Truck )
{
Truck mtemp = (Truck)car;
System.out.println(i+".\t"+mtemp.getName()+"\t"+mtemp.getPrice()+"元/天\t\t载货:"+mtemp.getGoods()+"吨");
}
else if(car instanceof Pickup )
{
Pickup mtemp= (Pickup)car;
System.out.println(i+".\t"+mtemp.getName()+"\t"+mtemp.getPrice()+"元/天\t\t载人:"+mtemp.getMen()+"人,"
+"载货:"+mtemp.getGoods()+"吨");
}
i++;
}
System.out.println("请输入您要租车的数量:");
int sum=sc.nextInt();
int b[]=new int[sum];
for(int j=0;j<sum;j++){
System.out.println("请输入第"+(j+1)+"辆车的序号:");
b[j]=sc.nextInt();
}
System.out.println("请输入租车天数:");
int days=sc.nextInt();
System.out.println("您的账单:");
System.out.println("***可载人的车有:");
int ren = 0;
for(int j=0;j<b.length;j++){
//System.out.println(cars[b[j]-1].name);
if(cars[b[j]-1] instanceof Man_pick|| cars[b[j]-1] instanceof Pickup ){
//System.out.println(ren+"");
System.out.print(cars[b[j]-1].name+" ");
if(cars[b[j]-1] instanceof Man_pick){
Man_pick mtemp =(Man_pick) cars[b[j]-1];
ren+=mtemp.getMen();
}
else{
Pickup mtemp= (Pickup)cars[b[j]-1];
ren+=mtemp.getMen();
}
}
}
System.out.println(" 共载人:"+ren+"人");
System.out.println("***可载货的车有:");
int goods=0,all=0;
for(int j=0;j<b.length;j++){
all+=cars[b[j]-1].getPrice();
if(cars[b[j]-1] instanceof Truck|| cars[b[j]-1] instanceof Pickup ){
//System.out.println(ren+"");
System.out.print(cars[b[j]-1].name+" ");
if(cars[b[j]-1] instanceof Truck){
Truck mtemp =(Truck) cars[b[j]-1];
goods+=mtemp.getGoods();
}
else{
Pickup mtemp= (Pickup)cars[b[j]-1];
goods+=mtemp.getGoods();
}
}
}
System.out.println(" 共载货:"+goods+"吨");
System.out.println("***租车总价格:"+all*days+"元");
}
else {
System.out.println("输入有误,程序退出!");
System.exit(0);
}
}
}
您好,请问for(Car car : cars)这里怎么理解 for循环结构可以这样写的吗
在计算一日的总价时,这个代码只计算了载货车辆的价格?
Man_pick mtemp =(Man_pick) car; 您好,请问一下这边为什么就必须要引用转换了, 我觉得同时自身类不需要的,可是去掉后就报错 想不明白
为什么子类里已经this.goods=goods了,后面还要写一个setgoods的方法
System.exit(0); 有什么功能,我百度了说是退出状态,但是我用没有反应
朋友你好,我jio得你写的代码很好的。想问问你上传代码怎么才能有这样的格式呢?
刚开始也不会 看视频里的对象数组有了启发 很顺利就写出来了
Java入门第二季
531293 学习 · 6327 问题
相似问题