Java Einführung. Teil 2: Objektorientierung. Michael Hahsler

Größe: px
Ab Seite anzeigen:

Download "Java Einführung. Teil 2: Objektorientierung. Michael Hahsler"

Transkript

1 Java Einführung Teil 2: Objektorientierung Michael Hahsler

2 Java Einführung Objektorientierte Grundkonzepte

3 Inhalt Verständnis der grundlegenden Konzepte der Objektorientierung: Objekte Nachrichten Kapselung Klassen und Instanzen Vererbung Polymorphismus Darstellung in UML 2

4 Objekte Dinge aus der realen Welt (Gegenstände, Personen, Rechte,...) Haben eine Identität und besitzen: Eigenschaften (Attribute) Verhalten (Operationen) Kommunizieren mit anderen Objekten durch Nachrichten 3

5 Nachrichten und Methoden Nachrichten sind Signale von einem Objekt an ein anderes. Nachrichten lösen Verhalten (Operationen) des anderen Objekts aus. Nachricht trinken (einen Schluck) Michael 1. Dose 4

6 Kapselung (Encapsualtion, Data Hiding) Objekte können Attribute und Operationen (und damit Komplexität) verbergen. Operationen werden vor dem Zugriff von außen geschützt. Die allgemein zugänglichen Operationen nennt man Interface Wieviel Flüssigkeit ist in dieser Dose? Kann jeder diese Dose verschließen? 5

7 Klassen (-definition) Bauplan für ähnliche Objekte. Beschreibt Operationen und Attribute die eine Instanz bekommt. Instanzen werden aus Klassen erzeugt Instanzierung Volumen = x Klassendefinition Instanz Nr. 1 Instanz Nr. 2 6

8 Generalisierung, Vererbung (Inheritance) Hierarchische Beziehung zwischen Klassen mit ähnlichen Eigenschaften. Kinder (Subklassen) erben die Eigenschaften von Eltern (Superklassen). Stellt ein gemeinsames Interface sicher. Behälter Ich kenne das Interface eines Behälters (Superklasse) Dose Häferl Gießkanne Subklassen erben, erweitern oder überschreiben Eigenschaften 7

9 Polymorphismus (Griechisch: Vielgestaltigkeit) Subklassen können auch als Instanz der Superklasse (Behälter) behandelt werden, da sie durch die Vererbung ein gemeinsames Interface haben. Behälter Dose Häferl Gießkanne Ich verwende einen Behälter Jede Art von Behälter hat das gleiche Interface. Einige Operationen reagiert aber bei unterschiedlichen Behältertypen ein bisschen anders! 8

10 Modellierung und Abstraktion Eigenschaften und Verhalten müssen modelliert werden. Modellierung ist Vereinfachung! Modellierung ist Einschränkung! Was ist das Wesentliche? Hängt vom Zweck ab! Ist diese Nutzung eines Häferls durch das Modell vorgesehen? 9

11 Vorteile der Objekt-Orientierung Objekte in Programmen entsprechen realen Objekten (von Analyse bis zur Implementierung) Modularität durch die Kapselung in Objekte Wiederverwendung von Objektbibliotheken (Interfaces) Geringere Kosten bei Wartung weil der Programmcode übersichtlicher wird. 10

12 Die Unified Modeling Language UML ist eine von der OMG standardisierte Notation zur Darstellung und Entwicklung von objekt-orientierten Systemen Die Notation enthält unter anderem Diagramme für die Beschreibung von: Anforderungen (Use Case Diagram) Verhalten/Ablauf (Sequence D., Communication D.) Logischer Aufbau des Systems (Klassendiagramm) 11

13 Darstellung von Klassen in UML Diagrammen Klassen sind die Baupläne für Objekte (Instanzen) Darstellung in UML Klassenname Beispiel einer Klasse in UML PKW oder Klassenname Attribute Methoden Farbe Leistung Geschwindigkeit... Beschleunigen() Bremsen() Lenken()... Klasse W59777: PKW Rot 50km Objekte (Instanzen) 12

14 Elemente Klassendiagramm I Klassen Klassenname Beziehungen (Paths/Associations): für die Übermittlung von Nachrichten (Messages = Aufruf von Methoden) Klasse A spricht mit Klasse B Richtung der Beziehungen (Navigability): Nachrichten können nur in diese Richtung gehen Klasse A spricht mit Klasse B 13

15 Elemente Klassendiagramm II Kardinalitäten (Multiplicity): Anzahl der möglichen Instanzen Klasse A 1 spricht mit 0..* Klasse B Aggregation (Aggregation/Composition): Besteht-aus Beziehung Auto Generalisierung (Generalization): is-a Beziehung -> Vererbung in Java besteht aus 1 * Einzelteil Einzelteil Auto oder Einzelteil * Motor Karosserie... 14

16 Elemente Klassendiagramm III Abhängigkeiten (Dependencies) Klasse A benötigt Klasse B Anmerkungen oder Einschränkung PKW ist nur fahrttüchtig mit: Räder, Karosserie,... PKW 15

17 Beispiel: Klassendiagramm PKW ist nur fahrttüchtig mit: Räder, Karosserie,... PKW 0..* verwendet 1 besteht aus 1 * Motor Einzelteil Karosserieteil... Fahrzeughalter 1 besteht aus 4 Zylinder 16

18 Was Sie nach dieser Einheit wissen sollten... Was sind Objekte, Instanzen und Klassen? Was sind die wichtigsten Konzepte der Objektorientierung und was bedeuten Sie? Wie werden Klassen in UML Klassendiagrammen dargestellt? 17

19 Java Einführung Klassendefinitionen

20 Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren, Guth, Kaukal, Klimesch 2

21 Klassen definieren In der Problemanalyse haben Sie die geeigneten Klassen, ihre Eigenschaften und ihr Verhalten festgelegt. Diese implementieren Sie dann im Quellcode. KlassenName -Variablen +Methoden() class KlassenName { variablendeklarationen; methodendeklarationen;, Guth, Kaukal, Klimesch 3

22 Neue Klasse definieren (Bsp. Point) Klassendefinition Variablendefinition class Point { double x, x, y; y; Datentyp der Variablen Name der Klasse Namen der Variablen Klasse Point definiert einen Punkte in der Ebene. Point besitzt zwei Variable: x und y. Die Variablen sind vom primitiven Typ double (reelle Zahlen)., Guth, Kaukal, Klimesch 4

23 Vom Diagramm zum Quellcode (Bsp. Point) Das Klassendiagramm wird in einen kompilierbaren Java-Quellcode umgewandelt: Point -x : double -y : double class Point { double x, x, y; y;, Guth, Kaukal, Klimesch 5

24 Instanzvariablen (Member Variables) Ein Objekt speichert seine Zustände (Eigenschaften) in Instanzvariablen. Alle Objekte einer Klasse haben die selben (Typ und Anzahl) Instanzvariablen. Eine Variable ist eine Dateneinheit von einem bestimmten Datentyp und hat einen Namen. Datentyp und Name werden in der Klasse deklariert. Der Name ermöglicht den Zugriff auf den Inhalt der Variablen (Abfrage und Änderung). Die Werte der Variablen können während der Laufzeit geändert werden. Instanzvariablen werden am Beginn der Klassendefinition definiert, Guth, Kaukal, Klimesch 6

25 Instanzvariablen II (Member Variables) Instanzvariablen werden am Beginn der Klassendefinition definiert Instanzvariablen Point -x : double -y : double class Point { double x, x, y; y;, Guth, Kaukal, Klimesch 7

26 Objekte einer Klasse erzeugen (Bsp. Point) Objekte (Instanzen) einer Klasse werden mit der Methode new erzeugt (=instantiiert): KlassenName objektname = new KlassenName(Initialisierungswerte); z.b. Instanzen der Klasse Point: Point lowerleft = new Point(); Point upperright= new Point(); Point centerpoint = new Point(); Jedes erzeugte Objekt ist eindeutig und hat eigene Kopien der Variablen (x und y). Sie werden daher auch Instanzvariablen genannt., Guth, Kaukal, Klimesch 8

27 Zugriff auf Instanzvariable (Bsp. Point) ObjektName.VariablenName lowerleft.x = 0.0; lowerleft.y = 0.0; upperright.x = ; upperright.y = ; centerpoint.x = 640.0; centerpoint.y = 512.0; x lowerleft (0,0) upperright (1280,1024) centerpoint (640,512) y Jedes Objekt (Instanz) hat ein eigenes x und y., Guth, Kaukal, Klimesch 9

28 Beispiel class Point {double x, y; class UsePoint { public static void main (String[] arg) { Point lowerleft = new Point(); lowerleft.x = 3.7; lowerleft.y = 5.9; System.out.println(lowerLeft.x +, + lowerleft.y);, Guth, Kaukal, Klimesch 10

29 Arrays von Instanzen Deklaration ClassName[] name = new ClassName[n]; // n Anzahl Zugriff auf Instanzvariablen einzelner Instanzen in einem Array erfolgt mittels Indizierung auf einzelne Felder und Angabe des Variablennamens. name[index].variablenname = Wert z.b. ein Array, das 52 Point-Instanzen aufnehmen kann Point[] points = new Point[52]; // Array erzeugen points[0] = new Point(); // Eine Instanz erzeugen! points[0].x = 1.0; points[0].y = 10.0;... bzw. int i = 0; System.out.println(points[i].x + ", " + points[i].y);, Guth, Kaukal, Klimesch 11

30 Lernkontrolle Implementieren Sie eine umfangreiche Klasse Mitarbeiter. Überlegen Sie sich, welche Variablen für diese Klasse sinnvoll sind und definieren Sie ein Array, in welchem 50 Mitarbeiter gespeichert werden können. Ihr Programm soll zu bestimmten Feldern einen Teil der gespeicherten Daten ausgeben., Guth, Kaukal, Klimesch 12

31 Lernkontrolle Implementieren Sie eine Klasse Lehrveranstaltung. Überlegen Sie sich, welche Variablen für diese Klasse sinnvoll sind. Erzeugen Sie zwei Objekte dieser Klasse, die zwei der Lehrveranstaltungen repräsentieren, die Sie dieses Semester besuchen. Ihr Programm soll die Bezeichnung und die Nummer dieser Lehrveranstaltung ausgeben., Guth, Kaukal, Klimesch 13

32 Nach dieser Einheit sollten Sie wissen,... wie man in Java Klassen deklariert. wie man innerhalb einer Klasse Variablen deklariert und diesen primitive Datentypen zuweist. wie man in Java aus vordefinierten Klassen Objekte erzeugt. was der Unterschied zwischen Klassen- und Instanzvariablen ist., Guth, Kaukal, Klimesch 14

33 Java Einführung Einfache Klassen Kapitel 10

34 Inhalt Deklaration von Klassen Erzeugung und Zerstörung von Instanzen Der Punkt-Operator Instanznamen Instanzen als Argument oder Rückgabewert 2

35 Deklaration einer Klasse (Klassendefinition) Date day : int month : String year : int class Date { int day; String month; int year; Die Klasse Date hier ist nur als Beispiel gedacht! Wird ein Datum in Java verwendet, sollten die Klassen Date und DateFormat der Java API (in java.util) verwendet werden. 3

36 Erzeugung und Freigabe von Instanzen Deklaration und Erzeugung von Instanzen Date x, y; x = new Date(); x Instanz y day month year Freigabe von Instanzen Garbage Collection: Sobald kein Zeiger mehr auf das Objekt zeigt (Reference Count) x = null; // x zeigt jetzt auf nichts! 4

37 Der Punkt-Operator Verwendung der Klassenvariablen (Punkt- Operator) Date x = new Date(); x.day = 13; x.month = "November"; x.year = 2001; x Instanz 13 November 2001 day month year Achtung: month ist vom Typ String und daher kein primitiver Datentyp! 5

38 Instanznamen Zuweisung von Instanznamen Date x, y; x = new Date(); y = x; y.day = 20; x y Instanz 20 day month year Zuweisung ist nur bei gleichem Datentyp (Klassennamen) erlaubt! 6

39 Instanzen als Argumente in Date.java: class Date { int day; String month; int year; in UseDate.java: class UseDate { public static void main (String[] args) { Date x = new Date(); x.day=13; x.month="november"; x.year=2003; printdate(x); public static void printdate (Date adate) { System.out.println(aDate.day+". "+adate.month+ " "+adate.year); 7

40 Objekte als Rückgabewerte in Time.java: class Time { int h, m, s; /*hours,minutes,seconds*/ in UseTime.java: class UseTime { static Time convert (int seconds){ Time t = new Time(); t.h = seconds / 3600; t.m = (seconds % 3600) / 60; t.s = seconds % 60; return t; Objekte können nach der Erzeugung wie Variablen verwendet werden. Durch new unterliegen sie nicht den Regeln des Scopes sondern der Garbage Collection! public static void main (String[] args) { Time thetime = convert(12345); 8

41 Java Einführung Methoden in Klassen

42 Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding Konstruktoren, Guth, Kaukal, Klimesch 2

43 Klassendefinition In der Designphase wurden die Eigenschaften (Variablen) und das Verhalten (Methoden) definiert. Im Folgenden wird das Implementieren der Methoden behandelt. KlassenName -Variablen +Methoden() class KlassenName { variablendeklarationen; methodendeklarationen(){, Guth, Kaukal, Klimesch 3

44 Methoden Objekte interagieren miteinander durch das gegenseitige Aufrufen von Methoden (=Nachrichtenaustausch). Methoden sind Programmteile, die bestimmte Teilaufgaben lösen (und sollten nach diesen selbstsprechend benannt werden). Eine Methode (Nachricht) besteht aus zwei Teilen: der Signatur (bzw. Methodendeklaration), die Angaben über Sichtbarkeit, Rückgabetyp, Name der Methode und Parameter macht. dem Methodenrumpf, in dem die Deklarationen der lokalen Variablen und die eigentlichen Anweisungen stehen., Guth, Kaukal, Klimesch 4

45 Zweck von Methoden Zustand eines Objektes abfragen point1.getx(); astring.length(); Aufforderung an ein Objekt, etwas zu tun (z.b. Instanzvariable verändern) point1.setinvisible(true); astring.touppercase();, Guth, Kaukal, Klimesch 5

46 Methodendeklaration Zugriff/Sichtbarkeit Methodenname Bezeichner des Parameters public double setx(double xvalue) Typ des Rückgabewerts Typ des Parameters, Guth, Kaukal, Klimesch 6

47 Beispiel zu Methode class Point { public double x, y; //Methodendeklaration:... public double distance(point pkt) { double xdiff = x - pkt.x; double ydiff = y - pkt.y; return Math.sqrt(xdiff*xdiff +ydiff*ydiff); //Methodenaufruf: Class PointTester { public static void main(string[] args) { Point lowerleft = new Point(); lowerleft.x = 0.1; Point upperrigth = new Point(); upperright.x = 0.1; double d = lowerleft.distance(upperright); danach enthält Variable d die Euklidische Distanz zwischen lowerleft und upperright., Guth, Kaukal, Klimesch 7

48 Variablenzugriff Innerhalb der Methode einer Instanz können die eigenen Variablen und Methoden direkt (d.h. ohne Angabe des Instanznamens) aufgerufen werden. z.b. Variable x in der Instanz lowerleft bei Aufruf lowerleft.distance(upperright) Instanz lowerleft x, y Instanz upperright x, y public double distance(point pkt) { double xdiff = x - pkt.x; double ydiff = y - pkt.y; return Math.sqrt(xdiff*xdiff +ydiff*ydiff);, Guth, Kaukal, Klimesch 8

49 Standardvariable this this ist eine Referenz zum aktuellen Objekt, oder anders ausgedrückt this ist eine Referenz auf die aktuelle Instanz der Klasse in der man sich gerade befindet. Über this kann auf alle Variablen und Methoden der Instanz zugegriffen werden., Guth, Kaukal, Klimesch 9

50 this 2 class Point { double x,y; void setx(double x) { this.x = x; //Instanzvariable x wird gesetzt Instanzvariablenname Parametername Innerhalb einer Methode überschreiben bei Namenskonflikten (=gleicher Bezeichnung) die Parameternamen die Variablennamen der Klasse. Lösung: Verwendung von this oder anderen Parameterbezeichner wählen, z.b. newname., Guth, Kaukal, Klimesch 10

51 Statische Elemente Variablen und Methoden, die nicht zu einer bestimmten Instanz sonder zur Klasse gehören. Statische Variablen/Methoden sind auch dann verfügbar, wenn noch keine Instanz der Klasse erzeugt wurde. Statische Variablen/Methoden können über den Klassennamen aufgerufen werden. Deklaration durch das Schlüsselwort: static Bsp: class Point { double x, y; static int count; Point.count kann dann zum Beispiel benutzt werden um die Anzahl der Instanzen von Punkt zu speichern. Auf diese Variable kann von jeder Instanz der Klasse Point aus zugegriffen werden., Guth, Kaukal, Klimesch 11

52 Statische Elemente Programmaufbau class Programm { public static void main(string[] args) Jede Applikation braucht eine Klasse, wo die Applikation startet. Diese Klasse hat eine main-methode. Das Programm startet mit dieser Klasse bei der main-methode. Der main-methode werden die Eigenschaften public und static zugewiesen. static bedeutet, wie wir wissen, dass keine Instanz der Klasse angelegt werden muss. Und zu Beginn einer Applikation existieren ja auch noch keine Instanzen. public bedeutet hier, dass die Java Virtual Machine die Main- Methode des Programms aufrufen darf, um das Programm zu starten., Guth, Kaukal, Klimesch 12

53 Konstruktoren Jede Klasse benötigt einen oder mehrere Konstruktoren. Konstruktoren: reservieren den Speicherplatz für eine neu zu erzeugende Instanz, weisen den Instanzvariablen initiale Werte zu, haben denselben Namen wie die Klasse, werden wie Methoden deklariert, aber ohne Rückgabewert KlassenName(Parameter){... Zu einer Klasse können mehrere Konstruktoren mit verschiedenen Parametern deklariert werden., Guth, Kaukal, Klimesch 13

54 Konstruktoren Beispielklasse Student class Student { private String matrnr; private String name; private int semester; Student(String name, String matrnr) { this.name = name; this.matrnr = matrnr;, Guth, Kaukal, Klimesch 14

55 Konstruktoren - Anwendung Jedes Objekt der Klasse Student kann nun durch den Konstruktor mit zwei Werten initialisiert werden: Eine Zeichenkette, um den Namen zu initialisieren. Eine Zahl um die Matrikelnummer zu setzen. Student mystudent = new Student("Else Maier", " ");, Guth, Kaukal, Klimesch 15

56 Spezialisierte Konstruktoren Zweiter Konstruktor (in Klassendefinition) mit anderer Anzahl bzw. anderen Typen von Parametern: Student(String name, String matrnr, int semester){ this(name, matrnr); this.semester=semester; Aufruf (aus einem Programm): Student mystudent = new Student("Else Maier", " ", 5); Abhängig von der Parameterzahl und ihren Datentypen wird der entsprechende Konstruktor aufgerufen. Innerhalb dieses Konstruktors wird der erste Konstruktor über this(...); aufgerufen., Guth, Kaukal, Klimesch 16

57 Spezialisierte Konstruktoren class Student { private String name, matrnr; private int semester; Beispielklasse Student Student(String studname, String studmatrnr) { //Konstruktor 1 name = studname; matrnr = studmatrnr; Student(String name, String matrnr, int semester) { // Konstruktor 2 this(name, matrnr); //Aufruf Konstruktor 1 this.semester=semester;, Guth, Kaukal, Klimesch 17

58 Default-Konstruktor //Konstruktor 1 verwenden Student s1 = new Student("Petra Schmidt", " "); //Konstruktor 2 verwenden Student s2 = new Student("Peter Baum", " ", 2); Wenn kein Konstruktor erstellt wurde, wird von Java default-mäßig ein Konstruktor (ohne Parameter) zur Verfügung gestellt. Student s = new Student();, Guth, Kaukal, Klimesch 18

59 Zugriffskontrolle In JAVA gibt es drei Attribute und eine Standardeinstellung, die den Gültigkeitsbereich von Klassen, Variablen und Methoden regeln, d.h. festlegen, ob bzw. welche anderen Objekte auf eine Klasse, Variable oder Methode der programmierten Klasse zugreifen können: private protected public package (Standardeinstellung), Guth, Kaukal, Klimesch 19

60 Zugriffskontrolle 2 Grundsätzlich: alle Methoden oder Variablen können innerhalb der Klasse, in der sie geschrieben sind, verwendet oder aufgerufen werden. private Methoden oder Variablen können nur innerhalb der eigenen Klasse verwendet oder aufgerufen werden. keine Angabe (=Standardeinstellung) Methoden oder Variablen sind innerhalb der Eigenen Klasse und innerhalb ihres Pakets* zugreifbar. protected Wie Standardeintellung. Zusätzlich können abgeleite Klassen** (auch außerhalb des Pakets*) diese Methoden und Variablen verwenden. public Methoden oder Variablen lassen sich generell von allen anderen Klassen und Paketen aus aufrufen (Interface von Klassen in Paketen). * Pakete sind Sammlungen von zusammengehörigen Klassen. ** Vererbung wird später behandelt. Einschränkung nimmt zu, Guth, Kaukal, Klimesch 20

61 Zugriffskontrolle 3 class Student { private String name; //... class Uni { public static void main(string[] args) { Student stud1 = new Student(); stud1.name = Peter ; /* Zugriff außerhalb der Klasse Student auf private-variable nicht möglich, kann nur innerhalb der Klasse Student gesetzt werden */, Guth, Kaukal, Klimesch 21

62 Information Hiding Verstecken der Implementierung einer Klasse hinter den Methoden, die auf ihre internen Daten ausgeführt werden. Das heißt: kein direkter Zugriff auf die Variablen, sondern nur via Methodenaufruf: stud1.setname("peter Meyer"); String name = stud1.getname(); Dieses wichtige Konzept der oop wird auch Data Encapsulation (Datenkapselung) genannt., Guth, Kaukal, Klimesch 22

63 Information Hiding - Code 1 Die Deklaration der Variablen als private verhindert den unerwünschten Zugriff auf die Variablen von außerhalb der Klasse. class Student { private String private int... name; matnr;, Guth, Kaukal, Klimesch 23

64 Information Hiding - Code 2 Auf die Variablen kann nur über die Methoden get und set zugegriffen werden. Diese Methoden müssen public deklariert werden.... public String getname() { return name; public int getmatnr() { return matnr;..., Guth, Kaukal, Klimesch 24

65 Information Hiding - Code 3... public void setname(string name) { this.name = name; public void setmatnr(string matnr) { this.matnr = matnr; Mit den Methoden set können den entsprechenden Variablen Werte zugewiesen werden., Guth, Kaukal, Klimesch 25

66 Klasse Student gesamt class Student { private String name; private int matnr; Student(String name, int matnr){ this.name = name; this.matnr = matnr; public String getname(){ return name; public int getmatnr(){ return matnr; /* keine set-methoden: Die Variablen können nur gelesen werden */, Guth, Kaukal, Klimesch 26

67 Information Hiding - Vorteile Die Implementierung der Daten kann verändert werden, ohne dass Programmcode außerhalb der Klasse geändert werden muss. Der Zugriff auf die verschiedenen Variablen kann eingeschränkt werden. Dies verhindert sowohl Datenmanipulationen als auch irrtümliche Veränderung oder Abfrage der Daten. Außerdem können damit die Programmierfehler eingeschränkt werden., Guth, Kaukal, Klimesch 27

68 Nach dieser Einheit sollten Sie... die Zugriffskontrolle von Methoden kennen, die Signatur verschiedener Methoden interpretieren können, die Bedeutung der Konstruktoren kennen, Methoden implementieren können, Information Hiding und statische Methoden kennen und anwenden können., Guth, Kaukal, Klimesch 28

69 Java Einführung Objektorientierung Kapitel 11

70 Inhalt Methoden in Klassen Aufruf der Methoden Konstruktoren Statische Komponenten 2

71 Klassen Klassen fügen Attribute und Methoden zu einer logischen Einheit zusammen. Name Attribute Methoden Klassen sind die Grundbausteine der objektorientierten Programmierung. 3

72 Methoden in Klassen Fraction int n int d void set (int n, int d) void add (Fraction f) void subtract (Fraction f) void multiply (Fraction f) void divide (Fraction f) class Fraction { public int n; // Zaehler public int d; // Nenner public void set (int nn, int dd){ n=nn; d=dd; public void add (Fraction f){ n = n*f.d + f.n*d; d = d*f.d; public void substract(fra

73 Aufruf von Methoden in Klassen I Fraction a = new Fraction(); a.set(1,2); Instanz a... void set (int nn, int dd) { n = nn; d = dd;... Instanzvariablen können in den Methoden auch mit this angesprochen werden. Z.B. kann die Methode set so aussehen: void set (int n, int d) { this.n = n; this.d = d; 5

74 Aufruf von Methoden in Klassen II Fraction a = new Fraction(); a.n=1; a.d=2; Fraction b = new Fraction(); b.n=3; b.d=5; a.add(b); Instanz a... void add (Fraction f) { n = n*f.d + f.n*d; d = d*f.d;... Die Instanz a enthält nun das Ergebnis der Addition. 6

75 Konstruktoren Wenn ein Instanz erzeugt wird, werden alle Klassenvariablen automatisch erzeugt und erhalten folgende Werte: Zahlen: 0 oder 0.0 Referenzen (Strings, Arraynamen, Instanznamen): null Boolean: false Bei der Erzeugung wir eine spezielle Methode aufgerufen (Konstruktor, gleicher Name wie die Klasse, kann Argumente haben). In dieser Methode können die Werte der Instanzvariablen initialisiert werden. 7

76 Definition von Konstruktoren class Fraction{ int n,d; Fraction () { // Default-Konstruktor n=0; d=1; Fraction (int n, int d) { this.n = n; // this bezeichnet die Klassenvariablen this.d = d; Fraction (Fraction tocopy) { // Copy-Konstrukor* this.n = tocopy.n; this.d = tocopy.d;... * Java unterstützt die Methode.clone() der Klasse Object 8

77 Verwendung von Konstruktoren Aufruf: Default Konstruktor Fraction c = new Fraction(); // 0/1 Aufruf: Konstruktor mit Argumenten Fraction d = new Fraction(3,7); // 3/7 9

78 Statische Komponenten Variablen und Methoden die mit dem Schlüsselwort static deklariert werden: Existieren nur 1x (pro Klasse pro Programm) Existieren auch ohne dass eine Instanz der Klasse erzeugt werden muss Können auch über den Klassennamen angesprochen werden Class.field bzw. Class.method() 10

79 Bsp: Statische Komponenten II class MyProg { static void print (String s){ Out.println(s); public static void main (String[] arg) { for (int i=0; i<arg.length; i++) { print(arg[i]); Die Methode main wird beim Programmstart mit dem Array aus Strings aufgerufen. Z.B. java MyProg Hallo, wie geht es? 11

80 Die Klasse Object in Java In Java wird jede Klasse von Object abgeleitet und erbt daher einige Methoden. Object String tostring() Object clone() boolean equals(object obj) Fraction String... siehe java.lang.object in der API Spezifikation 12

81 tostring() Automatische Konversion zu String class Fraction { int n, d; public String tostring() { return("fraction(" + d + "/" + n + ")") class TestFraction { public static void main(string[] args) { f1 = new Fraction(1,2); System.out.println(f1); 13

82 Java Einführung HelloNewWorld oder HelloWorld - revised

83 Das original Programm Methode class HelloWorld { public static void main (String[] args) { Kommentar // Hello world ausgeben System.out.println( Hello world ); Anweisung Block Klasse 2

84 Das Problem Das Programm ist nicht 'sehr' objekt-orientiert Es verwendet keine Klassen, Methoden und Nachrichten! 3

85 Das neue Design HelloNewWorld Mouth +main() +shout(message) 4

86 Implementierung Mouth Die Datei Mouth.java: class Mouth { // Konstruktor Mouth () { System.out.println("Hello, I am a new mouth!"); // Methoden public void shout(string amessage) { System.out.println("The mouth shouts: "+amessage); 5

87 Implementierung HelloNewWorld Die Datei HelloNewWorld.java: class HelloNewWorld { public static void main (String[] args) { // Neue Instanz von Mouth Mouth OurMouth = new Mouth(); // Methode shout aufrufen OurMouth.shout("Hello New World!"); 6

88 Kompilierung javac HelloNewWorld.java durch diesen Befehl wird die Datei HelloNewWorld.java übersetzt. Da der Kompiler feststellt, dass auch die Klasse Mouth benötigt wird, wird diese im aktuellen Verzeichnis gesucht und auch übersetzt. Ergebnis: HelloNewWorld.class Mouth.class Ausführung: java HelloNewWorld 7

89 Java Einführung Objekt-Datentypen und Strings Kapitel 8 und 9

90 Inhalt Was sind Objekt-Datentypen Sonderheiten bei Zuweisung und Vergleich Zeichenketten (Strings) Zeichencodes Char, Char-Arrays und Strings String-Operationen String-Konversion 2

91 Objekt-Datentyp Jede Klasse in Java stellt einen sogenannten Objektdaten-Typ (Benuzerdefinierter Datentyp) dar. Die Instanzen verhalten sich meist wie primitive Datentypen, es gibt jedoch wichtige Unterschiede! 3

92 Bsp: Date class Date { int day; String month; int year; Date int day String month int year Date kann nach der Deklaration wie ein Datentyp verwendet werden. 4

93 Erzeugung und Freigabe Deklaration und Erzeugung von Instanzen Date x, y; x = new Date(); x Objekt y day month year Freigabe von Objekten Garbage Collection: Sobald kein Zeiger mehr auf das Objekt zeigt (Reference Count) x = null; // x zeigt jetzt auf nichts! 5

94 Punkt-Operator Verwendung der Klassenvariablen (Punkt- Operator) Date x = new Date(); x.day = 13; x.month = "November"; x.year = 2001; x Objekt 13 November 2001 day month year Achtung: month ist vom Typ String und daher eigentlich ein Array. 6

95 Zuweisung Zuweisung von Objektnamen Date x, y; x = new Date(); y = x; y.day = 20; x y Objekt 20 day month year Es wird nur die Referenz kopiert, nicht der Wert! Zuweisung ist nur bei gleichem Datentyp (Klassennamen) erlaubt! 7

96 Vergleich Date x, y; x = new Date(); y = new Date(); y.day = 20; x.day = 20; if (x==y) { System.out.println("x ist gleich y"); x y Instanz 20 Instanz 20 day month year day month year Vergleich ergibt immer falsch, weil die Zeiger verglichen werden! 8

97 Übergabe als Parameter Date addoneday (Date b){ b.day++; return b;... Date a = new Date(); a.day=19; b a c Instanz day month year Date c = addoneday(a); // a hat jetzt auch 20! 9

98 Zeichenketten in Java (Strings) Zeichenketten bestehen aus einzelnen Zeichen. Diese Zeichen sind vom primitiven Datentyp char Zeichenketten können als Array von char erzeugt werden, oder als eigener Objekt-Datentyp String (ist in den Bibliotheken von Java vorhanden unter java.lang.string) 10

99 Zeichenkonstanten und -codes 'a', 'A', '?'... Zeichen werden in Java codiert als: ASCII (American Standard Code of Information Interchange): 128 Zeichen, benutzt 7 Bit, keine Umlaute... Darstellung: Zahl (Hex oder Dezimal) Unicode: benutzt 2 Byte, Zeichen, ersten 128 sind identisch mit ASCII (siehe: ) Darstellung: \unnnn... nnnn ist der Code in Hex 11

100 Zeichenvariable (Primitiver Datentyp) Deklaration char ch; Zuweisung ch = 'a'; Kompatibilität mit int char ch2 = 'x'; int i = ch2; // ok, Code in int-variable ch2 = (char) (i+1); 12

101 Standardfunktionen für Zeichen Auswahl von Java-Bibliothek Standardfunktionen: if (Character.isLetter(ch))... // Unicode? if (Character.isDigit(ch))... // Digit? ch=character.touppercase(ch); // Groß ch=character.tolowercase(ch); // Klein siehe: java.lang.character 13

102 char-arrays Eine Kette von Zeichen. Deklaration: char[] s1 = new char[20]; char[] s2 = {'a','b','c'; Zugriff auf einzelne Zeichen: s2[1]='x'; // ersetzt 'b' durch 'x' 14

103 Strings - Zeichenketten (Objekt-Datentyp) Char-Arrays sind relativ umständlich zu verwenden. Da Zeichenketten häufig vorkommen, stellt Java einen eigenen Bibliothekstyp mit dem Namen String (in java.lang) zur Verfügung. 15

104 String-Konstanten Zeichenfolge zwischen doppelten Hochkommas "Hello, I am a String!" "Alice\t2000\nBob\t1500" "Das \"-Zeichen " "Griechische Symbol (pi): \u03c0" Achtung: Unterschied zwischen 'x' und "x" 16

105 Datentyp String Deklaration String a, b; Zuweisung a = "Hallo"; b = a; a b Hallo Achtung: Strings verhalten sich wie Arrays. Der Name ist nur ein Zeiger auf das "String-Objekt" 17

106 Verkettung von Strings Verkettung String a = "Hallo"; a = a + " Welt!"; // einfache Verkettung Andere Datentypen (z.bsp: int) werden zu String konvertiert int i = 12; String b = "Es ist " + i; System.out.println("i hat den Wert " + i); 18

107 Vergleich von Strings String s = new String("Hallo"); if (s=="hallo") {... // Fehler: Referenzen werden verglichen! if (s.equals("hello")) {... /* die richtige Funktion (siehe: java.lang.string) */ 19

108 Stringoperationen die Java-Bibliothek definiert eine Reihe nützlicher Funktionen für Strings (siehe: java.lang.string) String s = "a long string"; string s2; int i; char ch; i = s.length(); // bei Arrays kein ()! ch = s.charat(3); i = s.indexof("ng"); s2= s.substring(2,6) if (s.startswith("abc")) {... 20

109 java.lang.stringbuffer Strings haben nach der Erzeugung eine fixe Länge. Zum zeichenweisen Aufbau eines Strings ist dies ungeeignet. int i; // x kann sein char,int,float... StringBuffer b = new StringBuffer("Hallo"); b.append("rld"); i= b.length(); b.insert(4,"o W"); // an Stelle 4 einfügen b.delete(0,4); // Zeichen von 0-4 löschen b.replace(1,3,"abc"); /* Zeichen 1-3 durch "abc" ersetzen */ 21

110 Stringkonversionen Oft müssen Strings in andere Datentypen konvertiert werden oder umgekehrt: int i = Integer.parseInt("123"); float f = Float.parseFloat("3.14"); String s = String.valueOf(x); char[] a = s.tochararray(); 22

111 Nach dieser Einheit sollten Sie wissen,... was der Unterschied zwischen primitiven und Objekt-Datentypen ist wie Objekt-Datentypen erzeugt, verwendet uns als Parameter übergeben werden wie Strings in Java funktionieren 23

112 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7

113 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2

114 Das Klassendiagramm Zweck der Darstellung Logischen Aufbau des Systems Statischen Aspekte Zusammenhänge und Beziehungen zwischen den Komponenten 3

115 Klassen in UML Klassen sind die Baupläne für Objekte (Instanzen) Darstellung in UML Klassenname Beispiel einer Klasse in UML PKW oder Klassenname Attribute Methoden Farbe Leistung Geschwindigkeit... Beschleunigen() Bremsen() Lenken()... Klasse W59777: PKW Rot 50km Objekte (Instanzen) 4

116 Elemente Klassendiagramm I Klassen Klassenname Beziehungen (Paths/Associations): für die Übermittlung von Nachrichten (Messages = Aufruf von Methoden) Klasse A spricht mit Klasse B Richtung der Beziehungen (Navigability): Nachrichten können nur in diese Richtung gehen Klasse A spricht mit Klasse B 5

117 Elemente Klassendiagramm II Kardinalitäten (Multiplicity): Anzahl der möglichen Instanzen Klasse A 1 spricht mit 0..* Klasse B Aggregation (Aggregation/Composition): Besteht-aus Beziehung Auto besteht aus 1 * Einzelteile Generalisierung (Generalization): is-a Beziehung -> Vererbung in Java Einzelteil Motor Karosserie... 6

118 Elemente Klassendiagramm III Abhängigkeiten (Dependencies) Klasse A benötigt Klasse B Anmerkungen oder Einschränkung PKW ist nur fahrttüchtig mit: Räder, Karosserie,... PKW 7

119 Beispiel: Klassendiagramm PKW ist nur fahrttüchtig mit: Räder, Karosserie,... PKW 0..* verwendet 1 besteht aus 1 * Motor Einzelteil Karosserieteil... Fahrzeughalter 1 besteht aus 4 Zylinder 8

120 Umsetzung von Generalisierung Einzelteil Motor Karosserie... Vererbung abstract class Einzelteil { // muss nicht unbedingt abstract sein!... class Motor extends Einzelteil {... 9

121 Umsetzung von Komposition I PKW class Rad {... besteht aus 1 4 Rad class PKW { Rad livorad, revorad, lihirad, rehirad; //Instanznamen PKW() { /* Erzeugung der Instanzen der Räder */ livorad = new Rad(); revorad = new Rad(); lihirad = new Rad(); rehirad = new Rad(); 10

122 Umsetzung von Komposition II PKW 1 class Einzelteil {... class PKW { final int ANZAHL=100; // besteht aus 100 Teilen Einzelteil[] dieeinzelteile; /* Implementierung als Array von Instanznamen (auch als Container moeglich) */ besteht aus PKW() { dieeinzelteile = new Einzelteil[ANZAHL]; /* Array erzeugen */ for(int i=0;i<anzahl; i++) { dieeinzelteile[i] = new Einzelteil(); /* Erzeugung der Instanzen der Einzelteile */ * Einzelteil 11

123 Umsetzung einer Assoziation class PKW {... class Fahrzeughalter { PKW meinpkw; // nur Instanzname PKW... 1 void PKWkaufen(PKW einpkw) { verwendet meinpkw=einpkw; // Referenz auf die Inst. setzen 1 class Michael { Fahrzeughalter public static void main(string[] args) { PKW PKW1 = new PKW(); // PKW erzeugen Fahrzeughalter michael = new Fahrzeughalter(); michael.pwkkaufen(pkw1); // PKW an den Farzeughalter uebergeben 12

124 Umsetzung von komplexeren Assoziationen Assoziationen mit höherer (>1) Kardinalität Es muss ein Container (z.b. Array, Liste) verwendet werden. Assoziationen mit Navigierbarkeit in beide Richtungen: Jede Seite muss eine Referenz der anderen Seite haben. Achtung: Problem mit Inkonsistenz! 13

125 Übung Implementieren Sie das gesamte Klassendiagramm. Überlegen Sie sich sinnvolle Attribute und Methoden sowie Einzelteile (mindestens 4). PKW 0..* verwendet 1 besteht aus 1 * Motor Einzelteil Karosserie... Fahrzeughalter 1 besteht aus 4 Zylinder 14

126 Nach dieser Einheit sollten Sie wissen,... wie Beziehungen in UML-Klassendiagrammen dargestellt werden welche Arten von Beziehungen es gibt wie diese Beziehungen in Java umgesetzt werden können. 15

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9 Java Einführung Objekt-Datentypen und Strings Kapitel 8 und 9 Inhalt Was sind Objekt-Datentypen Sonderheiten bei Zuweisung und Vergleich Zeichenketten (Strings) Zeichencodes Char, Char-Arrays und Strings

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Java Einführung Objektorientierte Grundkonzepte

Java Einführung Objektorientierte Grundkonzepte Java Einführung Objektorientierte Grundkonzepte Inhalt Verständnis der grundlegenden Konzepte der Objektorientierung: Objekte Nachrichten Kapselung Klassen und Instanzen Vererbung Polymorphismus Darstellung

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1 Java: Der Einstieg Algorithmen und Datenstrukturen II 1 Grundlegendes zu Java: Historisches 1990-1991: Entwicklung der Programmiersprache OAK durch James Gosling von Sun Microsystems (zunächst für Toaster,

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Der Datentyp String. Stringvariable und -vergleiche

Der Datentyp String. Stringvariable und -vergleiche Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da

Mehr

Grundlagen der Programmierung Teil1 Einheit IV Okt. 2009

Grundlagen der Programmierung Teil1 Einheit IV Okt. 2009 Grundlagen der Programmierung Teil1 Einheit IV - 30. Okt. 2009 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Methoden Methoden sind Programmteile,

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata: Informatik mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da aber

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Orientierte Modellierung mit der Unified Modeling Language

Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Bis jetzt kennen wir (fast) nur primitive Datentypen. Diese entsprechen weitestgehend der Hardware des Rechners (z.b. besitzt ein Rechner Hardware um zwei floats zu addieren).

Mehr

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Java I Vorlesung Vererbung und Sichtbarkeit

Java I Vorlesung Vererbung und Sichtbarkeit Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Abschnitt 6: Klassen, Objekte und Methoden in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java Abschnitt 6: Klassen, Objekte und Methoden in Java 6. Klassen, Objekte und Methoden in Java 6.1 Klassen 6.2 Objekte 6.3 Methoden 6.4 Zusammenfassung 6 Klassen, Objekte und Methoden in Java Informatik 2

Mehr

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,

Mehr

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java Kapitel 2 Java: Der Einstieg Im vorigen Kapitel haben wir die Syntax der Sprache Mini-Java kennengelernt. Bevor wir in Kapitel 3 ausführlich auf Syntax und Semantik der Programmiersprache Java eingehen

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte

Mehr

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Klassen mit Instanzmethoden

Klassen mit Instanzmethoden Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure 8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung 2 Einordnung in den Softwareentwicklungsprozess Softwareentwicklung mit JAVA Planung Entwurf Programmierung Test/Evaluation/Pflege

Mehr