博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 面向对象 之 接口 火车票实例
阅读量:6505 次
发布时间:2019-06-24

本文共 3699 字,大约阅读时间需要 12 分钟。

转载于 :

/**    接口的实际应用:    题目: 两个人A,B开发一个火车票显示功能A负责客户端, B负责服务器端    思路:        1. 抽象出类:             1.1 客户端显示类(Terminal)            1.2 服务器端服务类(TrainService)            1.3 火车票(Ticket)        2. 找出类关系:             2.1 客户端 调用 服务器端 的获取火车票信息显示                TrainService -> Terminal(调用)            2.2 服务器端 提供 火车票信息 给 客户端                 Ticket->TrainService(多对1) Ticket -> Terminal(多对多)        3. 找出类属性:            3.1 Ticket(车次,出发地,到达地,票价)            3.2 TrainService(火车站名称)            3.3 Terminal(代售点名称)        4. 找出类方法:             4.1 TrainService: 提供火车票信息 Ticket[] getTickets()            4.2 Terminal: 显示火车票信息 display()*/import java.util.Scanner;public class ApplyInterface {    public static void main(String[] args) {        //北京西站火车票服务器打开        TrainService beijingWestService = new BeijingWestTrainService("北京西站");        //北京站火车票服务器打开        TrainService beijingService = new BeijingTrainService("北京站");        //我是北京朝阳区大黄庄的 代售点        Terminal t = new Terminal("北京朝阳区大黄庄的 代售点");        Scanner in = new Scanner(System.in);        System.out.println("请输入要查的火车站代码 1:北京西站 2:北京站");        int trainId = in.nextInt();        if (trainId == 1) {            t.setTrainService(beijingWestService);        }        if (trainId == 2) {            t.setTrainService(beijingService);        }        //打开火车电脑终端 查看火车票信息        t.display();    }}class Ticket {    private String id;//车次    private String startCity;//出发城市    private String endCity;//到达城市    private float price;//票价    public Ticket(String id, String startCity, String endCity, float price) {        this.id = id;        this.startCity = startCity;        this.endCity = endCity;        this.price = price;    }    public String getId() {        return this.id;    }    public String getStartCity() {        return this.startCity;    }    public String getEndCity() {        return this.endCity;    }    public float getPrice() {        return this.price;    }}interface TrainService {    //A和B约定一个提供火车票的方法    public Ticket[] getTickets();    //获取火车站名字    public String getName();}class BeijingWestTrainService implements TrainService {    private String name;    public BeijingWestTrainService(String name) {        this.name = name;    }    public String getName() {        return this.name;    }    //提供火车票的实现方法    public Ticket[] getTickets() {        Ticket[] tickets = { new Ticket("T1", "北京", "长沙", 175f) };        return tickets;    }}class BeijingTrainService implements TrainService {    private String name;    public BeijingTrainService(String name) {        this.name = name;    }    public String getName() {        return this.name;    }    //提供火车票的实现方法    public Ticket[] getTickets() {        Ticket[] tickets = { new Ticket("T215", "北京", "吉林", 130f) };        return tickets;    }}class Terminal {    private String proxy;//代售点名称    private Ticket[] tickets;// 火车票引用    private TrainService trainService;// 服务器接口引用    public Terminal(String proxy) {        this.proxy = proxy;    }    public void setTrainService(TrainService trainService) {        this.trainService = trainService;    }    //显示火车票的信息    //  思路:    //      1. 首先要从服务器端 获取 火车票信息    //      2. 循环把火车票信息显示在电脑终端上    public void display() {        //获取火车票信息        tickets = trainService.getTickets();        //输出火车票信息        System.out.println(trainService.getName());        System.out.println("车次------出发地------到达地------票价");        if (tickets != null) {            for (int i = 0; i < tickets.length; i++) {                System.out.println(tickets[i].getId() + "------" + tickets[i].getStartCity() + "------" + tickets[i].getEndCity() + "------" + tickets[i].getPrice());            }        }    }}

转载于 :

转载于:https://blog.51cto.com/11842410/2163653

你可能感兴趣的文章
matlab里面连接器是什么,Oops - an error has occurred
查看>>
matlab建立桌面图标,在ubuntu16.04上创建matlab的快捷方式(实现方法)
查看>>
smarty使用php代码,笑谈配置,使用Smarty技术_php
查看>>
oracle数据实际值限制,c# – Oracle数据库TNS密钥“数据源”的值长度超过了’128’的限制...
查看>>
silk v3 decoder php,解码转换QQ微信的SILK v3编码音频为MP3或其他格式
查看>>
linux不能访问80端口,lunux开放80端口(本地访问不了linux文件可能是这个原因)...
查看>>
android单位转换小程序,微信小程序中rpx与rem单位转换
查看>>
ps切图教程 android,PS前端切图完整教程
查看>>
html显示服务器状态,显示服务器时间并一直显示(html代码)
查看>>
在线html代码优化,网站seo优化html代码方法
查看>>
HTML如何把输入框变成必填值,required输入框为必填项
查看>>
html定位有几种,POSITION定位有哪几种?各有什么特点?
查看>>
背锅侠逆袭之路
查看>>
演示:使用协议分析器取证IPv6的报文结构
查看>>
oracle 11gr2 rac中的4种IP解说
查看>>
为什么你找不到工作?
查看>>
20 个免费的 jQuery 的工具提示插件:
查看>>
汇编语言的应用
查看>>
device platform 相应的表
查看>>
php des 加密解密实例
查看>>