如何在Java中公开此整数?

时间:2017-04-04 05:25:58

标签: java

我想将整数N设为公共,以便我可以在其他类中使用它。

public Board() {
    this(2);
}

public Board(int n) {

    do {
        Scanner scan = new Scanner(System.in);
        System.out.println("Minimum 1 players and Maximum 4 players.");
        System.out.print("How many players? ");
        n = scan.nextInt();
    }while(n > 4 || n < 1);

    Container contentPane = frame.getContentPane();
    contentPane.setLayout(new BorderLayout());

    frame.getContentPane().add(this, BorderLayout.CENTER);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(640, 520);
    frame.setVisible(true);
    new Thread(this).start();
    // r.start();

    pieces = new int[n];
    for (int i = 0; i < n; i++)
        pieces[i] = 1;

    dice = new Dice(this);
}

我尝试了许多尝试让N公开的事情,但是没有一个能够奏效。

感谢您的时间。

4 个答案:

答案 0 :(得分:2)

创建成员并使用getter访问它

public class Board {
    private int n;

    public Board(int n) {
        this.n = n;
        //...
    }

    public int getN() {
        return n;
    }
}

答案 1 :(得分:0)

编写类并添加标记为public的变量Integer。公共意味着它可以从任何类中访问。

class Example {
public Integer myValue;


}

但更好的方法是为变量使用getter和setter,并将变量标记为私有

class Example {
private Integer myValue;

public Integer getMyValue(){
return myValue;
}
public void setMyValue(Integer myValue){
this.myValue=myValue;
}
}

答案 2 :(得分:0)

在课堂上将整数公开为公开。甚至是静态公众。

class X {
  public int dice = 0;
  public static int DICE = 1;
  public int getDice(){return dice; }
  public static int getDICE(){return DICE; }
}

class Y {
 void x() {
   int v = X.DICE; // via static filed
   int w = new X().dice; // via public field
   int x = new X().getDice(); // via public Method
   int a = X.getDICE(); // via static method
 }
}

答案 3 :(得分:0)

我想我理解你的问题,你需要引入一个成员变量。 Java中的成员变量不应公开(C#略有不同)。在Java中,您使成员变量不公开,并通过getter方法公开它们。我在你的问题中理解&#39; n&#39;代表玩家的数量,所以我创建了'numPlayers&#39;成员变量并添加了一个&#39; getNumPlayers()&#39;方法

由于您有两个构造函数具有大致相同的初始化代码,因此我为要共享的构造函数创建了一个init()方法。没有参数的构造函数默认为2个玩家。带有参数的构造函数允许您指定玩家的数量,但如果没有提供1到4之间的玩家数量,那么它会一直询问您新的玩家数量。

请查看此答案,看看它是否符合您的要求。

public class Board {

   private int numPlayers;


   public Board(int n) {
       while (n < 1 || n > 4) {
           Scanner scan = new Scanner(System.in);
           System.out.println("Minimum 1 players and Maximum 4 players.");
           System.out.print("How many players? ");
           n = scan.nextInt();
       }
       init(n);
   }


   public Board() {
      init(2);
   }


   public int getNumPlayers() {
      return this.numPlayers;
   }

   private init(int n) {
       this.numPlayers = n;
       Container contentPane = frame.getContentPane();
       contentPane.setLayout(new BorderLayout());

       frame.getContentPane().add(this, BorderLayout.CENTER);
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setSize(640, 520);
       frame.setVisible(true);
       new Thread(this).start();
       // r.start();

       pieces = new int[n];
       for (int i = 0; i < n; i++)
           pieces[i] = 1;

       dice = new Dice(this);
   }
}

克里斯