我想将整数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公开的事情,但是没有一个能够奏效。
感谢您的时间。
答案 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);
}
}
克里斯