Domanda

Sono dal mondo php. Può spiegare che cosa getter e setter sono e potrebbe dare alcuni esempi?

È stato utile?

Soluzione

Tutorial non è realmente necessario per questo. Leggi su incapsulamento

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

Altri suggerimenti

In getter e setter Java sono funzioni del tutto normali. L'unica cosa che li rende getter o setter è convenzione. Un getter per foo è chiamata getFoo e il setter si chiama setFoo. Nel caso di un valore booleano, il getter è chiamato isFoo. Devono inoltre avere una dichiarazione specifica, come mostrato in questo esempio di getter e setter per 'nome':

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 ragione per usare getter e setter, invece di fare i membri del pubblico è che rende possibile cambiare l'implementazione senza modificare l'interfaccia. Inoltre, molti strumenti e kit di strumenti che utilizzano riflessione per esaminare gli oggetti accettano solo oggetti che hanno getter e setter. JavaBeans per esempio deve avere getter e setter così come alcuni altri requisiti.

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

Quando si esegue il programma, il programma si avvia in rete,

  1. è creato oggetto c
  2. funzione setTime() viene chiamata dall'oggetto c
  3. il time variabile viene impostata sul valore trasmesso da
  4. funzione getTime() viene chiamato da oggetto c
  5. il tempo viene restituito
  6. Sarà passe a tod e tod ottenere stampati

Si consiglia inoltre di leggere " Perché metodi getter e setter sono il male ":

  

Anche se i metodi getter / setter sono comuni in Java, non sono particolarmente Object Oriented (OO). In realtà, essi possono danneggiare la manutenibilità del codice. Inoltre, la presenza di numerosi metodi getter e setter è una bandiera rossa che il programma non è necessariamente ben progettato da una prospettiva OO.

     

Questo articolo spiega il motivo per cui non si dovrebbe usare getter e setter (e quando si possono usare) e suggerisce una metodologia di progettazione che vi aiuterà a uscire dalla getter / setter mentalità.

1. Le migliori getter / setter sono intelligenti.

Ecco un esempio javascript da 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)

Ho usato questi molto perché sono impressionante . Io lo uso quando ottenere fantasia con il mio codifica + animazione. Per esempio, fare un setter che si occupa di un Number che visualizza quel numero nella tua pagina web. Quando si utilizza il setter che anima il vecchio numero per il nuovo numero utilizzando un Tweener . Se il numero iniziale è 0 e si imposta a 10 poi si dovrebbe vedere i numeri capovolgere rapidamente 0-10 sopra, diciamo, mezzo secondo. Gli utenti amano questa roba ed è divertente da creare.

2. Getter / setter in php

Esempio da 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:

Ecco un esempio per spiegare il modo più semplice di utilizzare getter e setter in java. Si può fare questo in modo più semplice, ma getter e setter avere qualcosa di speciale che è quando si utilizza membro privato della classe genitore in classe bambino in eredità. Si può rendere possibile attraverso l'utilizzo di getter e 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();
        }

    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top