OOP Theoretische Grundlagen

javadau

Mitglied
Hallo!

Ich setzte mich gerade mit OOP auseinander und hätte ein paar Fragen. (Ich wollte mir im FAQ - "Einführungen und erste Schritte" durchlesen - aber ich habe darauf keinen Zugriff - komisch).
Bei meiner Recherche bin ich auf folgende Aussagen gestoßen.


Klasse
  • Eine Klasse ist eine Definition und beschreibt einen Typ. [#1 - Was ist mit Typ gemeint?]
  • Eine Klasse ist eine Blaupause für ein Objekt/Instanz. [#2 - Die Klasse "girl" wäre sozusagen die Vorlauge für alle Frauen?]
  • Wenn wir den Typ verstehen, können wir diese Objekte benutzen. [#3 - was ist damit gemeint?]
  • Klassen haben:
    1. Membervariablen (im Kontext der Objektinstanz)
    2. Objektmethoden (im Kontext der Objektinstanz)
    3. Klassen-Methoden und Variablen (statisch)
      [#4 - wo liegt der Unterschied bei diesen 4 Punkten]


Objekte
  • Ein Objekt kann aus weiteren Objekten bestehen [#5 - wie kann ich das verstehen?]
  • Objekt = Instanz [#6 - Stimmt das oder gibt es einen Unterschied?]
  • Eine Instanz eines Objektes hat eine Identität [#7 - Sind Instanz und Objekt doch nicht gleich?]
    [#8 - Was ist eine Identität?]
  • Objekte haben Verbindungen zu anderen Objekten [#9 - Wie kann ich mir das vorstellen - Wie kommunizieren Objekte?]
  • Objektidentität ist per Default unsichtbar [#10 - Woher kommt die Identität - wie kann ich sie sichtbar machen?]


Abstrakte Klassen
  • Definiert das Basisverhalten für mehrere Untertypen.
  • Von abstrakten Klassen kanne s keine Objekte geben [#11 - Warum nicht?]


Beziehungen [#12 - Da blicke ich generell nicht durch.]
  • Objekte kennen andere Objekte
  • Ein Objekt, das von keinem anderen Objekt referenziert wird, existiert nicht!
  • Klassenebene: Beziehung
  • Objektebene: Verbindung
  • Beziehungssemantiken:
    1. Ganzes-Teil-Beziehung
    2. Kardinalitäten


Vererbung
  • Spezialisierung zwischen Klassen
    [#13 - Wo liegt der Unterschied zur abstrakten Klasse?]


Kollaboration [#14 - Da blicke ich generell nicht durch.]
  • Objekte kommunizieren mit anderen Objekten
  • Objekte können auf Nachrichten reagieren, indem sie
    1. Zustände auswerten
      Instanzvariablen lesen und/oder ändern
      Werte von anderen Objekten lesen und/oder ändern
    2. Operationen durchführen
      Interne Operationen
      Nachrichten an andere Objekte senden
    3. Einen Kontrollfluss beachten
    4. Objekte erzeugen oder löschen


Polymorphismus
  • Dieselbe Nachricht führt zu unterschiedlichen Umsetzungen! [#15 - Warum?]
  • Geerbtes Verhalten wird geändert indem Methoden überschrieben werden [#16 - Warum erbe ich etwas wenn ich es dann überschreibe weil ich damit nichts anfangen kann?]
  • Realisierung: dynamisches Binden [#17 - Was ist dynamisches Binden - aus dem Wiki Artikel werde ich auch nicht schlau.]


Hoffe das ihr mir bei meinen Verständnisproblemen helfen könnt - danke!
 
#1 Das Objekt "Max Mustermann" ist vomTyp "Mensch", welches die Klasse "Mensch" definiert.
#2 Nein. Girl == Mädchen. Die Klasse Mädchen wäre eine Vorlage für "Petra (9 Jahre)", "Klaudia (7 Jahre)".
#3 Sinnlose Aussage. Wenn du weist, wie Java funktioniert, dann kannst du Applikationen in Java entwickeln.
#4 Keine Ahnung welche Punkte du meist.

PS: Evtl. hilft dir das Buch "Java lernen mit BlueJ" weiter. Dort werden die meisten deiner genannten Fragen beantwortet.
 
Zuletzt bearbeitet:
All diese Fragen werden in jedem Grundlagenbuch auf den ersten Seiten erklärt.

Man sieht hier, dass du diese nicht gelesen hast und wenn dann hast du sie nicht richtig verstanden.

Ich könnte zu jeder Frage hier hunderte Postings schreiben, bei denen diese Fragen bereits beantwortet wurden. Diese Übung überlasse ich aber Dir.

(Ja ich weiß ich bekomme post).

P.S: Implementiere ein paar Informationstechnische Probleme, dann siehst du auch die Sachen.
 
Zuletzt bearbeitet:
Hallo!

Die Informationen hatte ich aus einem Foliensatz zu OOP. War heute dann gleich in der Buchhandlung und habe mir das Buch "Java lernen mit BlueJ" angesehen.

Laut Amazon sind die Bewertungen zwar recht ordenltich, aber als ich es dann in der Hand hatte, war ich nicht überzeugt. Mir kam es so vor, als wären die Informationen nicht auf den ersten Blick ersichtlich.

Habe mir dann aber das Buch "Java von Kopf bis Fuß" geholt.

Bin dann meine Frage noch einmal durchgegangen und viele hat sich geklärt. Zwei Punkte bleiben von den Folien aber noch offen.


Beziehungen
  • Objekte kennen andere Objekte
  • Ein Objekt, das von keinem anderen Objekt referenziert wird, existiert nicht!
  • Klassenebene: Beziehung [Was bedeutet das?]
  • Objektebene: Verbindung [Was bedeutet das?]
  • Beziehungssemantiken:
    1. Ganzes-Teil-Beziehung
    2. Kardinalitäten

Kollaboration
  • Objekte kommunizieren mit anderen Objekten [Über Botschaften (Messages) - wie kann ich mir das vorstellen?]
  • Objekte können auf Nachrichten reagieren, indem sie [Sind damit Funktionsaufrufe gemeint?]
    1. Zustände auswerten
      Instanzvariablen lesen und/oder ändern
      Werte von anderen Objekten lesen und/oder ändern
    2. Operationen durchführen
      Interne Operationen
      Nachrichten an andere Objekte senden [Wie passiert das?]
    3. Einen Kontrollfluss beachten [Was ist ein Kontrollfluss?]
    4. Objekte erzeugen oder löschen
 
Hättest nur die Zusammenfassung aufschlagen müssen. Aber das Buch "Java von Kopf bis Fuß" ist auch gut.

Kapitel 1
Zusammenfassung der Konzepte

Methdode
Wir können mit Objekten kommunizieren, indem wir ihre Methoden aufrufen. Ein Objekt tut üblicherweise etwas, wenn seine Methode aufgerufen wird.
Methodenaufrufe
Objekte können miteinander kommunizieren, indem sie sich gegenseitig ihre Methoden aufrufen.
Ergebnis
Methoden können Informationen über ein Objekt durch einen Ergebniswert zurückliefern.

Das Wort "Kardinalitäten" benutzt man soweit ich weis in dem Zusammenhang nicht. Unter Multiplizitäten findest du eine Antwort.
 

Zurück
Oben