300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java用面向对象写吃货联盟 火星车(面向对象思想编程)

java用面向对象写吃货联盟 火星车(面向对象思想编程)

时间:2022-03-06 17:31:37

相关推荐

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进行判断

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。