JAVA & Objektorientiertes Programmieren
Eine Einführung in das objektorientierte Programmieren mit JAVA Diese Kartei baut auf dem Stoff des Moduls OOP an der HSLU geleitet von Roland Gisler auf.
Eine Einführung in das objektorientierte Programmieren mit JAVA Diese Kartei baut auf dem Stoff des Moduls OOP an der HSLU geleitet von Roland Gisler auf.
Fichier Détails
Cartes-fiches | 500 |
---|---|
Utilisateurs | 19 |
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Université |
Crée / Actualisé | 04.12.2016 / 16.08.2024 |
Lien de web |
https://card2brain.ch/box/java_objektorientiertes_programmieren
|
Intégrer |
<iframe src="https://card2brain.ch/box/java_objektorientiertes_programmieren/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Was sind die zentralen zwei Elemente in der Objektorientierung?
Klassen und Objekte
Was sind Objekte?
Repräsentieren "Dinge" aus der realen Welt oder aus einem abstrakten Problem:
"Der rote Wagen da im Parkhaus"
Was sind Klassen?
Klassen sind quasi Baupläne für die Objekte
Von einer Klasse kann jeweils nur ein Objekt erzeugt werden
Von einer Klasse können mehrere Instanzen, d.h. Objekte erzeugt werden.
Die Klasse definiert welche Methoden zur Verfügung stehen
Objekte halten ihren Zustand in _______ fest.
Methoden können (1)_________ haben, die notwendige Informationenen auf (2)_________ übertragen.
Methoden können keine Restultate zurückliefern.
Wie verändere ich den Zustand eines Objektes?
Mit einer Methode.
Klassen beschreiben wie Objekte aussehen.
- Beispiel: Rezept, Plan, Schablone
Objekte repräsentieren kontrete Instanzen [0, n] einer Klasse.
- Beispiel: Kuchen, Gebäude, Kreis
Klassen beschreiben Attribute und Methoden
Objekte repräsentieren den Zustand eines Attributs
Attribute repräsentieren den Zustand eines Objektes
Methoden repräsentieren das Verhalten einer Klasse
Methoden repräsentieren das Verhalten eines Objektes
Der Quellcode repräsentiert___________.
Was ist ein Vorteil der objektorienterter Programmierung?
- Man bewegt sich immer in einer Objekt-Welt
- Es entsteht eine adäquate und durchgängige Betrachtungsweise
Was ist ein Nachteil der objektorienterter Programmierung?
- Objekte sind immer eine (starke) Vereinfachung, sie können manchmal sehr Abstrakt werden
Nenne zwei Synonyme für Objekt
Instanz, Member
Nenne zwei Synonyme für Klasse
Klassentyp, Typ
Durch den Aufruf von Methoden können Attribute und somit der Zustand des Objektes verändert werden.
(Beispiel: moveUp verschiebt das Objekt nach oben)
Der Binärcode einer Klasse wird vom Kompiler zu Quelltext kompiliert
Der Quelltext einer Klasse wird vom Kompiler zu Binärcode kompiliert
Was kann man machen, um den Überblick über die Klassen zu bewahren (bei vielen und grossen Projekten)?
Die einzelnen Klassen auf Packages aufteilen
Was verwendet man typischerweise für die Namensgebung eines Packages?
den "reverse domainname":
hslu.ch wird also zu ch.hslu...
Würde man die Klasse Person wie folgt in folgendem Package ablegen?
Package: hslu.ch.oop.ex1
Klasse: hslu.ch.oop.ex1.Person
Nein! Ist zwar möglich, aber man verwendet üblicherweise den "reverse domainname", sprich:
Package: ch.hslu.oop.ex1
Klasse: ch.hslu.oop.ex1.Person
Was sind die sieben Hauptmerkmale von Attributen?
1. Halten Zustand / Eigenschaften eines Objektes fest (z.B. Grösse eines Rechtecks)
2. Jede Instanzvariable dient zum Speichern von Daten und besitzt entsprechenden Datentyp (Daten bzw. Datenwerte können im Verlaufe der Zeit verändert werden)
3. Gesamtheit der Datenwerte eines Objektes definiert seinen aktuellen Zustand
4. existieren zeitlebens eines Objektes
5. innerhalb der ganzen Klasse sichtbar/ansprechbar
6. sollten trotz automatischer Initialisierung ggf. explizit initialisiert werden
7. erfordern zur Laufzeit für jees Objekt Speicherplatz auf dem Heap
Nenne einige elementaren (primitiven) Datentypen, welche bei der Initialisierung von Attributen verwendet werden können
double, float, long, int, short, byte, char, boolean
Nenne einen typischen Klassentyp, welcher bei der Initialisierung eines Attributs verwendet wird
String
Was ist wichtig zu beachten bei der Implementation eines Konstruktors?
Was sind Eigenschaften eines Konstruktors?
- Ermöglicht beim Erzeugen eines Objektes das ordentliche Initialisieren dieses Objektes.
- Beinhaltet (meistens) ausführbare Anweisungen
- Wird beim Erzeugen eines Objektes automatisch aufgerufen bzw. abgearbetet
- Initialisiert typischerweise die Instanzvariablen
- Besitzt häufig Parameter (Ohne Parameter: Sogenannter Default-Konstruktor)
- Eine Klasse kann mehrere verschiedenen Konstruktoren besitzen
- Vergleichbar mit einer speziellen Methode ohne Rückgabewert (hat aber immer Klassename!)
Gibt es Destruktoren?
Wenn ja, weshalb? Wenn nicht, weshalb nicht?
In Java gibt es keine, weil Java den Speicher mit Hilfe eines Garbage Collectors verwaltet.
Der Garbage Collector entfernt automatisch nicht mehr benötigte Objekte aus dem Speicher und gibt diesen wieder frei.
Was ist der Hauptvorteil von Methoden?
Wiederverwendung:
Einmal implementieren, aber an n-Stellen aufrufen und wiederverwenden