2011-12-26 5 views
-3

두 클래스를 만들었습니다. 첫 번째 클래스는 클래스이고 두 번째 클래스는 Bag 클래스입니다. 내가 원하는 건 main()에있는 플레이어의 점수를 인쇄하는 것입니다. Bag에서 점수를 계산하고 Player에 설정하고 싶습니다. 나는이 코드를 사용하여 점수를 인쇄하려고하지만 난 못해 주에서클래스에서 값을 설정할 수 없습니다.

public class Player { 

public Player() { 
} 

private String name; 
private int score; 

public Player(String name, int score) { 
    this.name = name; 
    this.score = score; 
} 
public String getName() { 
    return name; 
} 

public void setScore(int score) { 
    this.score = score; 
} 

public int getScore() { 
    return score; 
} 

() :이

public void count(int number) 
{ ............. 
    scr=k*2;//gives an int 
    setScore(scr);//set the score in Player class 
} 

선수상 Bag 클래스의 일부이다

Player p=new Player(); 
System.out.println(p.getScore()); 

내게는 을 반환합니다 (기본 구걸로 설정 한 것입니다)
나는 understan 내가하고 싶은 말.

+0

어디에서 설정 하시겠습니까? 플레이어를 만들어서 인쇄하면됩니다. – roni

+1

질문과 대답 사이트입니다. 당신은 질문을하고 대답합니다. 질문의 정의 특징은 물음표 ('?', 대부분의 키보드에서 ASCII 코드 0x3F, 오른쪽 시프트 키 바로 옆에서 찾을 수 있음)로 끝나는 것입니다. –

답변

1

이 작업을 수행하려면 Bag 클래스에 Player 클래스에 대한 참조가 있어야합니다. 그래서 본질적으로 플레이어와 가방은 아래의 패턴

class Bag 
{ 
    private Player p; 

    public void setPlayer(Player pp) 
    { 
    p=pp; 
    } 

    public Player getPlayer() 
    { 
    return p; 
    } 

public void count(int number) 
{ 
    scr=k*2;//gives an int 
    p.setScore(scr);//set the score in Player class 
} 
} 

그리고 당신의 주요 방법

Player p=new Player(); 
Bag b=new Bag(); 
b.setPlayer(p); 
b.count(5); 
System.out.println(p.getScore()); 
+0

완벽하게 작동합니다! 덕분에 많이 !! – nick

2

특정 플레이어의 점수를 설정하려면에 setScore으로 전화해야합니다. 예를 들어 playerPlayer 유형의 변수

public void count(int number) 
{ 
    scr = k * 2; 
    player.setScore(scr); 
} 

. 새로운 플레이어의 점수가 여전히 인쇄 할 필요가 0이기 때문에,

Player p=new Player(); 
System.out.println(p.getScore()); 

여전히 0을 출력 할 것이다하십시오 새로운 플레이어의 점수에 영향을주지 않습니다 그러나

, count 내에 점수를 설정 한 플레이어의 점수를 지우십시오.

나머지 응용 프로그램의 의미를 모르기 때문에 자세한 정보를 제공하기는 어렵지만 각 플레이어가 독립적 인 점수를 가지고 있다고 가정 할 경우 의 점수를 생각해야합니다. count 메소드에서 변경하려고합니다.

0

변경하십시오.

public void count(int number) 
{ 
    Player p=new Player(); 
    scr=k*2;//gives an int 
    p.setScore(scr);//set the score in Player class 
} 
+0

여전히 0을 반환합니다. – nick

+0

설명하기 어렵습니다. 전체 애플리케이션을 관찰하지 않아도됩니다. – Lion

0

서로 다른 클래스를 따르도록 코드를 변경해야합니다, 당신은 가방 클래스의 몇 가지 계산을한다고 가정하는 것입니다 플레이어 클래스를 참조하고 그 값은 플레이어 클래스에서 필요합니다, 가방 클래스는 플레이어 참조가 필요합니다. 그래서 당신은 두 클래스 모두에서 약간의 변화를 할 필요가 있습니다.

변화 카운트 방법으로서 추천

공개 공극 수 (플레이어 P, INT 번호) {.........
SCR 아래 = K * 2] // int p를 준다.setScore (SCR)는, 플레이어 // 클래스}

의 점수 등을 설정하고

아래 플레이어 (P) = 새로운 플레이어()로 주요 방법을 변경; 가방 b = 새 가방(); b.count (p, 5); System.out.println (p.getScore());

관련 문제