Java-如何在现有数组中插入用户输入位置

Java-如何在现有数组中插入用户输入位置,java,arrays,oop,input,Java,Arrays,Oop,Input,我对Java很陌生。我正在开发一个Java控制台应用程序,它有一个字段和一只青蛙在其中跳跃,用户通过2d数组中的输入来决定字段的大小(有点像一个棋盘,但区别在于用户决定字段应该有多大)。例如,用户以英尺为单位输入字段的高度,以英尺为单位输入字段的宽度。到目前为止,我已经设法做了一些类字段和类位置的工作,它从用户那个里获取输入并将其放在一个数组中(int[][]fieldsize) 类控制器: package project; public class Controller { publ

我对Java很陌生。我正在开发一个Java控制台应用程序,它有一个字段和一只青蛙在其中跳跃,用户通过2d数组中的输入来决定字段的大小(有点像一个棋盘,但区别在于用户决定字段应该有多大)。例如,用户以英尺为单位输入字段的高度,以英尺为单位输入字段的宽度。到目前为止,我已经设法做了一些类字段和类位置的工作,它从用户那个里获取输入并将其放在一个数组中(int[][]fieldsize)

类控制器:

package project;
public class Controller {

    public static void main( String[] args ) {
        Field field = new Field();
        Position position = new Position();
        }
  }
类别字段:

package project;

import java.util.Scanner;

public class Field{

    int y;
    int x;
    int[][] fieldsize;

    public Field() {
        Scanner scan = new Scanner(System.in);

         System.out
                 .println("Enter the size of the field in feets(width
        and length separated by space, x y):");
        x = scan.nextInt();
        y = scan.nextInt();

        int[][] fieldsize = new int[y][x];

        this.fieldsize= fieldsize;

    }

    public int[][] getFieldSize() {
        return fieldsize;
    }
}
我已设法将用户输入的字段大小“收集”到int[][]fieldsize数组中

现在我想询问用户青蛙的起始位置和航向,S(南)、N(北)、E(东)、W(西),然后将青蛙添加到字段中。例如,用户键入3 4 E。这应将青蛙置于位置[3][4]东(航向)。我如何解决这个问题

班级职务:

package project;

import java.util.Scanner;

public class Position {

           public Position() {
              int x;
              int y;
              String heading;
              Scanner scan = new Scanner(System.in);

                        System.out.println("Enter the starting position and heading for the frog, X Y and N, S, W or E position");
                        x = scan.nextInt();
                        y = scan.nextInt();
                        heading = scan.next(); 
                        //How do I put this inputs in the Field(fieldsize)?? So they get into this position in the field??


                        }

          }
这有点难以描述我的意思,但我希望你们能帮助我!
提前谢谢

好的。在开始编码之前,首先要考虑的是设计是什么。这样的问题通常出现在代码出现在设计之前

因此,第一个问题应该是: 我需要什么课程,每个课程都应该做什么,它们将如何互动

对象是包含属性和属性的自包含组件 使某种类型的数据有用所需的方法。物体的 属性是它所知道的,方法是它所能做的

例如-类
字段的对象可以做什么?它将如何与
位置
交互?我能用
位置做什么

然后开始设计类。确实不想读取构造函数中的用户输入。如果您希望明天从文件中获取输入,并在下个月从云端或语音中获取,该怎么办?甚至更糟的是,如果出现输入错误怎么办?对象的状态是什么

通常需要向构造函数提供创建对象所需的所有数据。构造函数不应该关心你从哪里得到它。您可以拥有一个
公共字段(intx,inty)
,并在阅读用户输入后在主类中调用它(我不是建议您拥有这个确切的构造函数,只是一个示例)

您可能希望将位置设置为
字段的方法(字段将包含位置)

或者使用
位置的移动方法
(您可以在球场上拥有任意多的位置)

或者你甚至可以得出结论,你根本不需要一个职位,而它只是这个领域的财产:

field.setCurrentX(x);
field.setCurrentY(y);

这里的设计真的取决于你。只需在编码之前进行设计。

谢谢您的回答,我将查看设计。
position.setField(field);
position.moveTo(x,y);
field.setCurrentX(x);
field.setCurrentY(y);