Frage

Ich bin aus der PHP-Welt. Könnten Sie erklären, was Getter und Setter sind und Ihnen einige Beispiele geben könnte?

War es hilfreich?

Lösung

Tutorial ist nicht wirklich für erforderlich. Informieren Sie sich über Kapselung

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;
}

Andere Tipps

In Java Getter und Setter sind ganz normale Funktionen. Das einzige, was sie Getter oder Setter macht, ist Konvention. Ein Getter für foo heißt getFoo und die Setter ist setFoo genannt. Im Falle eines boolean wird der Getter isFoo genannt. Außerdem müssen sie eine bestimmte Erklärung haben als für ‚name‘ in diesem Beispiel eines Getter und Setter gezeigt:

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;
    }
}

Der Grund für die Getter und Setter, anstatt, Ihre Mitglieder öffentlich ist, dass sie es ermöglicht, die Umsetzung zu ändern, ohne die Schnittstelle zu ändern. viele Werkzeuge und Toolkits auch, dass die Verwendung Reflexion Objekte zu untersuchen, nur die Objekte an, die Getter und Setter haben. Java Beans zum Beispiel müssen Getter und Setter sowie einige andere Anforderungen haben.

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);  
 }
}  

Wenn Sie das Programm, Programm startet im Netz laufen,

  1. Objekt c erstellt
  2. Funktion setTime() wird durch das Objekt c genannt
  3. die Variable time auf den Wert gesetzt wird geleitet von
  4. Funktion getTime() wird durch Objekt c genannt
  5. die Zeit zurückgegeben
  6. Es wird Passe tod und tod erhalten ausgedruckt

Sie können auch lesen " Warum Getter und Setter-Methoden sind böse ":

  

Obwohl Getter / Setter-Methoden sind an der Tagesordnung in Java, sind sie nicht besonders objektorientierte (OO). In der Tat können sie den Code der Wartbarkeit beschädigen. Darüber hinaus ist die Anwesenheit von zahlreichen Getter und Setter-Methoden eine rote Fahne, dass das Programm nicht unbedingt gut aus einer OO-Perspektive entwickelt.

     

Dieser Artikel erklärt, warum Sie nicht Getter und Setter verwenden sollten (und wenn Sie sie verwenden können) und schlägt vor, eine Design-Methodik, die Sie von der Getter / Setter Mentalität brechen helfen.

1. Die besten Getter / Setter sind smart.

Hier ist ein Javascript Beispiel von 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)

Ich habe diese VIEL verwendet, weil sie genial . Ich würde es nutzen, wenn Lust bekommen mit meinem + Animation Codierung. Zum Beispiel machen einen Setter, dass sich mit einer Number, die zeigt, dass Zahl auf Ihrer Webseite. Wenn der Setter verwendet wird belebt es die alte Nummer auf die neue Nummer mit einem tweener . Wenn die anfängliche Zahl 0 ist, und legen Sie es auf 10, dann würden Sie die Zahlen sehen schnell von 0 bis 10 über Flip, sagen wir, eine halbe Sekunde. Nutzer lieben dieses Zeug und es macht Spaß zu schaffen.

2. Getter / Setter in PHP

Beispiel von 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:

Hier ist ein Beispiel für die einfachste Art und Weise der Verwendung von Getter und Setter in Java zu erklären. Man kann dies in einem einfacheren Weg, aber Getter und Setter etwas Besonderes hat, das ist, wenn in der Kinderklasse in Vererbungsprivat Mitglied der Eltern-Klasse. Sie können es möglich machen, durch Getter und Setter verwenden.

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();
        }

    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top