私は単純なテキストベースのRPGゲームの開発に取り組んでいます。現在、私は、プレーヤーの進行状況を再オープンして読み込むことができるテキストファイルに保存するシステムに取り組んでいます。これが私の問題に遭遇した場所です。クラス内の1つの変数の値を返すgetterを呼び出すと、ゲッターは設定したデフォルト値の0を返し、ゲーム全体で値を変更したことを認識しません。他のクラスのjava呼び出しメソッドが変更された変数を認識しない
文字クラス
public class Character
{
private int _strength = 0; //initialize the strength variable
public Character() //constructor
{ }
public void setStrength(int strength) //sets the value of strength
{ _strength = strength; }
public int getStrength() //gets the value of strength
{ return _strength; }
}
私はコードで値をメインゲームで文字変数を作成し、強度を割り当てた場合:私は、主な機能せずに別のクラスに行けば
public static void main(String[] args)
{
Character character = new Character(); //initializes the Character variable
character.setStrength(5); //sets the character's strength to 5
System.out.println(character.getStrength()); //prints out 5 as expected.
}
それには:
public class SaveSystem
{
private Character character = new Character(); //exactly the same as above...
public SaveSystem()
{ }
public void saveGame()
{
//just to test the methods used earlier
System.out.println(character.getStrength()));
}
}
私はそのクラスに戻ってくることができますctionと言う:
public static void main(String[] args)
{
Character character = new Character(); //initializes the Character variable
SaveSystem save = new SaveSystem();
character.setStrength(5); //sets the character's strength to 5
save.saveGame(); //containing nothing but the character.getStrength() method
}
、それは5の同じ値を印刷していしかし、それは強度変数が文字クラスに初期化されるときに割り当てられ、0の値を出力します。示すように、私は文字クラスに強度のデフォルト値を変更した場合:
public class Character
{ private int _strength = 5; //initialize the strength variable }
その後、メインクラスでsave.saveGameの方法は、私は今、数日間、この上で立ち往生されている5をプリントアウトし、私の努力にもかかわらず、Googleはほんの少しでも役に立たなかった。
あなたは[MCVE]を投稿することができますか? – khelwood
どちらも正しいです。私はここで正しいものとして受け入れる人がどれかわからない。手伝ってくれてどうもありがとう!私はこれにしばらく固執してきた! – dragonfyyre