2015-01-15 5 views
-1

두 개의 클래스 인 Game and ScoreBoard가 있습니다. Game 인스턴스를 만들 때 ScoreBoard의 인스턴스가 자동으로 생성되기를 원합니다.java 다른 클래스의 생성자에서 클래스의 인스턴스 만들기

스코어 보드 생성자는 다음과 같습니다

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

과 게임 클래스의 생성자는 다음과 같습니다

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

이유를 설명하는 데 +1을 주겠습니까? –

+1

@KickButtowski는 이미 질문을 받았고 [여기] (http://stackoverflow.com/questions/1788312/why-do-constructors-not-return-values) – fvu

+0

[JLS-8.8. Constructor Declarations] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.8) (부분적으로) * 'ConstructorDeclarator'의'SimpleTypeName ' 생성자 선언을 포함하는 클래스의 단순한 이름이어야합니다. 그렇지 않으면 컴파일 타임 오류가 발생합니다. 다른 모든면에서 생성자 선언은 결과가없는 메소드 선언과 비슷합니다 ([§8.4.5] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-8). html # jls-8.4.5)). * –

관련 문제