Question

Je suis dans le monde php. Pourriez-vous expliquer ce que accesseurs sont et pourriez-vous donner quelques exemples?

Était-ce utile?

La solution

Tutoriel n'est pas vraiment nécessaire pour cela. Renseignez-vous sur encapsulation

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

Autres conseils

Dans Java accesseurs sont des fonctions tout à fait ordinaires. La seule chose qui les rend getters ou setters est convention. Un getter pour foo est appelé getFoo et le poseur est appelé setFoo. Dans le cas d'un booléen, le getter est appelé isFoo. Ils doivent également avoir une déclaration spécifique comme indiqué dans cet exemple d'un getter et setter pour « nom »:

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

La raison d'utiliser des accesseurs au lieu de faire vos membres du public est qu'il permet de changer la mise en œuvre sans changer l'interface. En outre, de nombreux outils et boîtes à outils qui utilisent la réflexion pour examiner les objets acceptent uniquement les objets qui ont des accesseurs. Les JavaBeans par exemple doit avoir des accesseurs ainsi que d'autres exigences.

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

Lorsque vous exécutez le programme, le programme démarre en réseau,

  1. objet c est créé
  2. setTime() fonction est appelée par l'objet c
  3. time la variable est définie sur la valeur transmise par
  4. getTime() fonction est appelée par l'objet c
  5. le temps est retourné
  6. Il passe à tod et tod faire imprimer sur

Vous pouvez également lire " Pourquoi les méthodes getter et setter sont mal":

  

Bien que les méthodes getter / setter sont monnaie courante en Java, ils ne sont pas objet particulièrement orienté (OO). En fait, ils peuvent endommager la maintenabilité de votre code. De plus, la présence de nombreuses méthodes getter et setter est un drapeau rouge que le programme n'est pas nécessairement bien conçu du point de vue OO.

     

Cet article explique pourquoi vous ne devriez pas utiliser accesseurs (et quand vous pouvez les utiliser) et propose une méthodologie de conception qui vous aidera à sortir du getter / setter mentalité.

1. Les meilleurs getters / setters sont intelligents.

Voici un exemple javascript de 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)

Je l'ai utilisé ces beaucoup parce qu'ils sont impressionnante . Je l'utiliser lors de l'obtention de fantaisie avec mon codage + animation. Par exemple, faire un setter qui traite d'un Number qui affiche le numéro sur votre page Web. Lorsque le poseur est utilisé, il anime l'ancien numéro du nouveau numéro à l'aide d'un Tweener . Si le nombre initial est 0 et que vous définissez à 10, alors vous verrez les numéros parcourir rapidement de 0 à 10 sur, disons, une demi-seconde. Les utilisateurs aiment ce genre de choses et il est amusant de créer.

2. Getters / setters en php

Exemple de 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:

Voici un exemple pour expliquer la façon la plus simple d'utilisation getter et setter en java. On peut le faire de manière plus simple, mais getter et setter avoir quelque chose de spécial qui est lors de l'utilisation de la classe parlementaire mère dans la classe des enfants en héritage. Vous pouvez le faire grâce à l'utilisation possible getter et setter.

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

    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top