一、Drive.java(汽车类 - 父类)

package Z_CarManger;

import java.io.ObjectInputStream.GetField;

public abstract class Drive {

private String brand; // 品牌 brand

private String id; // 车牌号

private int rent;// 日租金 rent

// =================================== 【设置构造方法】

public Drive() {}

public Drive(String brand,String id,int rent)

{

this.brand=brand;

this.id=id;

this.rent=rent;

}

// =================================== 【设置属性】

public void setBrand(String brand) {

this.brand=brand; // 品牌 brand

}

public String getBrand() {

return this.brand; // 品牌 brand

}

public void setId(String id)

{

this.id=id; // 车牌号

}

public String getId() {

return this.id; // 车牌号

}

public void setRent(int rent) {

this.rent=rent;// 日租金 rent

}

public int getRent() {

return rent;// 日租金 rent

}

// 计算租金,传入天数,计算租金。 (抽象方法,要声明抽像类)

public abstract float Money(int days);

}

二、Car.java(轿车类 - 子类)

package Z_CarManger;

//===== 【轿车类】

public class Car extends Drive{

private String type;

// =================================== 【设置构造方法】

public Car() {}

public Car(String brand,String id,int rent, String type)

{

super(brand,id,rent); // 引用父类的构造方法

this.type=type;

}

// =================================== 【设置属性】

public void setType(String type) {

this.type=type;

}

public String getType()

{

return this.type;

}

// 计算租金,传入天数,计算租金。 (抽象方法,要声明抽像类)

public float Money(int days) {

float price=this.getRent();

if(days>7)

{

price=price*0.9f;

}

if(days>30)

{

price=price*0.8f;

}

if(days>150)

{

price=price*0.7f;

}

return price;

}

}

三、Bus.java(客车类 - 子类)

package Z_CarManger;

import org.omg.CORBA.PRIVATE_MEMBER;

// ===== 【客车类】

public class Bus extends Drive{

private int seat;

// =================================== 【设置构造方法】

public Bus() {};

public Bus(String brand,String id,int rent,int seat) {

super(brand,id,rent); // 引用父类的构造方法

this.seat=seat;

}

// -------- 【设置属性 - 座位】

public void setSeat(int seat)

{

this.seat=seat;

}

public int getSeat()

{

return this.seat;

}

// 计算租金,传入天数,计算租金。 (抽象方法,要声明抽像类)

public float Money(int days) {

float price=this.getRent();

if(days>3)

{

price=price*0.9f;

}

if(days>7)

{

price=price*0.8f;

}

if(days>30)

{

price=price*0.7f;

}

if(days>150)

{

price=price*0.6f;

}

return price;

}

}

四、Data1.java(数据类 - 存放需要比对和处理的对象数组)

package Z_CarManger;

public class Data1 {

Drive[] m_car=new Drive[8]; // 通过父类创建对象数组

public int init(String brand,String id,int days,String type,int seat)

{

//System.out.println("品牌:"+brand+" 牌照号:"+id+" 天数:" +days+" 车型:"+type +" 座位:"+seat);

// 【轿车】:品牌、车辆号、日租金、型号

m_car[0]=new Car("宝马","京N28588",800,"X6"); // 对应Car类的构造函数

m_car[1]=new Car("宝马","京CNY3284",600,"550i"); // 对应Car类的构造函数

m_car[2]=new Car("别克","京NT37465",300,"林荫大道"); // 对应Car类的构造函数

m_car[3]=new Car("别克","京NT96968",600,"GL8"); // 对应Car类的构造函数

// 【客车】:品牌、车辆号、日租金、型号

m_car[4]=new Bus("金杯","京6566754",800,16); // 对应Bus类的构造函数

m_car[5]=new Bus("金龙","京8696997",800,16); // 对应Bus类的构造函数

m_car[6]=new Bus("金杯","京9696996",1500,34); // 对应Bus类的构造函数

m_car[7]=new Bus("金龙","京8696998",1500,34); // 对应Bus类的构造函数

//String brand="宝马";

//String id="京N28588";

//int days=3;

//String type="X6";

int money=0;

// ====================================== 【正确方法,遍历对象数组】

Drive m_meney=null; // 创建一个对象变量

for(Drive moto:m_car) // 用父类Drive建立一个新的数组对象moto,进行遍历和比较

{

if(moto instanceof Car) // 遍历Car子类的对象

{

moto=(Car)moto;

if(brand.equals(moto.getBrand()) && id.equals(moto.getId()) && type.equals(((Car)moto).getType()))

{

money=days*(moto.getRent());

System.out.println("应该交费:"+money);

}

}

if(moto instanceof Bus) // 遍历Bus子类的对象

{

moto=(Bus)moto;

if(brand.equals(moto.getBrand()) && id.equals(moto.getId()) && seat==(((Bus)moto).getSeat()))

{

money=days*(moto.getRent());

System.out.println("应该交费:"+money);

}

}

}

return money;

}

}

五、App.java(主程序 main)

package Z_CarManger;

import java.util.Scanner;

import org.omg.CORBA.OMGVMCID;

import Book.database;

// ========= 【主程序】

public class App {

public static void main(String[] args)

{

int m_car=1; // 轿车或客车

String m_brand=""; // 品牌

String m_id=""; // 牌照号

int m_seat=0; // 座位数

int m_rent=0; // 日租金

String m_type=""; // 车型

int m_days=0; // 天数

System.out.println("--------------- 腾飞汽车租赁管理系统 ---------------");

System.out.println(" 1、轿车 2、客车");

System.out.println(" 请选择汽车类型:");

Scanner input=new Scanner(System.in);

int m_input = input.nextInt();

m_car=m_input;

switch(m_car) {

case 1: // 轿车

System.out.print("请继续选择品牌:1.宝马 2、别克");

m_input = input.nextInt();

if(m_input==1)

{

m_brand="宝马";

System.out.print("请继续选择车型:1.X6 2、550i");

m_type=(input.nextInt()==1)?"X6":"550i";

}else

{

m_brand="别克";

System.out.print("请继续选择车型:1.林荫大道 2、GL8");

m_type=(input.nextInt()==1)?"林荫大道":"GL8";

}

break;

case 2: // 客车

System.out.print("请继续选择品牌:1.金杯 2、金龙");

m_brand=(input.nextInt()==1)?"金杯":"金龙";

System.out.print("请继续选择座位:1.16座 2、34座");

m_seat=Integer.valueOf((input.nextInt()==1)?"16":"34");

break;

}

System.out.print("输入租赁天数:");

m_days=input.nextInt();

System.out.print("输入牌照号:");

m_id=input.next();

Data1 uuu = new Data1();

uuu.init(m_brand,m_id,m_days,m_type,m_seat);

}

}

java继承数组实例_【Java】理解封装、继承、多态和对象数组的综合实例(简易的租车系统,附代码)...相关推荐

  1. java简易租车系统界面_租车系统的Java简单实现

    一开始觉得很简单,听老师讲很有思路.想好了然后开始写,就出现问题了,还是太年轻.看了慕友的代码,然后在自己写,收获还是有的,比如让我重新认识了 instanceof car.java package ...

  2. java中面向对象租车问题_答答租车系统-Java面向对象的学习

    定义 2 个接口 载人接口 IMannedCar.java public interface IMannedCar { int mannedNumber(); } 载货接口 ICarryFreight ...

  3. java租车系统维熵科技_维熵租车系统数据库

    维熵租车系统数据库是一款在线租车服务系统的数据库,维熵租车系统数据库可为用户提供商务租车.接送机.旅游租车.企业租车.自驾租车.婚庆用车等自助租车服务,可以满足企业日常业务管理功能,还可以提高接单能力 ...

  4. java达达租车接口_菜鸟JAVA达达租车系统

    主类: package com.System; import java.io.PrintStream; import java.util.Scanner; public class CarRental ...

  5. 一个简单的租车系统-----java

    一个简单的租车系统–java 1.创建一个Car父类 定义Car父类的三个属性并封装 package demo; public class Car {private int numbers;//编号p ...

  6. java达达租车接口_Java实现一个达达租车系统的步骤详解

    本文介绍的是利用java编写一个控制台版的"达达租车系统",下面话不多说了,来看看详细实现方法吧. 实现目标 java编写一个控制台版的"达达租车系统" 实现功 ...

  7. 租车系统java大致框架_Java实现答答租车系统

    本文实例为大家分享了java实现答答租车系统的具体代码,供大家参考,具体内容如下 项目需求: 基本界面需求: and: 最后是把账单打印出来: 个人代码实现 基本思路:考虑到车辆之间的共性,设置一个父 ...

  8. java租车系统_Java实现租车系统的详细过程

    这篇文章主要给大家介绍了利用Java实现一个达达租车系统的步骤,文中给出了详细的实现思路和示例代码,并在文末给出了完整的源码供大家学习下载,需要的朋友可以参考借鉴,下面来一起看看吧. 本文介绍的是利用 ...

  9. 自学java 答答租车系统

    我发现自己学的小块的东西是很简单,每当自己实践操作的时候总是有各种各样的问题. 就做这个简单的答答租车系统时,用到了面向对象得三大特性封装.继承.多态.使用父类的引用指向子类对象. package c ...

最新文章

  1. linux下各种Raid介绍
  2. 一些Python情结
  3. swagger + springboot 传递 List参数解决
  4. 二叉排序树的删除+图解
  5. composer-安装插件包
  6. 媒智科技--深度学习算法Python后台开发--热招中~
  7. matlab 工业相机 曝光时间_工业相机与普通相机的差别
  8. 数组后存入数据、删除指定内容数据
  9. 如何操作最快的硬盘对拷工具
  10. PAT 乙级1068 万绿丛中一点红(20 分)
  11. Linux Canbus调试笔记
  12. 怎么组织计算机更新,win10更新取消组织管理提示怎么取消_win10更新提示某些设置由你的组织管理的解决步骤...
  13. 解码快手新市井电商,新品牌流量多,大品牌政策好
  14. Git error: cannot spawn ssh: No such file or directory的一个解决办法
  15. Notion,这应该是程序员最后一款笔记软件
  16. 2017远景能源Java面试
  17. Flickr 的最受欢迎图片
  18. Java 8中的Base64编码和解码
  19. 【网络工程师笔记】——防火墙配置
  20. 图文下单系统,图文下单软件,印刷系统,印刷软件

热门文章

  1. 即时通信软件开发的年轻开发者曾注意到
  2. MATLAB实现PCA(主成分分析)
  3. 用C读取INI配置文件 (可在linux平台上用)
  4. ZJOI 2014 星系调查(推导)
  5. 当罗密欧遇到朱丽叶... ...当指针遇到数组
  6. TCP Traffic Analyzer
  7. 记录webpack commonJs 加载文件规则
  8. MongoDB - 分片管理
  9. Python学习笔记_文件读写,目录遍历类封装
  10. Pashmak and Parmida's problem(树状数组)