首页 > 其他分享 >11月7每日打卡

11月7每日打卡

时间:2023-11-06 09:25:31浏览次数:39  
标签:11 每日 Vehicle void vehicle new 打卡 public Road

用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。

源码:

//Road.java
package shiyan9;

public abstract class Road {
protected Vehicle vehicle;
public void setVehicle(Vehicle ve) {
this.vehicle=ve;
}
public abstract void drive();
}
//Shuini.java
package shiyan9;

public class Shuini extends Road{
public void drive() {
vehicle.run();
System.out.println("行驶在水泥路");
}
}
//Liqing.java
package shiyan9;

public class liqing extends Road{
public void drive() {
vehicle.run();
System.out.println("行驶在沥青路");
}
}
//Vehicle.java
package shiyan9;

public interface Vehicle {
public void run();
}
//Bus.java
package shiyan9;

public class Bus implements Vehicle{
@Override
public void run() {
System.out.print("Bus");
}
}
//Car.java
package shiyan9;

public class Car implements Vehicle{
@Override
public void run() {
System.out.print("Car");
}
}
//Main.java
package shiyan9;

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Vehicle vehicle = null;
Road road = null;
System.out.println("请选择:1、Car/水泥路 2、Car/沥青路 3、Bus/水泥路 4、Bus/沥青路");
Scanner input=new Scanner(System.in);
int i=input.nextInt();
if(i==1) {
vehicle=(Vehicle)new Car();
road=(Road)new Shuini();
}else if(i==2) {
vehicle=(Vehicle)new Car();
road=(Road)new liqing();
}else if(i==3){
vehicle=(Vehicle)new Bus();
road=(Road)new Shuini();
}else if(i==4) {
vehicle=(Vehicle)new Bus();
road=(Road)new liqing();
}else {
System.out.println("输入无效!");
}
road.setVehicle(vehicle);
road.drive();
}
}

标签:11,每日,Vehicle,void,vehicle,new,打卡,public,Road
From: https://www.cnblogs.com/yunbianshangdadun/p/17811800.html

相关文章

  • 11月4每日打卡
    实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图; 2.......
  • 11.6日记
    继承是面向对象的三大特性之一,但很多时候使用继承的结果却不尽如人意。除了人尽皆知的紧耦合问题外,有的时候还会导致子类的快速膨胀。设想这样一个场景:最初设计的时候有一个类型Product,但后来随着新需求的出现,X原因导致了它的变化,X有两种情况,则通过继承需要创建两个新的子类Produc......
  • 11.5
    11.5printf和scanf介绍占位符在scanf和printf中可以使用,意思是这个位置是有占位符占用,可以在双引号时候使用逗号分隔开需要替换的值,其与占位符一一对应"%d%c%d",21,a,22--->21a22常用占位符列举%a:⼗六进制浮点数,字⺟输出为⼩写%A:六进制浮点数,字⺟输出为⼤写%c:字符%d:⼗......
  • 11月2号
    今天上完数据结构课后留了三道力扣上的题目,我在今天完成了前两道题目。今天上完课后去科技楼开会,开完会走的时候还碰上了王建民老师,还说我们晚上有点闲,要给我们找活干,我们可一点也不闲啊...... 94题:二叉树的中序遍历/***Definitionforabinarytreenode.*structTr......
  • 11月3号
    今天完成了力扣最后一道作业,并开始忙碌学生会的各项工作。226题:翻转二叉树/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}......
  • 2023/11/5 <div>标签的介绍
    <div>标签是用来为HTML文档的内容提供结构和背景的元素。<div>开始标签和</div>结束标签之间的所有内容都是用来构成这个快的,其中所包含标签的特性由<div>标签中的属性来控制,或者通过使用样式表格式化这个表来进行控制。 div全称division,意为分割.<div>标签被称为分割标签,表示......
  • test20231103
    T1还算是一道简单题,通过二分可以轻松求解。(但是我因为没有判断左端点挂了\(10pts\),不然我就是本场比赛的\(rk1\)了)虽然题解上说单调性是错误的,但是而二分能过,那就二分水过去吧。intn,k;inta[2050];boolvis[2050];inlineintwork(intx){memset(vis,0,sizeof......
  • B站C语言第11课——函数和递归
    1.工具cpulspuls.com  程序员知乎:stackoverflow.com232.递归——程序调用自身的编程技巧称为递归史上最简单的递归intmain(){ printf("hehe\n"); main(); return0;}递归常见的错误:栈溢出——例子1:#include<stdio.h>voidprintf(intn){if(n>9){print(n/10);}pr......
  • 2023/11/5
    HDFS分布式文件系统传统的网络文件系统(NFS)文件存储在单机上,无法提供可靠性暴躁。很多客户端同时访问NFSServer时,容易造成服务器压力。对文件修改时,得先同步到本地。在未同步到服务端之前,其他客户端是不可见的。HDFS设计原则设计目标存储非常大的文件:指的是几百......
  • 每日总结
    今日收获今天考了软考的考试,感觉并不难,希望能称心如意吧~~~明天预计上课,做软件设计实验报告,希望顺利呀~~~人机交互实验,同样希望顺利;打算今晚将调研报告的格式弄出来,然后打印出来;......