我正在寫一個Tic-Tac-Toe程序,我試圖在驅動程序中使用該類中的「playOn」方法,我不確定我是如何使用公共變量(X和O)我已經定義使用該方法。這是假設在「單身」的設計。任何幫助表示讚賞。訪問公共對象變量
public class TTTPlayer {
public TTTPlayer X = new TTTPlayer('X');
public TTTPlayer O = new TTTPlayer('O');
private char symbol;
private Random gen;
private boolean playerTurn; // true for 'X', false for 'O'
private TTTPlayer(char ch) {
this.symbol = ch;
}
public void playOn(TTTBoard board) {
int row = gen.nextInt(2);
int col = gen.nextInt(2);
if (playerTurn) {
board.place(X, row, col);
playerTurn = false;
} else {
board.place(O, row, col);
playerTurn = true;
}
}
我會假設你完全像'board.place(X,row,col);'和'board.place(O,row,col);'。爲什麼X和O完全公開? –
那麼,爲了確保沒有其他的TTTPlayer實例被創建,我的老師指定構造函數爲private,並創建兩個實例X和O來公開,我不明白爲什麼,因爲它使它更難爲我使用它的方法。我不能在我的驅動程序中聲明TTTPlayer實例,因爲它是私有的,但我可以將其聲明爲如下的變量:「TTTPlayer player;」但我不能使用任何方法.. – user3377319
好吧......如果他們要成爲「公共」,那麼我會冒險猜測他們將被用在定義他們的類外的**之外。 –