Fragen zu OOP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fragen zu OOP

    Hallo,

    ich versuche gerade mit OOP warm zu werden. Beschäftigen tue ich mich mit diesem Tutorial: Objektorientierte Programmierung mit PHP5 was mir sehr gefällt.

    Ich versuche das ganze gleich auf mein aktuelles Projekt umzusetzen, wobei mir aber immer wieder Fragen kommen und ich auch immer wieder überlege: Ist das jetzt so richtig, was du hier fabrizierst oder geht das am Gedankengut des OOP völlig vorbei.

    Da der Autor des tollen Tutorials hier auch Admin ist und ganz diskret auf dieses Forum verweißt (übrigens: Peter schickt mich ) , habe ich mir mal gedacht, da du schon mal früher hier aktiv warst, wendest Du dich mal hier her und hoffe ich darf mit meinen Fragen hier nerven.

    Lange Rede kurzer Sinn, meine erste Frage, dazu folgende, von mir höchstpersönlich erstellte Klasse:

    PHP-Code:
    class series {
        public 
    $id;
        public 
    $title;
        public 
    $fs;

        public function 
    setId($var){
            
    $this -> id $var;
        }
        public function 
    setTitle($var){
            
    $this -> title $var;
        }    
        public function 
    setFs($var){
            
    $this -> fs $var;
        }

    So jetzt kann ich ja entweder so:
    PHP-Code:
    $ncis = new series;
    $ncis->setTitle("Navy CIS"); 
    oder so:
    PHP-Code:
    $ncis = new series;
    $ncis -> title "Navy CIS"
    die Eigenschaft title setzen. Wobei ich bei der zweiten Möglichkeit, ja mir Quellcode in der Klasse sparen kann. Warum also die Methode implementieren und benutzen?

  • #2
    Das Beispiel ist auch falsch.

    Wenn du Getter und Setter anbietest, sollten die Variablen private oder protected sein. Sinn und Zweck der Geschichte ist, dass du die Zugriffsmöglichkeiten besser steuern kannst. Du kannst zB. festlegen, dass man eine ID auslesen, aber nicht setzen kann. Sowas ist mit einer public Variable nicht möglich. Außerdem kannst du so garantieren, dass die ID immer ein Integer ist. Bei einer public Variable kann jeder reinschreiben, was er will.

    Kommentar


    • #3
      Vielen Dank für die prompte Antwort, ich habe es jetzt so geändert, das die Eigenschaften private sind. Somit kann man nur über die Methoden darauf zu greifen und ich kann später Prüfungen implementieren, falls dieses nötig sein sollte.

      Kurze Zwischenfrage, soll ich wenn ich den Code jetzt erweitert habe und die nächsten Fragen auftauchen lieber im ersten Beitrag den Code editieren oder so lassen und den geänderten Code dann jeweils in die neu Antwort auf das Thema schreiben?

      Kommentar

      Lädt...
      X