2017-07-25 3 views
2

時には、1つ以上の値で構成された値が必要な場合もありますが、基礎となる値も変更できます。クラスフィールドのように動作するメソッド

Javaで書かれたロールプレイングゲームでプレーヤーを表すクラスがあるかもしれません。彼は「生命」と「持久力」の分野を持つことができました。最後のフィールドは、プレイヤーの寿命を延ばす可能性があります。だから、私たちは "人生"を持ち、人生は完全な人生を生み出す "持久力"を増しています。私は、ブラケットと、フィールドのように見えますし、フィールドのように振る舞う方法を記述します

public class Player 
{ 
    private int life; 
    private int endurance; 
    private int life_total() 
    { 
     return life + endurance; 
    } 

    public Player() 
    { 
     life = 10; 
     endurance = 2; 
    } 

    public int get_life_total() 
    { 
     return life_total() 
    } 
} 

は、私はそのようなことを書くでしょう。これは許容される解決策ですか、そうした状況に対してはより良い解決策がありますか?

javascriptのような関数参照を持つ言語では、合成された値を返すためにそのような関数参照を使用できますか?

+3

「public getLifeTotal(){return life + endurance;」を使用してください。 } '?その追加のプライベートな方法は理にかなっていません。 – Tom

+0

あなたの例では、これは問題ありません。しかし、特別なプライベートメソッドは必要ありません。 2つのフィールドの合計を返します。 – mumpitz

+0

私が示したように書くと、これはプレーヤーの価値であることがより目立つようになり、他のプレイヤーのような方法だけでなく、プレイヤーにもこのような価値があることをより速く見ることができます。通常、ゲッターは実際のクラスフィールドの戻りメソッドとしてのみ使用され、他のものや実際のクラスフィールドがない値に対しては使用されないため、私は思っています。 –

答えて

1

getterメソッドは次のようになります。あなたのgetterメソッドがあなたの変数をフェッチする別のメソッドを呼び出させる理由はありません。

public int get_life_total(){ 
    return life + endurance; 
} 
関連する問題