2016-04-27 11 views
0

懸念で私のクラスはこれです:二つの別々のjavaファイルでランクラスの単一のインスタンス

public class Gscore 
    private score; 

    public void setscore(float a) 
    { 
     float Score=a; 
    } 

    public getscore() 
    { 
     return Score; 
    } 

、私は1つのファイルにスコアを設定し、で設定した値にアクセスしたいと思います他のjavaファイル。次のように二つのファイルからの抜粋は以下のとおりです。

ファイル1

Gscore scoregen= new Gscore(); 
scoregen.setscore(playerscore); 
new file2; 

ファイル2

Gscore scoregen= new Gscore(); 
System.out.print(scoregen.getresponse()); 

しかし、結果は常にNULLで、私はどのように間違って何をやっていますファイル2にファイル1に設定した値を表示させます。

+0

を使用することです。 – 3kings

+0

ええ、私は@ 3kingsと一緒に行くつもりです。 setscore関数で値を設定してください。あなたがコードのその部分を表示していない場合を除きますか?また、大文字で変数に名前を付けるのは悪い習慣です。 –

+0

私は、ファイル1に設定されているプレーヤーのスコアをファイル2に表示されているものにしたい –

答えて

1

あなたの主な問題はあなたですか?両方のメソッドでクラスの同じインスタンスを使用します。クラスGScoreを2回インスタンス化しています。同じ参照変数名を持つだけでは、同じインスタンスにはなりません。

インスタンスがインスタンス化されたら、同じオブジェクト参照を2番目のメソッドに渡します。あなたはNULLでない結果を得ることができるはずです。スタート第二

Public void setscore(int a) 
{ 
Float Score=a; // this is a problem as this is local scope 
} 

については

1

、あなたは一度だけ、それをインスタンス化してから、他のクラスにそれを渡す必要があり、同じオブジェクトを使用します。

別の可能性としては、まあ、あなたが、その後 `getscore`を使用し作られた` setscore`メソッドの呼び出しを試してみてください...愚かな値を設定していないシングルトンクラスにhttp://www.tutorialspoint.com/design_pattern/singleton_pattern.htm

関連する問題