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());
它返回给我score=0
(我把它设置在主要的乞讨处)
我希望你明白我想说的话。
答案 0 :(得分:2)
如果您想为特定玩家设置分数,则需要在该对象上调用setScore
。例如:
public void count(int number)
{
scr = k * 2;
player.setScore(scr);
}
其中player
是Player
类型的变量。
但是,这不会影响新播放器的得分:
Player p=new Player();
System.out.println(p.getScore());
仍然会打印0,因为 new 播放器的得分仍为0.您需要打印出您在count
内设置得分的玩家的得分。
很难给你比这更具体的信息,因为我们不知道你的应用程序的其余部分是如何组合在一起的,但假设每个玩家都有一个独立的分数,你应该考虑哪个要在count
方法中更改的玩家得分。
答案 1 :(得分: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());
答案 2 :(得分: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
}
答案 3 :(得分:0)
玩家和包是不同的类,假设你想要在玩家类中引用玩家类的那些计算,并且玩家类需要这些值,玩家类需要有玩家参考。所以你需要在两个班级做一些改变。
如下所示更改计数方法
public void count(Player p,int number){.............
scr = k * 2; //给出一个int p.setScore(scr); //在Player中设置得分 class}
并更改主要方法,如下所示
玩家p =新玩家(); Bag b = new Bag(); b.count(P,5); System.out.println(p.getScore());