最近在跟着慕课网的java教程回顾和复习java,同时也在查漏补缺中对本科阶段的知识做一个小型的总结。
第二季的视频用了三天看完,大作业用了一个上午写完。看视频过程中学习了eclipse强大的生成(generalize)和改错功能。
对java的面向对象特性和控制台IO做了复习,也新学了ArrayList的功能,收获比较大。
先贴上大作业要求的输出。
代码借鉴了来自以下网页的代码
http://www.imooc.com/article/16652%20%20%20Java
http://blog.csdn.net/Joseph_Cherry/article/details/60530978
- 主要思想是:建立一个Car父类,MotorCar是载人汽车子类,Truck是载货汽车子类,bothCar是皮卡(可载人也可载货)子类。用ArrayList存储各类车的名称、租金、容量。重写toString方法来解决输出各类车的信息价格表。
我的代码:
Car.java
package com.DADACar;
public class Car {
public String name;
public int price;
public String getName() {
return name;
}
public int getPrice() {
return price;
}
public int getHumanNum() {
// TODO Auto-generated method stub
return 0;
}
public int getGoodsNum() {
// TODO Auto-generated method stub
return 0;
}
}
motorCar.java
package com.DADACar;
public class motorCar extends Car {
private int humanNum;
public int getHumanNum() {
return this.humanNum;
}
public motorCar(String name, int price, int humanNum){
this.name=name;
this.price=price;
this.humanNum=humanNum;
}
public String toString(){
return(name+"\t"+price+"元\\天 "+"载客量:"+humanNum+"人");
}
}
trunckCar.java
package com.DADACar;
public class truckCar extends Car {
private int goodsNum;
public int getGoodsNum() {
return this.goodsNum;
}
public truckCar(String name, int price, int goodsNum) {
this.name=name;
this.price=price;
this.goodsNum=goodsNum;
}
public String toString(){
return(name+"\t"+price+"元\\天 "+"载货量:"+goodsNum+"吨");
}
}
bothCar.java
package com.DADACar;
public class bothCar extends Car {
private int goodsNum;
private int humanNum;
public int getGoodsNum() {
return this.goodsNum;
}
public int getHumanNum() {
return this.humanNum;
}
public bothCar(String name, int price, int goodsNum, int humanNum){
this.name=name;
this.price=price;
this.goodsNum=goodsNum;
this.humanNum=humanNum;
}
public String toString(){
return(name+"\t"+price+"元\\天\t"+" 载货量:"+goodsNum+"吨 载人量"+humanNum+"人");
}
}
rentCarSystem.java //主函数在这里!!
package com.DADACar;
import java.util.ArrayList;
import java.util.Scanner;
public class rentCarSystem {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎使用哒哒租车系统");
System.out.println("您是否需要租车? 1-是 0-否");
Scanner statusScanner = new Scanner(System.in);
String begin = statusScanner.next();
//statusScanner.close();
while(true){
switch(begin){
case "1":
systemInfoPrint();
break;
case "0":
System.out.println("谢谢使用本系统,再见!");
System.exit(0);
break;
default:
System.out.println("输入的值有误!");
}
}
}
public static void systemInfoPrint(){
ArrayList carlist = new ArrayList(6);
carlist.add(new motorCar("奥迪A4",500,4));
carlist.add(new motorCar("马自达6",400,4));
carlist.add(new bothCar("皮卡雪6",450,2,4)); //货量,人量
carlist.add(new motorCar("金龙",800,20));
carlist.add(new truckCar("松花江",400,4));
carlist.add(new truckCar("依维柯",1000,20));
System.out.println("可供租用的车型信息有:");
System.out.println("******************************************");
System.out.println("序号\t车型 单价 容量");
for(int i = 0;i
-
另外值得注意的是
Scanner输入流如果close了,就会出现如下所示的NoSuchElementException错误。
>Exception in thread "main" [Java](http://lib.csdn.net/base/javase).util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)at java.util.Scanner.next(Scanner.java:1416)
csdn博客中有分析说注释掉close()那一行就不报错了