OOP lernen

10/23/2015 12:26 ComputerBaer#16
Quote:
Originally Posted by Lukbec View Post
Du beziehst dich darauf ComputerBaer?
Fast, eher darauf:
Quote:
Innerhalb von Klassen werden Eigenschaften und Methoden zu einer Einheit gebündelt. Das nennt man auch Kapselung und ist ein entscheidendes Prinzip der Objektorientierten Programmierung.
Ja, es ist wichtig, soweit stimmt es. Aber da ist keine Erklärung die auch ansatzweise die Datenkapselung erklärt. Da ist nur eine sehr grobe Erklärung für Klassen.

Quote:
Damit schafft man sich eine organisatorische Einheit, die leicht zu verwalten ist.
Der Sinn einer Klasse ist nicht das man sie leicht verwalten kann, sondern das zusammen kommt was zusammen gehört.

Ein Auto hat eine aktuelle und maximale Geschwindigkeit und Methoden zum beschleunigen und bremsen. Um es leicht zu verwalten könnte man jetzt die Klassen AutoEigenschaften und AutoMethoden daraus machen, aber das ist komplett unsinnig. Es gehört alles zum einem Auto, also kommt das auch in eine Klasse, für einen Tisch machen die alle keinen Sinn.

Quote:
Objekte sind programmiertechnisch gesehen irgendwelche Dinge.
Das mag stimmen, beschreibt es aber auch nur sehr oberflächlich.

Ein Objekt muss von einer bestimmten Klasse sein. Wir könnten also zum Beispiel drei Objekte der Klasse Auto haben. Das erste kann maximal 120 fahren und ist grade bei 0, das zweite kann 180 und ist bei 136, das dritte kann 300 und ist bei 54. Jetzt könnte man der Auto-Klasse noch Farbe hinzufügen. Das erste Auto könnte dann grün sein, das zweite rot und das dritte blau. Wenn wir bei auto1 beschleunigen aufrufen, wird nur auto1 schneller, auto2 und auto3 bleiben unverändert.

Auf die Vererbung gehe ich jetzt mal nicht ein, aber auch da gibt es mehr zu sagen als "Säugetiere (Überklasse), Mensch (Unterklasse)".

Quote:
Ein Mann kann sein Auto waschen oder im Haushalt helfen, oder auch nicht
Das erklärt Methoden wie? Soll das heißen, dass nur bei manchen Männern "Auto waschen" und "Haushalt helfen" funktionieren?
Ich will jetzt nicht deine Arbeit machen, also spare ich mir hier jetzt jede weitere Erklärung.


Meine Erklärungen für Klasse und Objekt sind auch eher dürftig, beschreiben/erklären es aber schon etwas besser.
10/23/2015 12:40 Lukbec#17
Natürlich, diese 2 Seiten gehören eigentlich auch zu meinem Vortrag.. Das war mein Handout.. Ich wollte einfach nur nett sein :P
Natürlich ist es nicht gut und auch nicht genau beschrieben/erklärt... Aber für einen ersten Überblick, wie das Grundprinzip von OOP Funktioniert, gar nicht so schlecht..
10/23/2015 12:52 ComputerBaer#18
Quote:
Originally Posted by Lukbec View Post
Natürlich ist es nicht gut und auch nicht genau beschrieben/erklärt... Aber für einen ersten Überblick, wie das Grundprinzip von OOP Funktioniert, gar nicht so schlecht..
Manche Sachen sind einfach nur sehr ungenau mit einem Satz erklärt. Daraus lernt man zwar nicht viel, aber vorallem auch nichts wirklich falsches.

Die Datenkapselung ist aber vorallem falsch erklärt. Wer das aus deinem Handout lernt wird sich später (mehr oder weniger mühsam) umgewöhnen müssen um das richtige zu lernen.


Ich habe kein Problem damit, dass du nett sein wolltest. Allerdings bin ich der Meinung, dass solches "Lernmaterial" richtig sein sollte. Unvollständig bei so einem großen Thema, von mir aus, aber bitte nicht falsch.

Ich glaube, ich hätte damals mit diesem "Lernmaterial" nicht verstanden was OOP ist. Ich hätte vielleicht ein paar Sachen aufgeschnaptt, aber ich hätte das Thema vermutlich nicht richtig verstanden.

(Sieh es bitte als gut gemeinte Kritik und Korrektur. Nicht als Beleidigung oder Angriff oder was auch immer, falls du das irgendwo rauslesen kannst, was ich nicht hoffe.)
10/23/2015 13:03 Lukbec#19
Nein, ist schon okay :D Du kannst es gerne (für die anderen) in meinem Beitrag vermerken, das "Datenkapselung" nicht richtig erklärt ist und ggf. deine Beschreibung dazu packen/darauf verweisen.
10/23/2015 14:10 Wieland11#20
Quote:
Originally Posted by Lukbec View Post
Ich hab mir ne kleine Zusammenfassung geschrieben, vielleicht hilft es dir ja :)

Die PDF findest du im Anhang, die Texte habe ich zum Teil aus dem Internet kopiert und abgeändert, also nicht zu 100% mein Werk!
Könntest du mir die PDF Dateien auf einem Hoster hochladen? Bei mir tritt nur ein Fehler auf, wenn ich versuche sie im Anhang zu öffnen.

Danke für die vielen Hilfestellungen. Könnt ihr mir beim lernen irgendwelche Tipps geben?
10/23/2015 14:34 ComputerBaer#21
Quote:
Originally Posted by Lukbec View Post
Nein, ist schon okay :D Du kannst es gerne (für die anderen) in meinem Beitrag vermerken, das "Datenkapselung" nicht richtig erklärt ist und ggf. deine Beschreibung dazu packen/darauf verweisen.
Ich bearbeite die Beiträge von anderen Personen nur selten und definitiv nicht um für mich selbst Werbung zu machen. Aber selbst wenn ich es wollte, könnte ich es nicht tun, ich habe hier keine Moderator-Berechtigungen.

Quote:
Originally Posted by Wieland11 View Post
Könntest du mir die PDF Dateien auf einem Hoster hochladen? Bei mir tritt nur ein Fehler auf, wenn ich versuche sie im Anhang zu öffnen.
Rechtsklick -> Link in neuem Tab öffnen (Kann je nach Browser unterscheidlich heißen)
Dann solltest du die Möglichkeit bekommen die Datei zu öffnen oder zu speichern. Es sind zwei.

Quote:
Originally Posted by Wieland11 View Post
Danke für die vielen Hilfestellungen. Könnt ihr mir beim lernen irgendwelche Tipps geben?
Vielleicht lieber nicht in die PDF-Dateien schauen.

Das hat jetzt nichts mit PHP zu tun, die Erklärungen und Beispiele zur objektorientierten Programmierung sind aber ganz gut. [Only registered and activated users can see links. Click Here To Register...]

Du meiste beim Programmieren macht die Erfahrung und die sammelst du wenn du an einem Projekt arbeitest. Also denk dir kleine Projekte aus und mach die, achte darauf das du objektorientiert arbeitest und lass vielleicht andere deinen Code begutachten. Übertreib es aber nicht beim Projektumfang, wenn du zu viel willst wirst du nie fertig und deine Motivation verschwindet.
10/23/2015 18:59 Wieland11#22
Quote:
Das hat jetzt nichts mit PHP zu tun, die Erklärungen und Beispiele zur objektorientierten Programmierung sind aber ganz gut. Rheinwerk Computing :: Visual C# 2012 - 3 Das Klassendesign

Du meiste beim Programmieren macht die Erfahrung und die sammelst du wenn du an einem Projekt arbeitest. Also denk dir kleine Projekte aus und mach die, achte darauf das du objektorientiert arbeitest und lass vielleicht andere deinen Code begutachten. Übertreib es aber nicht beim Projektumfang, wenn du zu viel willst wirst du nie fertig und deine Motivation verschwindet.
Supi, danke für den Tipp. Was wäre denn da geeignet für ein erstes OOP Projekt? Ich lerne aktuell abseits von PHP noch Javascript und bin begeistert von der Sprache. Ich habe dort auch die functions kennegelernt und habe einige Vergleiche geschoben. Ich habe das mit den functions und den Wert übergeben in Javascript aufjedenfall verstanden und werde es sicherlich auch in PHP fast genauso anwenden können. Gibt es da vielleicht noch alternativen zu PHP die den Objektorientierten Weg zeigen und gut erklären?