From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100048.html | 244 +++++++++++++++++++++ 1 file changed, 244 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100048.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100048.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100048.html b/Master/Reference Architectures and Patterns/hjp5/html/k100048.html new file mode 100644 index 0000000..b6a4ac9 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100048.html @@ -0,0 +1,244 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 7 - OOP I: Grundlagen +
+
+ + + + +

7.2 Klassen und Objekte in Java

+
+ +
+ + + + +

7.2.1 Klassen

+ +

+Eine Klassendefinition in Java wird durch das Schlüsselwort class +eingeleitet. Anschließend folgt innerhalb von geschweiften Klammern +eine beliebige Anzahl an Variablen- und Methodendefinitionen. Das +folgende Listing ist ein Beispiel für eine einfache Klassendefinition: + + +

+ + + + + +
+ +
+001 /* Auto.java */
+002 
+003 public class Auto
+004 {
+005   public String name;
+006   public int    erstzulassung;
+007   public int    leistung;
+008 }
+
+
+Auto.java
+ +Listing 7.1: Eine einfache Klassendefinition

+ +

+Diese Klasse enthält keine Methoden, sondern lediglich die Variablen +name, erstzulassung +und leistung. Eine solche methodenlose +Klassendefinition entspricht dem Konzept des Verbunddatentyps aus +C oder PASCAL (struct bzw. record). +Die innerhalb einer Klasse definierten Variablen werden wir im folgenden +(analog zu C++) meist als Membervariablen +bezeichnen. Die in Abschnitt 7.1.3 +erwähnten Begriffe Instanzvariablen oder Instanzmerkmal +sind aber ebenso gültig. + + + + +

7.2.2 Objekte

+ +

+Um von einer Klasse ein Objekt anzulegen, muss eine Variable vom Typ +der Klasse deklariert und ihr mit Hilfe des new-Operators +ein neu erzeugtes Objekt zugewiesen werden: + + +

+ + + + +
+ +
+001 Auto meinKombi;
+002 meinKombi = new Auto();
+
+
+ +Listing 7.2: Erzeugen eines Objekts mit new

+ +

+Die erste Anweisung ist eine normale Variablendeklaration, wie sie +aus Kapitel 4 bekannt +ist. Anstelle eines primitiven Typs wird hier der Typname einer zuvor +definierten Klasse verwendet. Im Unterschied zu primitiven Datentypen +wird die Objektvariable meinKombi +als Referenz gespeichert. Die zweite Anweisung generiert mit +Hilfe des new-Operators +eine neue Instanz der Klasse Auto +und weist sie der Variablen meinKombi +zu. + +

+In Java wird jede selbstdefinierte Klasse mit Hilfe des new-Operators +instanziert. Mit Ausnahme von Strings und Arrays, bei denen der Compiler +auch Literale zur Objekterzeugung zur Verfügung stellt, +gilt dies auch für alle vordefinierten Klassen der Java-Klassenbibliothek. +

+ + + + + + + + + + + +
+ +

+Wie bei primitiven Variablen lassen sich beide Anweisungen auch kombinieren. +Das nachfolgende Beispiel deklariert und initialisiert die Variable +meinKombi:

+ + + + +
 Tipp 
+
+ + +

+ + + + +
+ +
+001 Auto meinKombi = new Auto();
+
+
+ +Listing 7.3: Kombinierte Deklaration und Initialisierung einer Objektvariablen

+ +

+Nach der Initialisierung haben alle Variablen des Objekts zunächst +Standardwerte. Referenztypen haben den Standardwert null, +die Standardwerte der primitiven Typen können Tabelle 4.1 +entnommen werden. Der Zugriff auf sie erfolgt mit Hilfe der Punktnotation +Objekt.Variable. Um unser Auto-Objekt +in einen 250 PS starken Mercedes 600 des Baujahrs 1972 zu verwandeln, +müssten folgende Anweisungen ausgeführt werden: + + +

+ + + + +
+ +
+001 meinKombi.name = "Mercedes 600";
+002 meinKombi.erstzulassung = 1972;
+003 meinKombi.leistung = 250;
+
+
+ +Listing 7.4: Zuweisen von Werten an die Variablen eines Objekts

+ +

+Ebenso wie der schreibende erfolgt auch der lesende Zugriff mit Hilfe +der Punktnotation. Die Ausgabe des aktuellen Objektes auf dem Bildschirm +könnte also mit den folgenden Anweisungen erledigt werden: + + +

+ + + + +
+ +
+001 System.out.println("Name........: "+meinKombi.name);
+002 System.out.println("Zugelassen..: "+meinKombi.erstzulassung);
+003 System.out.println("Leistung....: "+meinKombi.leistung);
+
+
+ +Listing 7.5: Lesender Zugriff auf die Variablen eines Objekts

+
+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3