为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第二季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第二季

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • 包含抽象方法的类一定是抽象类,抽象类和抽象方法都需要添加关键字 abstract,且顺序为 abstract class

    查看全部
    0 采集 收起 来源:练习题

    2018-12-27

  • //有更好的方法大家指出来,一起探讨

    package com.test.car;

    /**

     * car父类

     * @author RaoZhiQing

     *

     */

    public  abstract  class  Car {

    private double number;

    private String name;       //车的名称

    private double rentPrice; //车的日租金

    public Car(double number, String name, double rentPrice) {

    super();

    this.number = number;

    this.name = name;

    this.rentPrice = rentPrice;

    }


    public double getNumber() {

    return number;

    }


    public void setNumber(double number) {

    this.number = number;

    }


    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public double getRentPrice() {

    return rentPrice;

    }

    public void setRentPrice(double rentPrice) {

    this.rentPrice = rentPrice;

    }

    }

    package com.test.car;

    /**

     * 皮卡车

     * @author RaoZhiQing

     *

     */

    public class PickUp extends Car{

    private double weight;

    private double mannedCapacity;

    public PickUp(double number,String name, double rentPrice, double weight,double mannedCapacity) {

    super(number,name, rentPrice);

    this.weight=weight;

    this.mannedCapacity=mannedCapacity;

    }

    public double getWeight() {

    return weight;

    }

    public void setWeight(double weight) {

    this.weight = weight;

    }

    public double getMannedCapacity() {

    return mannedCapacity;

    }

    public void setMannedCapacity(double mannedCapacity) {

    this.mannedCapacity = mannedCapacity;

    }

    }

    package com.test.car;

    /**

     * 货车类

     * @author RaoZhiQing

     *

     */

    public class Truck extends Car {

    private double weight;

    public Truck(double number,String name, double rentPrice, double weight) {

    super(number,name, rentPrice);

    this.weight=weight;

    }

    public double getWeight() {

    return weight;

    }

    public void setWeight(double weight) {

    this.weight = weight;

    }


    }

    package com.test.car;

    /**

     * 客车类

     * @author RaoZhiQing

     *

     */

    public class PassengerCar extends Car {

    private double mannedCapacity;

    public PassengerCar(double number,String name, double rentPrice, double mannedCapacity) {

    super(number,name, rentPrice);

    this.mannedCapacity=mannedCapacity;

    }

    public double getMannedCapacity() {

    return mannedCapacity;

    }

    public void setMannedCapacity(double mannedCapacity) {

    this.mannedCapacity = mannedCapacity;

    }

    }

    package com.test.car;

    /**

     * 小型轿车类

     * @author RaoZhiQing

     *

     */

    public class MiniCar extends Car {

    private double mannedCapacity;

    public MiniCar(double number,String name, double rentPrice,double mannedCapacity) {

    super(number,name, rentPrice);

    this.mannedCapacity=mannedCapacity;

    }

    public double getMannedCapacity() {

    return mannedCapacity;

    }

    public void setMannedCapacity(double mannedCapacity) {

    this.mannedCapacity = mannedCapacity;

    }

    }

    package com.test.car;


    import java.util.Scanner;


    public class DidaRentCar {


    /**

    * 嘀嗒租车系统

    * @param args

    */

    public static void main(String[] args) {

    Car [] cars =  {new MiniCar(1,"奥迪",500,4),new PassengerCar(2,"金龙", 800, 50),

    new Truck(3,"东风", 1500, 5000),new PickUp(4,"皮卡", 300, 500, 3)};

    System.out.println("欢迎使用嘀嗒租车系统");

    System.out.println("您是否需要租车:1是 0否");

    Scanner scanner = new Scanner(System.in);

    String input = scanner.next();

    if(input.equals("1")){

    System.out.println("您可以租赁车的类型和价目表如下");

    System.out.println("编号\t汽车名称\t租金\t载重量(kg)\t载人量(人)");

    for(Car car:cars){

    if(car instanceof  MiniCar){

    System.out.println(car.getNumber()+"\t\t"+car.getName()+"\t\t"+car.getRentPrice()+"\t\t"+"--"+"\t\t\t"+((MiniCar) car).getMannedCapacity());

    }else if(car instanceof PassengerCar ){

    System.out.println(car.getNumber()+"\t\t"+car.getName()+"\t\t"+car.getRentPrice()+"\t\t"+"--"+"\t\t\t"+((PassengerCar) car).getMannedCapacity());

    }else if(car instanceof Truck){

    System.out.println(car.getNumber()+"\t\t"+car.getName()+"\t\t"+car.getRentPrice()+"\t\t"+((Truck) car).getWeight()+"\t\t");

    }else{

    System.out.println(car.getNumber()+"\t\t"+car.getName()+"\t\t"+car.getRentPrice()+"\t\t"+((PickUp) car).getWeight()+"\t\t"+((PickUp) car).getMannedCapacity());

    }

    }

    System.out.println("请输入你要租赁车辆的编号:");

    int input2 = scanner.nextInt();

    switch (input2) {

    case  1:

    System.out.println("请输入要租赁的数量:");

    int num=scanner.nextInt();

    System.out.println("请输入要租赁的天数:");

    int days=scanner.nextInt();

    double total = cars[0].getRentPrice()*num*days;

    System.out.println("租赁信息如下:");

    System.out.println("编号:"+cars[0].getNumber()+"\t\t名称:"+cars[0].getName()+"\t\t租赁数量:"+num+"\t\t租赁天数:"+days+"/t/t可容纳:"+((MiniCar) cars[0]).getMannedCapacity()*num+"人/t/t总计:"+total);

    break;

    case  2:

    System.out.println("请输入要租赁的数量:");

    int num2=scanner.nextInt();

    System.out.println("请输入要租赁的天数:");

    int days2=scanner.nextInt();

    double total2 = cars[1].getRentPrice()*num2*days2;

    System.out.println("租赁信息如下:");

    System.out.println("编号:"+cars[1].getNumber()+"\t\t名称:"+cars[1].getName()+"\t\t租赁数量:"+num2+"\t\t租赁天数:"+days2+"/t/t可承重:"+((PassengerCar) cars[1]).getMannedCapacity()*num2+"kg/t/t总计:"+total2);

    break;

    case  3:

    System.out.println("请输入要租赁的数量:");

    int num3=scanner.nextInt();

    System.out.println("请输入要租赁的天数:");

    int days3=scanner.nextInt();

    double total3= cars[2].getRentPrice()*num3*days3;

    System.out.println("租赁信息如下:");

    System.out.println("编号:"+cars[2].getNumber()+"\t\t名称:"+cars[2].getName()+"\t\t租赁数量:"+num3+"\t\t租赁天数:"+days3+"/t/t可承重:"+((Truck) cars[2]).getWeight()*num3+"kg/t/t总计:"+total3);

    break;

    case  4:

    System.out.println("请输入要租赁的数量:");

    int num4=scanner.nextInt();

    System.out.println("请输入要租赁的天数:");

    int days4=scanner.nextInt();

    double total4 = cars[3].getRentPrice()*num4*days4;

    System.out.println("租赁信息如下:");

    System.out.println("编号:"+cars[3].getNumber()+"\t\t名称:"+cars[3].getName()+"\t\t租赁数量:"+num4+"\t\t租赁天数:"+days4+"\t\t可容纳:"+((PickUp) cars[3]).getMannedCapacity()*num4+"人\t\t"+"可载重:"+((PickUp) cars[3]).getWeight()*num4+"kg\t\t总计:"+total4);

    break;


    default:

    System.out.println("输入错误!请重新输入:");

    break;

    }

    }

    }


    }



    查看全部
  • 序列图

    用于按照交互发生的一系列顺序,显示对象之间的这些交互

    eg:

    https://img1.sycdn.imooc.com//5c243ab600011af104350278.jpg

    查看全部
    0 采集 收起 来源:UML 简介

    2018-12-27

  • 用例图 能够以可视化的方式 表达系统如何满足所收集的业务规则,以及特定的用户需求等信息 (用小人表示)

    查看全部
    0 采集 收起 来源:UML 简介

    2018-12-27

  • 1、用例图:

    2、序列图

    3、类图:表明类与类之间的关系

    UML建模工具

    Visio、Rational Rose 、 PowerDesign

    查看全部
    0 采集 收起 来源:UML 简介

    2018-12-27

  • 方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符

    查看全部
  • 外部类与内部类

    package com.Mooc5;

    /*

     *对于内部类与外部类;内部类可以直接调用访问外部类的数据,调用同名成员时需要使用  

     *外部类名.this.成员名  来完成;同时内部类的对象创建需要使用外部类的对象创建

     *格式:内部类 对象名=外部类对象名.new.内部类();

     *

     * 对于静态内部类而言,可以直接访问外部类中的所有静态成员,同名时使用 外部类名.成员名

     * 当需要调用外部类非静态成员时,就需要用 new 外部类名().变量名  来访问调用;

     * 静态内部类可以直接创建对象  类名 对象名=new 类名();

     */

    public class Souter {

    private int a=6;

    static int b=12;


    public void showlo() {

    System.out.println("这是外部 类中的方法!");

    }

    public class Inner {

    int b=2;

    public void show() {

    System.out.println("直接调用外部类:"+a);

    System.out.println("调用外部类中同名变量:"+Souter.this.b);

    System.out.println("直接调用内部类:"+b);

    Souter.this.showlo();//内部类直接调用外部类中的方法

    }

    }


    public static class SInner{

    int b=23;

    public void show() {

    System.out.println("静态内部类调用外部类中的静态同名变量:"+Souter.b);

    System.out.println("静态内部类调用外部类的非静态成员:"+new Souter().a);

    System.out.println("静态内部类调用自身类的变量:"+b);

    new Souter().showlo();//静态内部类调用外部类的非静态方法

    }

    }


    public static void main(String[] args) {

    // TODO Auto-generated method stub

    Souter s1=new Souter();//创建外部类对象

    Inner s2=s1.new Inner();//用外部类的对象创建内部类的对象;

    s2.show();//外部类不能直接调用内部类的方法和属性,必须先创建内部类的对象


    SInner s3=new SInner();

    s3.show();


    }


    }

    运行结果:

    直接调用外部类:6

    调用外部类中同名变量:12

    直接调用内部类:2

    这是外部 类中的方法!

    静态内部类调用外部类中的静态同名变量:12

    静态内部类调用外部类的非静态成员:6

    静态内部类调用自身类的变量:23

    这是外部 类中的方法!


    查看全部
  • 抽象类 ::::

    https://img1.sycdn.imooc.com//5c234e620001ebfb09000492.jpg

    查看全部
  • instanceof

    https://img1.sycdn.imooc.com//5c234cd30001f71b08310481.jpg

    查看全部
  • 类型转换:

    https://img1.sycdn.imooc.com//5c234b800001dd0708530463.jpg

    查看全部
  • 多态的类型:

    https://img1.sycdn.imooc.com//5c2349600001082d08470463.jpg

    查看全部
    0 采集 收起 来源:Java 中的多态

    2018-12-26

  • 对象名·属性,使用对象
    查看全部
  • equals()

    https://img1.sycdn.imooc.com//5c234337000109a108700512.jpg

    查看全部
  • toString()

    https://img1.sycdn.imooc.com//5c2342430001087d08390471.jpg

    查看全部
  • super

    https://img1.sycdn.imooc.com//5c2341d9000128c708500464.jpg

    查看全部

举报

0/150
提交
取消
课程须知
本课程是Java开发的基础,需要大家:掌握 Java 基本语法的使用。如果您是新手,建议先移步 《Java入门第一季》https://www.imooc.com/learn/85
老师告诉你能学到什么?
• 掌握 Java 编程思路 • 熟练运用面向对象程序设计思想
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!