【问题标题】:How do I declare a point as one of an objects arguements?如何将点声明为对象参数之一?
【发布时间】:2018-10-08 15:19:38
【问题描述】:

我被要求创建一个机器人对象,然后移动它并跟踪它 使用 java 的 awt.point 类。我相信我可能完全错误地使用了这个点类,需要你的帮助。谢谢!这是主要和类代码。 //Main - 尝试创建点时出错!类代码从导入开始。只是想知道我是否正在使用私有点对象作为实例变量进行构造函数。感谢所有反馈!

public class RobotDirections
{

    public static void main(String[] arg){
        Robot Craig = new Robot((0,0), 1) ;
    }
}
import java.awt.Point ;
public class Robot
{
    private int directionFacing ;
    private Point robot = new Point() ;
    //North East South West
    private String N_E_S_W_ ;
    int X = 0 ;
    int Y = 0 ;

    public Robot(Point robot , int directionFacing){
        this.directionFacing = 1 ;
        this.robot = robot ;
     }

    public void turnLeft(){
        if(directionFacing == 1 ){
            directionFacing = 5 ;
    }
    else if(directionFacing == 2 ){
        directionFacing = 2 ;
    }
    else if(directionFacing == 3 ){
        directionFacing = 3 ;
    }
    else if(directionFacing == 4 ){
        directionFacing = 4 ;
    }
    directionFacing-- ; 
}

public void turnRight(){
    if(directionFacing == 4 ){
        directionFacing = 0 ;
    }
    else if(directionFacing == 1 ){
        directionFacing = 1 ;
    }
    else if(directionFacing == 2 ){
        directionFacing = 2 ;
    }
    else if(directionFacing == 3 ){
        directionFacing = 3 ;
    }
    directionFacing++ ;
}

public void move(){
    if(directionFacing == 1){
         robot.setLocation(X, Y++) ; 
    }
    else if(directionFacing == 2){
        robot.setLocation(X, Y) ;
    }
    else if(directionFacing == 3){
        robot.setLocation(X, Y--) ;
    }
    else if(directionFacing == 4){
        robot.setLocation(--X,Y) ;
    }
}

public Point getLocation(){
    return robot ;
}

public String getDirection(){
    if(directionFacing == 1){
        N_E_S_W_ = "N" ;
    }
    else if(directionFacing == 2){
        N_E_S_W_ = "E" ;
    }
    else if(directionFacing == 3){
        N_E_S_W_ = "S" ;
    }
    else if(directionFacing == 4){
        N_E_S_W_ = "W" ;
    }
    return N_E_S_W_  ;    
} 
}

【问题讨论】:

  • 请访问tour 网站 - 请注意,不允许这样的“民意调查”。请edit 用事实、参考资料等回答这个问题。
  • 请重新打开这个问题

标签: java


【解决方案1】:

java.awt.Point 是 Java 的 Abstract Window Toolki 的一部分,用于 GUI 编程。因此,您正在滥用它,这是不鼓励的,但它会起作用。 为什么不创建自己的机器人位置类?

其他一些观察:当您将相同的值重新分配给变量时,您可以缩短很多方法。例如

public void turnLeft(){
    if (directionFacing == 1) {
        directionFacing = 5;
    }
    directionFacing--; 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多