質問

私はphpの世界です。について教えてください。うsetterか、仕掛け人となっております。する。

役に立ちましたか?

解決

チュートリアルは本当にこのために必要とされていません。 カプセル化する

上に読みます
private String myField; //"private" means access to this is restricted

public String getMyField()
{
     //include validation, logic, logging or whatever you like here
    return this.myField;
}
public void setMyField(String value)
{
     //include more logic
     this.myField = value;
}

他のヒント

Javaのゲッターとセッターには完全に通常の関数です。彼らにゲッターやセッターを作る唯一の事は慣例です。 fooのゲッターがからgetfooと呼ばれ、セッターがsetFooと呼ばれています。ブール値の場合、ゲッターはisFooと呼ばれています。

「name」のゲッターとセッターのこの例に示すように、彼らはまた、特定の宣言を持っている必要があります
class Dummy
{
    private String name;

    public Dummy() {}

    public Dummy(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

ゲッターとセッターを使用しての代わりに、あなたのメンバーは、公開する理由は、それがインターフェイスを変更せずに実装を変更することが可能になるということです。また、オブジェクトを調査するためにリフレクションを使用する多くのツールやツールキットはゲッターとセッターを持つオブジェクトを受け入れます。 JavaBeansはゲッターとセッターだけでなく、いくつかの他の要件を持っている必要があります例えばを。

class Clock {  
        String time;  

        void setTime (String t) {  
           time = t;  
        }  

        String getTime() {  
           return time;  
        }  
}  


class ClockTestDrive {  
   public static void main (String [] args) {  
   Clock c = new Clock;  

   c.setTime("12345")  
   String tod = c.getTime();  
   System.out.println(time: " + tod);  
 }
}  

実際のプログラム、プログラム開始電源

  1. オブジェクトcの作成
  2. 機能 setTime() によって呼び出されるオブジェクトc
  3. 変数 time 設定の値に渡される
  4. 機能 getTime() によって呼び出されるとオブジェクトc
  5. の時間が返される
  6. かかる todtod 取得印刷

また、 "<のhref =" http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html "のrel = "noreferrer" タイトル=" JavaWorldを読むことをお勧めします">なぜgetterメソッドとsetterメソッドは悪にある" ます:

  getter / setterメソッドは、Javaで一般的なものであるものの、

、彼らは特に(OO)オブジェクト指向されていません。実際に、彼らはあなたのコードの保守性に損傷を与えることができます。また、多数のゲッターとセッターメソッドの存在は、プログラムは必ずしも十分OOの観点から設計されていない赤色のフラグである。

     

この記事では、ゲッターとセッター(とするとき、あなたがそれらを使用することができます)を使用してはならない理由を説明し、あなたがゲッター/セッターの考え方から抜け出すのに役立ちます設計手法を提案します。

1.最setterか/セッターはスマート.

こちらはjavascript例からのmozilla:

var o = { a:0 } // `o` is now a basic object

Object.defineProperty(o, "b", { 
    get: function () { 
        return this.a + 1; 
    } 
});

console.log(o.b) // Runs the getter, which yields a + 1 (which is 1)

に使用しましたこれらの多くが .混雑して待たされることのできな派手なマコ+アニメーション例えば、セッターを得る Number るディスプレイの番号です。のセッターを使用した版の数値を新しい番号を使用 tweener.場合は最初の番号は0に設定すでに10そばの番号を反転早くから0~10以上に、例えば、半ます。ユーザーに愛をこのものも楽しいです。

2.Setterか/phpのセッター

例からのsof

<?php
class MyClass {
  private $firstField;
  private $secondField;

  public function __get($property) {
    if (property_exists($this, $property)) {
      return $this->$property;
    }
  }

  public function __set($property, $value) {
    if (property_exists($this, $property)) {
      $this->$property = $value;
    }

    return $this;
  }
}
?>

citings:

ここでは、Javaでゲッターとセッターを使用する最も簡単な方法を説明するための一例です。一つは、より簡単な方法でこれを行うことができますが、ゲッターとセッターは、継承に子クラスに親クラスのプライベートメンバを使用している特別な何かを持っています。あなたはゲッターとセッターを使用して、それを可能にすることができます。

package stackoverflow;

    public class StackoverFlow 

    {

        private int x;

        public int getX()
        {
            return x;
        }

        public int setX(int x)
        {
          return  this.x = x;
        }
         public void showX()
         {
             System.out.println("value of x  "+x);
         }


        public static void main(String[] args) {

            StackoverFlow sto = new StackoverFlow();
            sto.setX(10);
            sto.getX();
            sto.showX();
        }

    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top