2011-12-26 9 views
-3

2つのクラスを作成しました。最初のクラスはPlayerクラスで、2番目のクラスは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()); 

私はを返します(私はメインの懇願でそれを設定しました)
私はあなたが私は何を言いたいのですか?

+0

ここで、あなたはsetを呼び出しますか?プレーヤーを作成して印刷するだけです。 – roni

+1

これはQ&Aサイトです。あなたは質問をし、答えます。質問の定義上の特徴は疑問符( '?'、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と電話する必要があります。例えば:playerタイプPlayerの変数である

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 =新しいプレーヤー(などのmainメソッドを変更します)。バッグb =新しいバッグ(); b.count(p、5); System.out.println(p.getScore());

関連する問題