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用面向对象写吃货联盟,火星车(面向对象思想编程)相关推荐

  1. java订餐系统_Java——吃货联盟订餐系统

    public static voidmain(String[] args) { String[] names= new String[4]; //订餐人姓名 String[] dishMegs = n ...

  2. Java面向对象 --- 吃货联盟订餐系统(完整版)

    文章目录 为什么使用面向对象 划分类 代码编写 为什么使用面向对象 Java面向对象版本的吃货联盟订餐系统: 因为基础版本都在一个类中实现的功能,太过于麻烦,不清楚 ,所以说我们利用面向对象制作吃货联 ...

  3. 2207.16吃货联盟设计大纲和全部代码

    吃货联盟项目 数据主体: 1.我要点餐: 姓名.菜名(提前预置).时间(10-20).地点 2.查看餐袋(订单) 编号.编号名.分数.总价.地址.状态 3.签收订单 4.删除订单 5.点赞 菜品信息 ...

  4. 用Java面向对象的方法重写“吃货联盟订餐系统”

    该系统实现的功能: 我要订餐 查看餐袋 签收订单 删除订单 我要点赞 退出系统 实体类的定义: Dishes.java package com.xk.entity;/*** 菜品类**/public ...

  5. 刚刚开始学习java,自己慢慢写了最基础的吃货联盟

    package com.fengqing.test01;//包文件名称import java.util.Scanner;//调用scanner工具包public class Test {//类文件名称 ...

  6. java编程 吃货联盟订餐系统

    最近呢,奥密克绒出现了,疫情防控严格起来了,我的线下Java程序课程暂时改成了线上了,这两天上了面向对象,对于零基础的我来说还是比较难的,唉 只能说这个进程的速度我来不及消化,趁着周五复习一下也是很老 ...

  7. 以吃货联盟初级改版为例,(面向对象初级程序设计模拟网上点餐控制台程序(第一版未使用工具辅助类)。

    面向对象最初级程序设计思维:设计过程与抽象过程,(类是对象的模板与抽象,是具有相同属性和方法的一组对象的集 合,对象是类的实体,由属性与行为共同组成一个具体的实体.) 类与对象的关系:类是对象抽象,对 ...

  8. 泡椒java_吃货联盟 源代码 Java初级小项目

    今天给大家一个小的项目:吃货联盟订餐系统.项目功能也很简单:只是模拟日常的订餐流程呦,所以有错误以及功能不完善的地方大家多多包涵 O(∩_∩)O哈哈~ 首先,先展示下代码功能,代码也不是很多,就200 ...

  9. java吃货联盟app讲解_java吃货联盟订餐系统

    ackage cn.practice1200; import java.util.Scanner; public class Eater_Alliance { /** * 吃货联盟订餐系统 * * @ ...

最新文章

  1. 计算机网络分为两大阶段,【多选题】计算机网络的发展分为哪些阶段?() A. 远程终端联机阶段 B. 计算机网络阶段 C. 计算机网络互联阶段 D. 信息高速公路阶段...
  2. mysql 第一天_MySQL第一天
  3. ionic4中的手势事件
  4. 第三十九期:原生图数据库的15条规则
  5. 百科知识 已知三角形三条边长,如何求解三角形的面积
  6. 鼠标模拟器,减轻你的重复操作!
  7. JavaScript知识整理(一)——W3school
  8. jtopo 折叠与展开子节点
  9. b站python up主_python爬取B站up主全部视频封面
  10. 向量交点坐标公式_直线的交点坐标与距离公式
  11. sofelf转jic
  12. Provision not found. A provision is required for deploying your app to the device. 解决方案
  13. Mac 打造开发工作环境
  14. 三种页面置换算法(详解)
  15. 凌晨三点半,见证中国奥运体育代表团的第30和31块金牌!
  16. 《python密码学编程》笔记
  17. 重构之美-浴火重生的火凤凰CSS3【前传:Gradient】
  18. 容器(docker)
  19. 爱心 python 词云_爱心 python 词云_python 词云
  20. JS模块化的'前世今生'

热门文章

  1. [JZOJ1901] 【2010集训队出题】光棱坦克
  2. java comm api_java基于RXTXcomm.jar的串口通信
  3. [渝粤教育] 山东体育学院 体育教学论 参考 资料
  4. VTK 学习----VTK对象绘制-点(vtkPoints、vtkSphereSource)、线(vtkLine、vtkLineSource)
  5. 网站空间服务器100m,网站100m空间
  6. 微信小程序获取用户信息“授权失败”场景的处理
  7. 9.1 了解导航窗格
  8. 火狐安全软件Huohong
  9. int 字节在32位 64位系统的区别
  10. maven加载本地jar包,无法将本地jar包打进项目