Car.java//车(包括所有车型)
package com.carSystem;
public class Car {
private String name;//汽车名
private double money;//租金
private String day; //天数是客户自己定的,不需要系统设定
private int person;//载客数
private double weight;//载货量
private int Number;//序号
//get set方法
//JAVA面向对象编程中的封闭性和安全性。封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,
//如此一来其他类则不能对该变量访问。
//这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性
//当我们想要操作这些域变量怎么办呢?我们可以通过两种方法,第一中即通过public方式的构造器(或称构造函数),
//对象一实例化就对该变量赋值。
// 第二种就是通过上面提到的set和get方法
public int getNumber(){ return Number; }
public void setNumber(int Number){
this.Number=Number;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public double getMoney(){
return money;
}
public void setMoney(double money){
this.money=money;
}
public int getPerson(){
return person;
}
public void setPerson(int person){
this.person=person;
}
public double getWeight()
{
return weight;
}
public void setWeight(double weight){
this.weight=weight;
}
}
Bus.java
//公交
package com.carSystem;
public class Bus extends Car {
private String name;
private int person;
private double money;
private int Number;
// 构造函数 初始化值 1.构造函数必须与类同名(如果一个源文件中有多个类,那么构造函数必须与公共类同名)
// 2.每个类可以有一个以上的构造函数
// 3.构造函数可以有0个、1个或1个以上的参数
// 4.构造函数没有返回值
// 5.构造函数总是伴随着new 新对象操作一起调用
public Bus(int Number,String name, int person, double money){ this.name=name;
this.person=person;
this.money=money;
this.Number=Number;
}
public int getNumber(){
return Number;
}
public void setNumber(int Number){
this.Number=Number;
} public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getPerson(){
return person;
}
public void setPerson(int person){
this.person=person;
}
public double getMoney(){
return money;
}
public void setMoney(double money){
this.money=money;
}
}
LittleCar.java
//小车
package com.carSystem;
public class LittleCar extends Car {
private String name;
private int person;
private double money;
private int Number;
// 构造函数 初始化值 1.构造函数必须与类同名(如果一个源文件中有多个类,那么构造函数必须与公共类同名)
// 2.每个类可以有一个以上的构造函数
// 3.构造函数可以有0个、1个或1个以上的参数
// 4.构造函数没有返回值
// 5.构造函数总是伴随着new 新对象操作一起调用 public LittleCar(int Number,String name, int person, double money){ this.name=name;
this.person=person;
this.money=money;
this.Number=Number;
}
public int getNumber(){
return Number;
}
public void setNumber(int Number){
this.Number=Number;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getPerson(){
return person;
}
public void setPerson(int person){
this.person=person;
}
public double getMoney(){
return money;
}
public void setMoney(double money){ this.money=money;
}
}
Lorry.java
//重型卡车(货车)
package com.carSystem;
public class Lorry extends Car {
private String name;
private int person;
private double money;
private double weight;
private int Number;
// 构造函数 初始化值 1.构造函数必须与类同名(如果一个源文件中有多个类,那么构造函数必须与公共类同名)
// 2.每个类可以有一个以上的构造函数
// 3.构造函数可以有0个、1个或1个以上的参数
// 4.构造函数没有返回值
// 5.构造函数总是伴随着new 新对象操作一起调用
public Lorry(int Number,String name, int person, double money,double weight){
this.name=name;
this.person=person;
this.money=money;
this.weight=weight;
this.Number=Number;
}
public int getNumber(){
return Number;
}
public void setNumber(int Number){
this.Number=Number;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getPerson(){
return person;
}
public void setPerson(int person){
this.person=person;
}
public double getMoney(){
return money;
}
public void setMoney(double money){
this.money=money;
}
public double getWeight(){
return weight;
}
public void setWeight(double weight){
this.weight=weight;
}
}
PickUp.java
//皮卡
package com.carSystem;
public class PickUp extends Car {
private String name;
private int person;
private double money;
private double weight;
private int Number;
// 构造函数 初始化值 1.构造函数必须与类同名(如果一个源文件中有多个类,那么构造函数必须与公共类同名)
// 2.每个类可以有一个以上的构造函数
// 3.构造函数可以有0个、1个或1个以上的参数
// 4.构造函数没有返回值
// 5.构造函数总是伴随着new 新对象操作一起调用
public PickUp(int Number,String name, int person, double money,double weight){
this.name=name;
this.person=person;
this.money=money;
this.weight=weight;
this.Number=Number;
}
public int getNumber(){
return Number;
}
public void setNumber(int Number){
this.Number=Number;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getPerson(){
return person;
}
public void setPerson(int person){
this.person=person;
}
public double getMoney(){
return money;
}
public void setMoney(double money){
this.money=money;
}
public double getWeight(){
return weight;
}
public void setWeight(double weight){
this.weight=weight;
}
}
InitailCar.java
//main函数文件
package com.carSystem;
import java.util.Scanner;//导入Scanner包
public class InitailCar {
public static void main(String[] args) { // TODO Auto-generated method stub
System.out.println("您是否想要租车?是:1 否:2");
//扫描从控制台输入的字符,Scanner是用于扫描输入文本的类名,input仅仅是对象名,你可以换成任意的非java保留
//如a、b、c都行,new是给对象new(开辟)一个空间存储扫描进来的东西
//System.in 是PrintStream(字节打印流)的一个实例 ,只能按字节读取
//一句Scanner scan=new Scanner(System.in)之后,下面不需要再重复 Scanner scan=new Scanner(System.in); int inputNum=scan.nextInt();
//要注意是"==",而不是"="
if (inputNum==1){
System.out.println("以下是可租车的类型与其价格表");
/
\n 回车换行 \t 横向跳到下一制表位置 \v 竖向跳格 垂直制表符 \b 退格 \r 回车 \f 走纸换页 \ 反斜线符"\" \' 单引号符 \a 鸣铃
/
System.out.println("汽车名称"+"\t"+"载客数"+"\t"+"租金/天"+"\t"+"载货量");
//int[] a = {1,2,3,4}; //int[] a = new int[]{1,2,3,4};两者相同,定义时直接初始化数组
//JAVA 里面的数组名是一个引用变量,引用变量是放在是放在一个栈里面,而JAVA数组本身就是对象,
//Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
//所以如果不new一下,就无法得到这个数组,即引用变量没有引用的对象。
//而在C++中,数组名实际上是数组的首地址,是一个指针,数组在声明之后就已经生成了这个数组对象。就不用new了
Car [] carMessage={
new LittleCar(1,"奥迪A4",5,500),new LittleCar(2,"马自达6",4,400),new Bus(3,"金龙客车",25,800),new Lorry(4,"松花江",4,400,5),new Lorry(5,"依维柯",4,1000,10),new PickUp(6,"皮卡雪6",3,450,2)};
//for each语句 Car是引用Car.java i为变量名 carMessage为数组名 for(Car i:carMessage){
if(i instanceof LittleCar)
{ System.out.println(i.getNumber()+"."+i.getName()+"\t"+i.getPerson()+"\t"+i.getMoney());
}
if(i instanceof Bus)
{ System.out.println(i.getNumber()+i.getName()+"\t"+i.getPerson()+"\t"+i.getMoney());
}
if(i instanceof Lorry)
{ System.out.println(i.getNumber()+i.getName()+"\t"+i.getPerson()+"\t"+i.getMoney()+"\t"+i.getWeight());
}
if(i instanceof PickUp)
{ System.out.println(i.getNumber()+i.getName()+"\t"+i.getPerson()+"\t"+i.getMoney()+"\t"+i.getWeight());
}
}
System.out.println("请输入你要租车的数量");
int count=scan.nextInt();
int totalPerson=0;
double totalWeight=0;
double totalMoney=0;
for(int p=0;p<count;p++){
System.out.println("请输入你要选择的第"+(p+1)+"辆车的序号"); //System.out.println("1.奥迪A4"+"\t"+"2.马自达6"+"\t"+"3.金龙客车"+"\t"+"4.松花江"+"\t"+"5.依维柯"+"\t"+"6.皮卡雪6");
int chooseNum=scan.nextInt(); System.out.println("你选的是车型是:");
//数组的引用,[chooseNum-1]表示在数组carMessage中的第几个数 if(carMessage[chooseNum-1]instanceof LittleCar)
{
System.out.println(carMessage[chooseNum-1].getName()+"\t"+carMessage[chooseNum-1].getPerson()+"\t"+carMessage[chooseNum-1].getMoney()); totalPerson+=carMessage[chooseNum-1].getPerson(); totalMoney+=carMessage[chooseNum-1].getMoney();
}
if(carMessage[chooseNum-1]instanceof Bus)
{
System.out.println(carMessage[chooseNum-1].getName()+"\t"+carMessage[chooseNum-1].getPerson()+"\t"+carMessage[chooseNum-1].getMoney()); totalPerson+=carMessage[chooseNum-1].getPerson(); totalMoney+=carMessage[chooseNum-1].getMoney();
}
if(carMessage[chooseNum-1]instanceof Lorry)
{
System.out.println(carMessage[chooseNum-1].getName()+"\t"+carMessage[chooseNum-1].getPerson()+"\t"+carMessage[chooseNum-1].getMoney()+"\t"+carMessage[chooseNum-1].getWeight()); totalPerson+=carMessage[chooseNum-1].getPerson(); totalMoney+=carMessage[chooseNum-1].getMoney(); totalWeight+=carMessage[chooseNum-1].getWeight();
}
if(carMessage[chooseNum-1]instanceof PickUp)
{
System.out.println(carMessage[chooseNum-1].getName()+"\t"+carMessage[chooseNum-1].getPerson()+"\t"+carMessage[chooseNum-1].getMoney()+"\t"+carMessage[chooseNum-1].getWeight()); totalPerson+=carMessage[chooseNum-1].getPerson(); totalMoney+=carMessage[chooseNum-1].getMoney(); totalWeight+=carMessage[chooseNum-1].getWeight();
}
}
System.out.println("请输入你租车的天数");
int days=scan.nextInt();
//totalMoney=totalMoneydays;
System.out.println("你组了"+count+"辆车");
System.out.println("总载人数为:"+totalPerson+"人"); System.out.println("总载货量为:"+totalWeight+"吨"); System.out.println("总天数为"+days+"天");
System.out.println("总租金为"+totalMoneydays+"元");
}else if
(inputNum==2)
{
System.out.println("欢迎下次再来!");
}else
{
System.out.println("您输入的信息有误!请重新输入!");
}
}
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章