2015-01-15 4 views
-1

У меня есть два класса: Game and ScoreBoard. Я хочу, чтобы экземпляр ScoreBoard создавался автоматически, когда я создаю экземпляр игры.java Создание экземпляра класса из конструктора другого класса

табло Конструктор выглядит следующим образом:

public void ScoreBoard(String player1, String player2) 
{ 
    p1Name = player1; 
    p2Name = player2; 
    p1Score = 0; 
    p2Score = 0; 
} 

и конструктор класса Game выглядит следующим образом:

public Game() 
{ 
    //irrelevant code redacted 
    ScoreBoard scores = new ScoreBoard(p1, p2); 
} 

при попытке компиляции, я получаю следующее сообщение:

не может найти символ - конструктор ScoreBoard (java.lang.String, java.lang.String)

ответ

5

Конструктор не имеет типа возврата. Удалите void.

public /* void */ ScoreBoard(String player1, String player2) 
+0

дать u +1 для объяснения причин? –

+1

@ KickButtowski, который уже был задан и ответил [здесь] (http://stackoverflow.com/questions/1788312/why-do-constructors-not-return-values) – fvu

+0

[JLS-8.8. Объявления конструктора] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.8), в котором говорится (частично) * «SimpleTypeName» в 'ConstructorDeclarator' должно быть простым именем класса, содержащего объявление конструктора; в противном случае возникает ошибка времени компиляции. Во всех других отношениях объявление конструктора выглядит так же, как объявление метода, которое не имеет результата ([§8.4.5] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-8. HTML # ПСБ-8.4.5)). * –

Смежные вопросы