2011-12-26 51 views
-3

我做了两个类。第一个是Player班,第二个是Bag。我想要的是在main()中打印玩家的分数。在Bag中,我计算分数,我想将它设置在Player。这是Bag类的一部分我不能在一个类中设置一个值

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

球员:

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; 
} 

在main()我尝试打印与此代码的分数,但我不能:

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

它返回我(我把它设置在主要乞讨)
我希望你说不清楚d我想说什么。

+0

你在哪里打电话?你只需创建一个播放器并打印出来。 – roni 2011-12-26 18:43:08

+1

这是一个问答网站。你问问题,我们回答他们。问题的定义特征是以问号('?',ASCII码0x3F,在大多数键盘上它可以在右边的shift键旁边找到)结尾。 – 2011-12-26 18:45:36

回答

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 2011-12-26 19:04:55

2

如果您想为特定玩家设置分数,您需要致电setScore关于该物体。例如:

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

其中playerPlayer类型的变量。

不过,这不会影响得分为球员:

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

这仍然会打印0,因为比分为球员仍然是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 2011-12-26 19:01:03

+0

很难解释没有观察你的完整应用程序。 – Lion 2011-12-26 19:05:08

0

球员和袋是不同类的,假设你想要做的包类中的一些计算即会参考玩家等级和这些值将需要玩家类,袋类需要有玩家参考。所以你需要在两个类中做一些改变。

改变计数方法如下面

公共无效计数(玩家P,INT数){.............
SCR = K * 2; //给出一个int p。setScore(SCR); //设置在播放器 类}

得分和更改主方法如像下面

玩家P =新播放器();包b =新包(); b.count(P,5); System.out.println(p.getScore());