Portal > Foren > PHP > PHP-Programmierung > Grundlegende Frage zur Objektorientierung / OOP
Antwort
 
Themen-Optionen
Alt 02.04.2007, 18:36 Nach oben    #1
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 408
Standard Grundlegende Frage zur Objektorientierung / OOP

Hallo
ich beschäftige mich zur zeit mal mit OOP
und les dazu versch. tutorials
ich kann die abschreiben und so wieter aber das bringt mir nichts deswegen stelll cih hier ma so ne richitge noop frag
und zwar konnte ich leider nirgends ruasfinde was der operator
->
bringt
z.B.:
PHP-Code:
$this -> $example 
oder so eben
grüße
Gabriel
kampfgnom ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2007, 18:52 Nach oben    #2
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 521
Standard

-> dient dazu, auf eigenschaften und methoden eines Objekts zuzugriefen.
Das gehört zu den absoluten Basics, also solltest du vllt doch erstmal mit einem Tutorial einsteigen...
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2007, 19:00 Nach oben    #3
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

PHP-Code:
$this -> $example 
Das wird nicht funktionieren, sofern du für die Variable $example nichts definiert hast. Ich denke das soll eher
PHP-Code:
$this -> example 
heissen. Arbeite erstmal Tutorials durch - OOP kann sehr nützlich sein, wenn man es richtig einsetzt.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2007, 21:01 Nach oben    #4
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 408
Standard

Ja wie gesagt ich habe halt ein tutorial angefangen und da kam mir diese frage auf
deshalb hab ich sie hier gestellt
denn wenn man die GRundlagen nicht versteh kann mans auch gleich lassen

Trotzdem danke
Zitat:
OOP kann sehr nützlich sein, wenn man es richtig einsetzt.
könntest du mal ein konkretes beispiel nennen
in tutorials wird zwar gut erklärt WIE man es verwendet aber wozu dann genau nicht so richtig
das währe evtl interresant^^
kampfgnom ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2007, 21:40 Nach oben    #5
Oliver O.
 
Benutzerbild von Xean
 
Registriert seit: 17.08.2005
Beiträge: 426
Standard

wenn du eine Klasse hast:
PHP-Code:
class foo{
  var 
$bar;
  function 
foo(){
  }
}
$foo = new foo(); 
dann komm ich nur über $foo->bar an die variable $bar, und in der klasse hab ich aber kein $foo, deshalb benutze ich $this. Also komm ich über $this->bar an die variable
Xean ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2007, 03:22 Nach oben    #6
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Mal hier so 3 Standard-Vorteile
Zitat:
* für Designer: der Entwurfsprozeß wird einfacher, klarer und handhabbarer.

* für Programmierer: klares Objektmodell, mächtige Programmierwerkzeuge, nützliche Bibliotheken.

* für Manager: Entwicklung und Wartung von Software wird schneller und billiger durch gesteigerte Produktivität.
Du wirst aber selbst bemerken, wie dir OOP das Programmieren erleichtert. Zwar mag deine ganze Struktur komplexer werden, dennoch kannst du sie bei anderen Projekten immer wiederverwenden, du kannst ganze Aufgabenblöcke die Du in einemSystem brauchst (beispielsweise die Handhabung eines Users) in eine User-Klasse packen, und von überall in deinem System darauf zugreifen.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2007, 14:20 Nach oben    #7
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 408
Standard

Ok danke schön!
Ihr habt mir sehr geholfen
solangsam versteh ich ide grundlagen
kampfgnom ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2007, 20:14 Nach oben    #8
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Kannst ja auch mal MrNiceGuy's Tutorial zum Einstieg anschauen.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2007, 21:14 Nach oben    #9
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 408
Standard

Ja da hab ich schon reingeschaut
allerdings hab ich mir das durchgelesen und naja mir fehlten halt die grundlagen
habs deswegen nicht verstanden und mir dann das tutorialhttp://tut.php-q.net/klassen.html
reingezoge
naja
ich werd üben.....
kampfgnom ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2007, 01:02 Nach oben    #10
Neuer Benutzer
 
Registriert seit: 31.05.2006
Beiträge: 24
Standard

Naja, OOP dient dazu die Programmierung noch "alltagsnaher" zu gestalten. Die Idee hinter OOP liegt darin, dass du Probleme als Dinge betrachtest, die du quasi anfassen kannst. Der Standard-Vergleich ist ja das mit dem Auto: Das Objekt ist das Auto, die Eigenschaft zum Beispiel die Farbe, die Methode ist zum Beispiel "Gas geben". Mehr liegt hinter dem Grundgedanken nicht dahinter. Da man aber die Informatik wie üblich nicht anfassen kann, wirds dann doch leider etwas abstrakt.

Mein Lieblingsbeispiel für angewandtes OOP ist mittlerweile das Model, also die Daten-Abstraktion. Wenn ich da nun in einer Applikation die Methode $model->getUser($username); aufrufe, dann will ich nicht wissen, wie oder wo oder warum überhaupt das Model dies speichert. Er soll mir nur (falls vorhanden) ein sinnvolles Ergebniss liefern. Der Rest ist ihm überlassen (und so sollte es auch bleiben). Wenn ich nun plane eine andere Datenbank zu verwenden, brauch ich bloss das Model tauschen. Das neue Model wird mir die selben Möglichkeiten mit den selben Ergebnissen liefern. Wie es im Inneren aussieht, bleibt mir weiterhin völlig gleichgültig!
KingCrunch ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2007, 10:55 Nach oben    #11
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Hier nochmal ein Nachtrag aus einem recht guten Buch:
http://www.professionelle-softwareen...otivation.html
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2007, 12:09 Nach oben    #12
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 408
Standard

Danke schön hab ich mir mal durchgelesen scheint gut zu sien selbst für mich

nebenbei
kann man den Titel noch irgendwie ändern mir ist nämlich aufgefallen das ich vergessen habe dazuzuschreiben das es um OOP geht!!


grüße
Gabriel
kampfgnom ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2007, 12:49 Nach oben    #13
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Hi,
1. Titel habe ich mal geändert (das kann man als Nutzer selbst nicht machen!)
2. Kann man auch mal reinschauen: http://ffm.junetz.de/members/reeg/DSP/node24.html

Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2007, 19:27 Nach oben    #14
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 408
Standard

So, ich hol den Thread mal aus der Versenkung, da auch meine Frage, zumindest denke ich, mit Grundlagen zutun hat.

und zwar ist mir im zusammenhang mit dem ZendFramework die Deklination
PHP-Code:
static 
was bringt das, was kann man damit machen??
__________________
kampfgnom ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2007, 19:30 Nach oben    #15
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Schau mal hier:
http://de3.php.net/manual/de/language.oop5.static.php

Du benötigst kein Objekt der Klasse, um auf die Klassenvariable oder Methode zuzugreifen. Also anstatt
PHP-Code:
$obj = new DemoClass();
$obj->doSomething(); 
wäre der Aufruf dann

PHP-Code:
DemoClass::DoSomething(); 
Damit sollte aber spärlich umgegangen werden bzw. nur dann, wenn man weiß, was man tut, weil eben die objektorientierte Struktur etwas .. sagen wir .. ausgehebelt wird.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2007, 19:32 Nach oben    #16
Erfahrener Benutzer
 
Benutzerbild von Bleistift
 
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 298
Standard

Zitat:
Zitat von kampfgnom Beitrag anzeigen
und zwar ist mir im zusammenhang mit dem ZendFramework die Deklination
PHP-Code:
static 
was bringt das, was kann man damit machen??
Funktionen, die "static" sind, kannst du so aufrufen:
PHP-Code:
class MeineKlasse {
    public 
$hallo 'Test';
    public static 
fooBar() {
        echo 
self::$hallo;
    }
}

MeineKlasse::fooBar(); 
Edit: Ben war schneller
__________________
. <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination.
Bleistift ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2007, 19:54 Nach oben    #17
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 408
Standard

Ja, das hab cih auch herausgefunden, aber was bringt mir das?
__________________
kampfgnom ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2007, 20:01 Nach oben    #18
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Statische Methoden oder Klassenvariablen haben den Vorteil, dass sie wie gesagt kein Objekt der Klasse benötigen, um aufgerufen zu werden.
Ein Beispiel ist das Singleton-DesignPattern. (der Suchdienst deiner Wahl wird dir da weiterhelfen)

Dort ist es zwingend notwendig, dass abgesichert wird, dass man eben nicht einfach so Instanzen der Klasse erstellen kann, sondern dass es nur eine einzige Instanz gibt. Das wird über eine statische Methode realisiert, in der abgefragt wird, ob bereits eine Instanz existiert.
Das ist aber nur ein Beispiel.

Sinnvoll finde ich so etwas auch z.B. bei reinen Debug-Klassen. Das Zend Framework, da du es ansprichst, hat so etwas auch mit der Klasse Zend_Debug, die z.B. die statische Methode dump() enthält und über einen Aufruf
PHP-Code:
Zend_Debug::Dump($var); 
ein formatiertes var_dump() der übergebenen Variablen ausgibt.

Generell ist zu beachten, dass man damit Variablen und Methoden global sichtbar machen kann .. und deshalb .. nur anwenden, wenn man weiß, was man tut.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2007, 20:55 Nach oben    #19
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 408
Standard

ok, danke ich glaub cih habs verstanden.

Jetzt versteh ich auch den aufruf:
PHP-Code:
Zend_Loader::loadClass('Zend_Controller_Front'); 
vorher einfach nur hingenommen.
Aber das is dann sozusagen so eine statische Methode auf die auch ohne Objekt zugegriffen werden kann..
__________________
kampfgnom ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu OOP .. bob PHP-Programmierung 10 08.05.2006 22:15
Problem mit OOP und Vererbung Jay PHP-Programmierung 9 09.01.2006 15:36
Wie beginnne ich eine Seite mit Oop richtig? ex³ PHP-Programmierung 9 01.11.2005 17:38
Grundlegende Frage zu Tabellen mit Swing Herr Bö Allgemeine Java-Programmierung 1 02.08.2004 19:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:08 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44