2016-08-23 7 views
-1

静的メソッドを使用してプライベート静的変数を変更しようとしていますが、変更しようとしている変数(staticとして宣言されている)静的メソッドを使用して静的変数を変更する

public class Playerinfo { 
    private static String name = ""; //Stores the name of the 'player' 
    public static void setname(String name) { 
     this.name = name; 
    } 
} 

変数は名前と呼ばれ、メソッドはsetnameと呼ばれます。私はこれを行うことができることを知っている:

Playerinfo.name = (insert variable here) 

私はPlayerinfoで名前の変数を持っているしたいので、私は上記のが好きではありません簡単に他のクラスによってでmeddledすることがないよう、民間として宣言。

答えて

2

静的メソッド内にはthisがありません。

あなたの最善の策は、メソッドのパラメータの名前を変更することです:

public class Playerinfo { 
    private static String name = ""; //Stores the name of the 'player' 
    public static void setname(String newName) { 
     name = newName; 
    } 
} 
1

thisは、静的メソッドでは違法である、クラスのインスタンスを参照します。パラメータの名前を変更してname = param;を実行するか、クラス:Playerinfo.name = name;で参照してください。いずれにしても、他のクラスの可視性には影響しません。

0

は、私の知る限り名前を理解しstatic.Each PlayerInfoオブジェクトである必要はありません独自の名前を持っている必要がありますので、名前とSETNAME

public class Playerinfo{ 
    private String name = ""; //Stores the name of the 'player' 
    public void setname(String newName){ 
     this.name = newName; 
} 
+0

両方から静的を削除し、私は唯一の参照クラスとしてPlayerinfoを持っていることを計画オブジェクトではないので、私は静的変数とメソッドを使用しています。 –

関連する問題