java用面向对象写吃货联盟,火星车(面向对象思想编程)
1,Test类,可以进行单个命令,也可以进行多个命令
package com.dayuanit.MarsCar.test;
import com.dayuanit.MarsCar.Car.MarsCar;
public class Test {
public static void main(String[] args) {
String order = "w";
MarsCar ms = new MarsCar("haha");
//ms.process("w");
ms.processes("w", "s", "d", "g");
}
}
D:\java312\MarsCar\MarsCarMyselt>javac -d classes src/*.java
D:\java312\MarsCar\MarsCarMyselt>java -cp .;classes com.dayuanit.MarsCar.test.Te
st
w
0 1
s
0 0
d
1 0
g
1 0
2,MarsCar类
package com.dayuanit.MarsCar.Car;
import com.dayuanit.MarsCar.map.Point;
import com.dayuanit.MarsCar.auto.Engine;
import com.dayuanit.MarsCar.factory.EngineFactory;
public class MarsCar {
private String name;
private Point point;
private Engine engine;
public MarsCar() {
}
public MarsCar(String name) {
this.name = name;
this.point = new Point();
}
public void processes(String ... orders) {
for(String order:orders) {
process(order);
}
}
public void process(String order) {
System.out.println(order);
EngineFactory enginefactory = new EngineFactory();
engine = enginefactory.creatEngine(order);
if(null !=engine) {
engine.move(point);
}
System.out.println(point.getXpoint()+ " " + point.getYpoint());
}
}
3.MarsMap类
package com.dayuanit.MarsCar.map;
import com.dayuanit.MarsCar.map.Point;
public class MarsMap{
public static final int MAX_xpoint = 9;
public static final int MIN_xpoint = 0;
public static final int MAX_ypoint = 9;
public static final int MIN_ypoint = 0;
public static boolean checkMaxYpoint(Point point) {
return MAX_ypoint > point.getYpoint() + 1;
}
public static boolean checkMinYpoint(Point point) {
return MIN_ypoint <= point.getYpoint() - 1;
}
public static boolean checkMaxXpoint(Point point) {
return MAX_xpoint > point.getYpoint() + 1;
}
public static boolean checkMinXpoint(Point point) {
return MIN_xpoint <= point.getYpoint() - 1;
}
}
4,Point类
package com.dayuanit.MarsCar.map;
public class Point {
private int xpoint;
private int ypoint;
public Point() {
}
public Point(int xpoint, int ypoint) {
this.xpoint = xpoint;
this.ypoint = ypoint;
}
public void setXpoint(int xpoint) {
this.xpoint = xpoint;
}
public int getXpoint() {
return xpoint;
}
public void setYpoint(int ypoint) {
this.ypoint = ypoint;
}
public int getYpoint() {
return ypoint;
}
}
5,Engine类
package com.dayuanit.MarsCar.auto;
import com.dayuanit.MarsCar.map.Point;
public abstract class Engine {
public abstract void move(Point point);
}
6,ForwardEngine类
package com.dayuanit.MarsCar.auto;
import com.dayuanit.MarsCar.map.MarsMap;
import com.dayuanit.MarsCar.map.Point;
public class ForwardEngine extends Engine {
public static final String ORDER = "w";
public void move(Point point) {
if(MarsMap.checkMaxYpoint(point)) {
point.setYpoint(point.getYpoint() + 1);
}
}
}
7,BackEngine类
package com.dayuanit.MarsCar.auto;
import com.dayuanit.MarsCar.map.MarsMap;
import com.dayuanit.MarsCar.map.Point;
public class BackEngine extends Engine {
public static final String ORDER = "s";
public void move(Point point) {
if(MarsMap.checkMinYpoint(point)) {
point.setYpoint(point.getYpoint() - 1);
}
}
}
8,LeftEngine类
package com.dayuanit.MarsCar.auto;
import com.dayuanit.MarsCar.map.MarsMap;
import com.dayuanit.MarsCar.map.Point;
public class LeftEngine extends Engine {
public static final String ORDER = "a";
public void move(Point point) {
if(MarsMap.checkMinXpoint(point)) {
point.setXpoint(point.getXpoint() -1);
}
}
}
9,RightEngine类
package com.dayuanit.MarsCar.auto;
import com.dayuanit.MarsCar.map.MarsMap;
import com.dayuanit.MarsCar.map.Point;
public class RightEngine extends Engine {
public static final String ORDER = "d";
public void move(Point point) {
if(MarsMap.checkMaxXpoint(point)) {
point.setXpoint(point.getXpoint() + 1);
}
}
}
10,EngineFactory类
package com.dayuanit.MarsCar.factory;
import com.dayuanit.MarsCar.auto.ForwardEngine;
import com.dayuanit.MarsCar.auto.BackEngine;
import com.dayuanit.MarsCar.auto.LeftEngine;
import com.dayuanit.MarsCar.auto.RightEngine;
import com.dayuanit.MarsCar.auto.Engine;
public class EngineFactory {
public Engine creatEngine(String order) {
Engine engine = null;
if(ForwardEngine.ORDER.equals(order)) {
engine = new ForwardEngine();
}
if(BackEngine.ORDER.equals(order)) {
engine = new BackEngine();
}
if(LeftEngine.ORDER.equals(order)) {
engine = new LeftEngine();
}
if(RightEngine.ORDER.equals(order)) {
engine = new RightEngine();
}
return engine;//返回engine到MarsCar进行判断
}
}
java用面向对象写吃货联盟,火星车(面向对象思想编程)相关推荐
- java订餐系统_Java——吃货联盟订餐系统
public static voidmain(String[] args) { String[] names= new String[4]; //订餐人姓名 String[] dishMegs = n ...
- Java面向对象 --- 吃货联盟订餐系统(完整版)
文章目录 为什么使用面向对象 划分类 代码编写 为什么使用面向对象 Java面向对象版本的吃货联盟订餐系统: 因为基础版本都在一个类中实现的功能,太过于麻烦,不清楚 ,所以说我们利用面向对象制作吃货联 ...
- 2207.16吃货联盟设计大纲和全部代码
吃货联盟项目 数据主体: 1.我要点餐: 姓名.菜名(提前预置).时间(10-20).地点 2.查看餐袋(订单) 编号.编号名.分数.总价.地址.状态 3.签收订单 4.删除订单 5.点赞 菜品信息 ...
- 用Java面向对象的方法重写“吃货联盟订餐系统”
该系统实现的功能: 我要订餐 查看餐袋 签收订单 删除订单 我要点赞 退出系统 实体类的定义: Dishes.java package com.xk.entity;/*** 菜品类**/public ...
- 刚刚开始学习java,自己慢慢写了最基础的吃货联盟
package com.fengqing.test01;//包文件名称import java.util.Scanner;//调用scanner工具包public class Test {//类文件名称 ...
- java编程 吃货联盟订餐系统
最近呢,奥密克绒出现了,疫情防控严格起来了,我的线下Java程序课程暂时改成了线上了,这两天上了面向对象,对于零基础的我来说还是比较难的,唉 只能说这个进程的速度我来不及消化,趁着周五复习一下也是很老 ...
- 以吃货联盟初级改版为例,(面向对象初级程序设计模拟网上点餐控制台程序(第一版未使用工具辅助类)。
面向对象最初级程序设计思维:设计过程与抽象过程,(类是对象的模板与抽象,是具有相同属性和方法的一组对象的集 合,对象是类的实体,由属性与行为共同组成一个具体的实体.) 类与对象的关系:类是对象抽象,对 ...
- 泡椒java_吃货联盟 源代码 Java初级小项目
今天给大家一个小的项目:吃货联盟订餐系统.项目功能也很简单:只是模拟日常的订餐流程呦,所以有错误以及功能不完善的地方大家多多包涵 O(∩_∩)O哈哈~ 首先,先展示下代码功能,代码也不是很多,就200 ...
- java吃货联盟app讲解_java吃货联盟订餐系统
ackage cn.practice1200; import java.util.Scanner; public class Eater_Alliance { /** * 吃货联盟订餐系统 * * @ ...
最新文章
- 计算机网络分为两大阶段,【多选题】计算机网络的发展分为哪些阶段?()
A. 远程终端联机阶段 B. 计算机网络阶段 C. 计算机网络互联阶段 D. 信息高速公路阶段...
- mysql 第一天_MySQL第一天
- ionic4中的手势事件
- 第三十九期:原生图数据库的15条规则
- 百科知识 已知三角形三条边长,如何求解三角形的面积
- 鼠标模拟器,减轻你的重复操作!
- JavaScript知识整理(一)——W3school
- jtopo 折叠与展开子节点
- b站python up主_python爬取B站up主全部视频封面
- 向量交点坐标公式_直线的交点坐标与距离公式
- sofelf转jic
- Provision not found. A provision is required for deploying your app to the device. 解决方案
- Mac 打造开发工作环境
- 三种页面置换算法(详解)
- 凌晨三点半,见证中国奥运体育代表团的第30和31块金牌!
- 《python密码学编程》笔记
- 重构之美-浴火重生的火凤凰CSS3【前传:Gradient】
- 容器(docker)
- 爱心 python 词云_爱心 python 词云_python 词云
- JS模块化的'前世今生'
热门文章
- [JZOJ1901] 【2010集训队出题】光棱坦克
- java comm api_java基于RXTXcomm.jar的串口通信
- [渝粤教育] 山东体育学院 体育教学论 参考 资料
- VTK 学习----VTK对象绘制-点(vtkPoints、vtkSphereSource)、线(vtkLine、vtkLineSource)
- 网站空间服务器100m,网站100m空间
- 微信小程序获取用户信息“授权失败”场景的处理
- 9.1 了解导航窗格
- 火狐安全软件Huohong
- int 字节在32位 64位系统的区别
- maven加载本地jar包,无法将本地jar包打进项目