zoukankan      html  css  js  c++  java
  • Java实例——简单的汽车销售4S店

    技术关键:
    多态:面向对象程序设计的基本特征之一。
    Java中的多态主要是通过重写父类(或接口)中的方法来实现的。
     
    实现过程:
    1.编写Car类,该类是一个抽象类,定义了一个抽象方法getInfo( )。
    package test;
    public abstract class Car {
        public abstract String getInfo();    //用来描述汽车的信息
    }

    2.编写BMW类,该类继承自Car并实现getInfo( )方法。

    1 package test;
    2 public class BMW extends Car {
    3     @Override
    4     public String getInfo() {
    5         // TODO Auto-generated method stub
    6         return "BMW";
    7     }
    8 }
    3.编写Benz类,该类继承自Car并实现getInfo( )方法。
    1 package test;
    2 public class Benz extends Car{
    3     @Override
    4     public String getInfo() {
    5         return "Benz";
    6     }
    7 }

    4.编写CarFactory类,该类定义了一个静态方法getCar( ),它可以根据用户指定的车型来创建对象。

     1 package test;
     2 public class CarFactory {
     3     public static Car getCar(String name) {
     4         if (name.equalsIgnoreCase("BMW")) {          //如果需要BMW,则创建BMW对象
     5             return new BMW();
     6         } else if (name.equalsIgnoreCase("Benz")) {    //如果需要Benz,则创建Benz对象
     7             return new Benz();
     8         } else {
     9             return null;                            //暂时不支持其他车型
    10         }
    11     }
    12 }

    5.编写Customer类用来进行测试。在main()方法中,根据用户需要提取不同的汽车。

     1 package test;
     2 public class Customer {
     3     public static void main(String[] args) {
     4         // TODO Auto-generated method stub
     5         System.out.println("顾客需要购买BMW");
     6         Car bmw = CarFactory.getCar("BMW");
     7         System.out.println("提取汽车:" + bmw.getInfo());
     8         System.out.println("顾客需要购买Benz");
     9         Car benz = CarFactory.getCar("Benz");
    10         System.out.println("提取汽车:" + benz.getInfo());
    11     }
    12 }
    输出如下图所示:

    小结:

        本实例实现了设计模式中的简单工厂模式,该模式将创建对象的过程放在了一个静态方法中来实现。实际编程中,如果需要创建大量对象,使用该模式比较理想。当4S店支持新的车型时,只需要修改CarFactory类进行增加即可,对其他类不需要修改。
  • 相关阅读:
    Delphi下Treeview控件基于节点编号的访问
    oracle的conn / as sysdba是以sys还是system用户登录呢?
    delphi 字母加数字如何自增??比如0A--0Z,1A--1Z一直到9A--9Z 请赐教
    ORACLE_HOME要怎么配置?
    sqlplus / as sysdba 详解
    oracle 11G数据库实例增加内存
    SQL在字符串中取出最长数字子序列
    delphi 全局变量的定义与初始化赋值
    Delphi公用函数单元
    Dapper的正确使用姿势
  • 原文地址:https://www.cnblogs.com/luckyliulin/p/8983481.html
Copyright © 2011-2022 走看看