Почему значение clowns
равно 0
для ниже?Почему мой конструктор не создает экземпляр переменной?
Если я печатаю numOfDecks
, он печатает 3
, как и ожидалось.
public class CardSet {
private static int numOfDecks;
char suits [] = {'a','s','h','c'};
char ranks [] = {'A','2','3','4','5','6','7','8','9','T','J','Q','K'};
public CardSet(int number){
if (number > 0) {
this.numOfDecks = number;
}
else this.numOfDecks = 3;
}
public static int getNumOfDecks(){
return numOfDecks;
}
static int clowns = numOfDecks;
public static void main (String [] args){
CardSet cards = new CardSet(3);
System.out.println(clowns); //prints out 0
System.out.println(numOfDecks); // prints out 3
}
Я немного изменил код на основе ваших предложений, однако его все еще не работает для меня. – summerNight
@summerNight: пожалуйста, не перекладывайте требования на нас, так как это затрудняет ответы на вопросы. Но на ** новый ** вопрос отвечает, проверяя, когда вы устанавливаете значение клоунов: оно выполняется при времени объявления переменной, которое равно ** до того, как был вызван конструктор. Поэтому неудивительно, что он использует начальное значение numberOfDecks. –
И статический, статический, статический. – chrylis