Transcript
Page 1: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Erste Schritte in Java

• In diesem Kapitel werden wir an einem kleinen Beispiel wichtige Grundbegriffe derobjektorientierten Programmierung kennenlernen.

• Wir wollen ein Programm schreiben, das in der Lage ist, Bankkonten zu verwalten.

• Ein Konto wird durch einen Wert, den Kontostand, gekennzeichnet.

• Außerdem werden wir Methoden zum Einzahlen und Abheben sowie zurKontostandsabfrage programmieren.

2. Erste Schritte in Java 2-1

Page 2: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Klassen- u. Objektdiagramm

Kontostand: intvoid einzahlen(int betrag)void abheben(int betrag)int abfrage()

kon1:Kontostand: int = 12

kon2:Kontostand: int = -5

2. Erste Schritte in Java 2-2

Page 3: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Abstraktion und Modellbildung

• Die Erstellung eines Algorithmus oder Programms erfordert die Abstraktion vonder Realität. Das heißt, es werden die zur Lösung des Problems uninteressantenBestandteile weggelassen.

• Das Ergebnis der Abstraktion ist ein Modell, das dem Computer in geeigneterForm zur Bearbeitung übergeben wird.

2. Erste Schritte in Java 2-3

Page 4: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Die Klasse Kontopublic class Konto {

int stand = 0; // Attribut der Klassepublic void einzahlen(int betrag) { // Methode zum Einzahlen

stand = stand + betrag;}

public void abheben(int betrag) { // Methode zum Abhebenstand = stand - betrag;

}

public int abfrage() { // Methode zur Abfragereturn stand;

}}

2. Erste Schritte in Java 2-4

Page 5: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Die Klasse KontoTestpublic class KontoTest {

public static void main(String[] args) {Konto kon1 = new Konto();Konto kon2 = new Konto();kon2.abheben(5);kon1.einzahlen(12);kon2.einzahlen(2);kon1.einzahlen(18);kon2.einzahlen(8);kon1.abheben(15);System.out.println("Kontostand kon1: " + kon1.abfrage());System.out.println("Kontostand kon2: " + kon2.abfrage());

}}

2. Erste Schritte in Java 2-5

Page 6: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Abstraktion und Modellbildung

Nennen Sie einige Aspekte, die bei dieser Modellbildung nicht berücksichtigt wurden!

2. Erste Schritte in Java 2-6

Page 7: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Klassen und Objekte

• Unter einer Klasse versteht man die Zusammenfassung von Objekten gleicherStruktur und gleichen Verhaltens. Die Struktur der Objekte wird durch Attribute,ihr Verhalten durch Methoden definiert.

• Eine Klasse kann als Schablone gesehen werden, die beschreibt, wie Objekteaufgebaut und wie sie bearbeitet werden können.

• Es ist guter Stil, aber nicht zwingend erforderlich, jede Klassendefinition in einereigenen Datei zu speichern. Die Datei trägt den Namen der Klasse: Konto.java,KontoTest.java.

2. Erste Schritte in Java 2-7

Page 8: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Methoden und Konstruktoren

• Methoden definieren das Verhalten der Objekte. Sie werden innerhalb einerKlassendefinition angelegt und haben auf alle Attribute des Objekts Zugriff.

• Methoden können Parameter besitzen und einen Rückgabewert liefern.

• Um von einer Klasse ein Objekt anzulegen, kann eine Variable vom Typ der Klassedeklariert und ihr mithilfe des new-Operators ein neu erzeugtes Objekt zugewiesenwerden. Es können – zumindest im Prinzip – beliebig viele Objekte angelegtwerden.

• Konstruktoren sind Methoden zum Erzeugen von Objekten einer Klasse. Siebesitzen den Namen der Klasse.

2. Erste Schritte in Java 2-8

Page 9: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Klassen- u. Objektdiagramm

KlassennameAttribut1. . .AttributnMethode1. . .Methodem

objektname:KlassennameAttribut1 = . . .. . .Attributn = . . .

2. Erste Schritte in Java 2-9

Page 10: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Applikationen und die main-Methode

• Eine Applikation oder auch Anwendung ist ein eigenständiges Programm, das zuseiner Ausführung nur den Java-Interpreter, aber keinen Browser oder sonstigeHilfsprogramme benötigt.

• Eine Klasse wird durch eine main-Methode zu einer Applikation.

public static void main(String[] args) {...

}

• Applets sind ebenfalls lauffähige Java-Programme, werden aber aus einerHtml-Seite heraus aufgerufen und benötigen zur Ausführung einen Web-Browser.Applets werde nicht durch die main-Methode gestartet.

2. Erste Schritte in Java 2-10

Page 11: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Regeln zur Code-Formatierung• Untergeordnete Teile werden hier um zwei Leerzeichen eingerückt.

In den Hausaufgaben sollen sie die Teile um vier Leerzeichen einrücken.

• Es steht niemals mehr als ein Befehl in einer Zeile.

• Sich öffnende geschweifte Klammern stehen am Ende des vorangehenden Befehls,sich schließende in einer eigenen Zeile.

• Klassennamen beginnen mit einem Groß-, Variablen- und Methodennamen miteinem Kleinbuchstaben. Setzen sich Namen aus mehr als einem Wort zusammen,fängt jedes weitere mit einem Großbuchstaben an. Paketnamen bestehen nur ausKleinbuchstaben.

• Details zur Code-Formatierung stellen wir in den Übungen vor.

2. Erste Schritte in Java 2-11

Page 12: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

javadoc – Der Java-Dokumentationsgenerator

• Mit dem Programm javadoc können aus einem Java-Programm Html-Seitengeneriert werden. Dabei wird spezieller Programmkommentar zur Dokumentationverwendet.

• javadoc Konto.java KontoTest.javajavadoc *.java

• javadoc -version -author *.java

2. Erste Schritte in Java 2-12

Page 13: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Dokumentationskommentare

/*** Diese Klasse realisert Konten. Jedes Konto wird* durch den aktuellen Kontostand dargestellt. Außerdem* werden Methoden zum Einzahlen und Abheben sowie* zur Kontostandsabfrage zur Verfügung gestellt.** @author Werner Struckmann* @version 1.0 vom 17. Oktober 1702**/

public class Konto {...

}

2. Erste Schritte in Java 2-13

Page 14: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Dokumentationskommentare

/*** Diese Methode erhöht den Betrag auf dem* Konto um den Wert des Parameters.** @param betrag eingezahlter Betrag**/public void einzahlen(int betrag) {

stand = stand + betrag;}

2. Erste Schritte in Java 2-14

Page 15: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Dokumentationskommentare

/*** Diese Methode liefert den Kontostand.** @return Kontostand**/public int abfrage() {

return stand;}

2. Erste Schritte in Java 2-15

Page 16: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Der Algorithmus von Euklidclass Euklid {

static int ggt(int a, int b) { // eine statische Methodeint r; // eine lokale Variablewhile (b != 0) {

r = a % b;a = b;b = r;

}return a;

}public static void main(String[] args) {

System.out.println("ggt(36,52) = " + ggt(36,52));}

}

2. Erste Schritte in Java 2-16

Page 17: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Objektorientierte Programmiersprachen

• Programmiersprachen, die in erster Linie für die Formulierung objektorientierterAlgorithmen gedacht sind, heißen objektorientiert.

• Objektorientierte Programmiersprachen sind beispielsweise Simula (1967),Smalltalk, C++, Oberon, Java, C# und Eiffel.

• Java enthält – im Gegensatz zu einigen anderen objektorientierten Sprachen – auchimperative Elemente.

2. Erste Schritte in Java 2-17

Page 18: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Sprachmerkmale

Java wurde vollständig neu entworfen. Die Syntax lehnt sich an C und C++ an.

Laut Sun ist Java eine

einfache, objektorientierte, verteilte, interpretierte, robuste, sichere,architekturneutrale, portable, performante, nebenläufige, dynamische

Programmiersprache, kurz die „Eier legende Wollmilchsau“.

2. Erste Schritte in Java 2-18

Page 19: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Entwicklung von Java1992–1995 Java-Vorläufer, zuerst unter dem Namen „Oak“.

Oak: Object Application Kernel, Eiche.Neu: Applets (little applications)

Jan. 1996 JDK 1.0 (Java Development Kit)Anfang 1997 JDK 1.1

Dez. 1998 JDK 1.2, wurdeJan. 1999 umbenannt in „Java 2 Plattform“Mai 2000 Java 2, JDK 1.3

Februar 2002 Java 2, JDK 1.4Ende 2004 Java 2, JDK 5.0 (interne Versionsnummer: 1.5.0) „Tiger“

Dezember 2006 Java Standard Edition 6 „Mustang“Juli 2011 Java Standard Edition 7 „Dolphin“

Erwartung: Sommer 2013 Java Standard Edition 8

Die installierte Version kann mit java -version ermittelt werden.

2. Erste Schritte in Java 2-19

Page 20: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Einige Java-Konzepte

• Nebenläufigkeit (Multithreading),

• strukturierte Fehlerbehandlung (Exception Handling, assertions),

• Unterstützung von Applets,

• große Grafik- und Multimediafähigkeiten,

• umfangreiche Klassenbibliothek.

2. Erste Schritte in Java 2-20

Page 21: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Die Programme des JDK

• javac – der Compiler,

• java – der Interpreter,

• javadoc – der Dokumentationsgenerator,

• jdb – der Debugger,

• jar – das Archivierungswerkzeug,

• appletviewer – der Appletviewer,

• javap – der Disassembler.

2. Erste Schritte in Java 2-21

Page 22: Erste Schritte in Java - TU Braunschweig · EntwicklungvonJava 1992–1995 Java-Vorläufer,zuerstunterdemNamen„Oak“. Oak:ObjectApplicationKernel,Eiche. Neu:Applets(littleapplications)

Zusammenfassung

• Eine Anwendung besteht aus einer Menge von Klassen. Anwendungen müssen einemain-Methode enthalten.

• Eine Klasse beschreibt Objekte. Die Objekte modellieren reale oder abstrakteGegenstände. Von einer Klasse können beliebig viele Objekte erzeugt werden. EinObjekt ist also eine konkrete Ausprägung einer Klasse.

• Die Objekte werden durch Attribute beschrieben und mit Methoden bearbeitet.

• Klassen lassen sich durch Pakete hierarchisch strukturieren.

• Mit Modifikatoren können Zugriffsrechte und andere Eigenschaften beeinflusstwerden.

2. Erste Schritte in Java 2-22


Recommended