OOP ganz leicht lernen.. wo?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
benutzen
besitzer
code
dank
dorf
eigenschaft
fahren
fahrrad
farbe
funktion
gedanke
http
instanz
klasse
machen
mountainbike
objekt
schablone
schaffen
url
-
Halllo,
für das Browsergame wo ich gerade mitprogrammiere brauche oich natürlich ganz oft oop.
Wo kann man das ganz leicht lernen?
Natürlich deutsch.
mfg
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hängt von der sprache ab.
Bei PHP empfele ich das Buch
PHP und MySQL Praxisbuch für Kids(phpkid.de)
von Johan-Christian Hanke (jchanke.de) -
hmm bloß ich suche eigtl. ne inetrnet version
-
Das PHP und MySQL Praxisbuch hat aber nur ein einziges kurzes Kapitel über OOPHP.
http://www.strassenprogrammierer.de/php-5-objektorientiert-eine-einfuehrung_tipp_325.html
Geht zwar sehr schnell ins eingemachte und vorran, aber das könnte eigentlich gut hinhauen. Wenn du Fragen hast nur her damit, OOPHP ist an sich eine schöne und einfache Sache.
Um von meiner Seite noch einen Tipp zu geben: Das Programmieren ist an sich kein Problem, den Syntax lernt man schnell. Oftmals kann sich der Entwickler nichts unter den Objekten vorstellen, und das ist schlecht. Objekte, welche du in einer Programmiersprache anlegst (oder verallgemeinert Klassen) dienen als Abbildung für die Realität. Diese Vorstellung kannst mal in Hinterkopf behalten, dass du mit Klassen reale Objekte in deinem Programm abbilden willst, zumindest mit den Eigenschaften, wie du sie brauchst.
Wenn du in Englisch gut bist, kannst du auch gerne dies lesen, der macht es mit den Tieren: http://devzone.zend.com/10/php-101-part-7-the-bear-necessities/
Liebe Grüße -
mein english so ist ne 2 in der 8. gewesen (bin jetz 9.)
muss mal gucken danke ich schuas mir mal an.
Aber ich fersteh das iwie net so richtig ;/ -
Schnelldurchlauf:
Ich geb mal nen sehr schnellen durchlauf, wo auch nen bisschen was fehlt, also nur erste Grundzüge, und es fehlt noch viel, vllt schaffen die ja ein Verständnis auch für andere Tutorials. Wir basteln ein Fahrrad. Dabei wird unser Klassenname auch "Fahrrad". Also das Grundgerüst:
class Fahrrad { }
Damit haben wir den "Body" geschaffen, den grundlegenden Syntax. Jetzt überlegen wir uns, was ein Fahrrad kann (welche Funktionen es erfüllen kann) und was für Eigenschaften es hat (also Variablen es hat). Unser Fahrrad hat eine Farbe, einen Besitzer, und kann Fahren. Natürlich könnte man die Liste endlos erweitern, aber mehr hab ich grad keine Lust.
class Fahrrad { public $farbe; public $besitzer; public function fahren() { echo "ich bin aber schnell! - sagte: " . $this->besitzer; } }
Das heißt, alles, was ich in den geschweiften Klammern der Klasse definiere, gehört zu der Klasse. Ich kann die Funktion "fahren" nicht einfach irgendwo aufrufen, ich muss immer einer Instanz von Fahrrad sagen, es soll Fahren. Dabei fällt das "public" auf. Davon gibt es 3 Schlüsselwörter: public, protected, private. public bedeutet, dass jeder die Funktion oder Eigenschaft von Außen mittels dem Pfeil -> benutzen kann. protected und private bedeuten, dass man es nur innerhalb der Klasse selbst, also mit $this->privateMethode aufrufen kann. Das ist wichtig, wenn man Klassenintern funktionen schaffen will, welche von außen nicht erreichbar sien dürfen. protected Methoden und Eigenschaften können dabei vererbt werden, private nicht. Das ist aber erst bei Vererbung wichtig.
Wir haben jetzt eine Klasse (oben, Fahrrad) definiert. Doch wie arbeiten wir damit? Erstmal brauchen wir eine Instanz:
$citybike = new Fahrrad(); $mountainbike = new Fahrrad();
Jetzt habe ich bereits 2 Instanzen erzeugt, welche ich unabhängig bearbeiten kann:
$citybike->besitzer = "frank"; $citybike->farbe = "pink"; $mountainbike->besitzer = "paul"; $mountainbike->farbe = "schwarz"; $citybike->fahren(); $mountainbike->fahren();
Jetzt haben wir beiden unterschiedliche Eigenschaften verpasst. Wir haben die Schablone "Fahrrad" genutzt, haben sie mit Werten gefüllt und dann benutzt. Wir definieren also mit der Klasse nur Schablonen, und Instanzieren sie dann zu real genutzen Objekten.
Das ist eine sehr kurze und nicht perfekte zusammenfassung als einstieg. Fehlen tut noch sehr viel, jedoch gibt das denk ich ein Grundverständnis, und es sollte leichter Fallen, die Tutorials zu verstehen.
Edit: Achja. Übung macht den Meister. Probier die Tutorials aus, praktisch, und verändere auch mal was. Mach aus einem "public" einfach mal "private" und du siehst was passiert oder so. Probieren geht über Studieren
Liebe Grüße
Beitrag zuletzt geändert: 29.8.2012 10:16:18 von ggamee -
hmm so wenn ich mir jetz sein code anschaue verstehe ich das ja aber aber wenn es in nem BG ist dann kann man ja dem besitzer:
$citybike->besitzer = "frank";
nimanden spezielles zuweisen!
Was denn? -
Der Besitzer ist nur ein Beispiel als Eigenschaft. Ein Fahrrad hat einen Besitzer. Ein Cachemodul oder Datenbankmodul nicht. Da sind dann andere Eigenschaften wichtig.
Ich empfehle dir ein wenig in Sourcecode rumzustöbern, und ein paar Tutorials zu lesen. Und wenn du schonmal dabei bist dieseshier auchnoch: http://de.wikipedia.org/wiki/Model_View_Controller (ein wichtiges Pattern wie ich finde)
Für jede Klasse musst du dir Gedanken machen, was macht diese Klasse aus, was sollen die Objekte dieser Klasse können? Sind es Wrapper, welche einfach nur Namen wieder spiegeln?
$db = new mysql(); $db->connect(); $db->query("hlab"); $db->close();
Oder hast du Datenobjekte
$lng = new Language(); $str = $lng->get("hallo");
Oder sonst was. Dein erster Gedanke muss dem gelten: Was soll mein Objekt nachher gönnen, wie soll es benutzt werden, wie würdest du es in der realen Welt benutzen?
Liebe Grüße -
okey danke,
wieder was gelernt :D
beispielsweise könnte man als Klasse das so machen?
class Dorf
{
public $einheiten;
public $gebäude;
public $besitzer;
public function ausbau()
{
echo "Das dorf von: " . $this->besitzer;
echo "Hatt 5237 Punkte";
}
}
???? -
Ein Dorf kann man als Klasse darstellen und über bestimmte Eigenschaften und Methoden darstellen, ja.
Auch wenn es vllt overkill ist: http://www.youtube.com/watch?v=QFdVuxLFIno
Ein super Professor, ich liebe seine Videos. Auch wenn es von C und C# redet, es geht um das Grundlegende Prinzip "Objektorientierung". Der Typ erklärt das sehr gut, und ich hoffe, dass er vielleicht etwas beibringen kann, was noch fehlt. Vielleicht hifts, ich kanns aber nicht garantieren. Es ist halt nur die hohe Überschrift, und hat nichts mit PHP direkt zu tun, also nichts mit PHP als Code, aber es hilft besser zu werden.
Liebe Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage