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.


Set of flashcards Details

Flashcards 500
Students 19
Language Deutsch
Category Computer Science
Level University
Created / Updated 04.12.2016 / 16.08.2024
Weblink
https://card2brain.ch/box/java_objektorientiertes_programmieren
Embed
<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

Mach dir ein paar Gedanken dazu wie die Klassen und Objekte bei der Analogie "Kuchen backen" aufgebaut wären.

Ausgehend von einem bestimmten Kuchenrezept  (vgl. Klasse) lassen sich beliebig viele gleichartige Kuchen (vgl. Objekte) backen (vgl. erzeugen).

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

Wie ist eine Klasse aufgebaut?

siehe Bild

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

Wie sieht der ideale Aufbau des Klassenrumpfs (innerer Teil der Klasse) aus?
 

Zuerst die Attribute, dann die Konstruktoren und danach die Methoden (siehe Bild)

Wie werden Attribute deklariert?

Mit einem (oder keinem!) Zugriffsmodifizierer (möglichst private!) einem Datentyp (z.B. int) und einem Bezeichner (beginnen immer mit Kleinbuchstaben), gefolgt von einem Semikolon:

private int distance;

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

Wie implementiert man einen Konstruktor und wozu dient er?

Implementation: siehe Bild

Der Konstruktor ermöglicht beim Erzeugen eines Objektes das ordentliche Initialisieren dieses Objektes.

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