Lexikalische Konventionen

Größe: px
Ab Seite anzeigen:

Download "Lexikalische Konventionen"

Transkript

1 # 17 Kap. 3 Lexikalische Konventionen Kap. 3.1 Kap Kap Kap. 3.2 Kap Kap Kap Kap Kap Kap Zeichenvorrat von Java Programmier-Styleguide Der Unicode Lexikalische Einheiten Trenner Namen Reservierte Wörter Literale und symbolische Konstanten Satzzeichen Operatoren Kap. 3.1 Zeichenvorrat von Java # 18 Java benutzt den Unicode-Zeichensatz Buchstaben (ASCII / ISO-Latin-1: 1 Byte und Unicode: 2 Byte) A, B,...Y, Z; a, b,...y, z; _, $ Ziffern (ASCII / ISO-Latin-1: 1 Byte und Unicode: 2 Byte) 0, 1,...8, 9 Leerzeichen (blank) Steuerzeichen (Zeilenenden, Tabulator, Seitenvorschub) Sonderzeichen (separators) () { [] ;,. Sonderzeichen für Operatoren = > <!? : & + - * / ^ % für Ersatzdarstellungen \ Anführungszeichen einfach a und doppelt Name: Harms: "SoftwareEntwicklung", SWENT, WS 2001/02-9 -

2 # 19 Quelltext lässt sich allein in ASCII (American Standard Code for Information Interchange) - Zeichen schreiben. Unicode-Zeichen können durch \ux1x2x3x4 eingefügt werden. Dabei sind x1,...x4 hexadezimale Zeichen: 0,1,2,3,4,5,6, 7,8,9,A,B,C,D,E. \ux1x2x3x4 entspricht dem Unicodezeichen mit der dezimalen Nummer x1*16 3 +x2*16 2 +x3*16 1 +x4*16 0 Java unterscheidet Groß- und Kleinschreibung (alle reservierten Wörter werden mit kleinen Buchstaben geschrieben) Kap Programmier-Styleguide #20 Variablennamen klein variable Datenfeldnamen klein vorname Methodennamen klein methode() Klassennamen 1. Buchstabe groß, Rest klein Person symbol. Konstanten alle Buchstaben groß MAXIMUM Zusammengesetzte Namen: drittewurzel verschiebeschwerpunkt() Variable Methode Kap Der Unicode Die ersten 256 Zeichen sind die ASCII- / ISO-Latin-1-Zeichen. Es gibt über Unicode-Zeichen. Harms: "SoftwareEntwicklung", SWENT, WS 2001/

3 Kap. 3.2 Lexikalische Einheiten # 21 Trenner -> Parser (Syntaxprüfung) -> Wörter der Sprache Compiler verwandelt Quelltext in Unicode. Kap Trenner Whitespace-Zeichen (Leerzeichen, horizontaler Tabulator, Zeilentrenner, Seitenvorschub) Kommentare Blockkommentar /* Blockkommentar */ Zeilenkommentar // Zeilenkommentar Dokumentationskommentar /** Dok.kommentar u.a.) Kap Namen #22 Ein Name (Bezeichner) besteht aus einer beliebig langen Zeichenkette aus Buchstaben und Ziffern. Kap Reservierte Wörter abstract, boolean, char, class,..., while Kap Literale und symbolische Konstanten Literal: 1200 ; ; true, false ; Meier Symbol. Konstante: final int UPPER = 300; Ersatzdarstellungen/Escape-Sequenzen: \n \t \b \r \f \\ \ \ Harms: "SoftwareEntwicklung", SWENT, WS 2001/

4 Kap Satzzeichen # 23 () { [] ;,. Kap Operatoren = > <! ~? : == >= <=!= && () []. + - * / & ^ % << >> >>> += -= *= /= &= = ^= %= <<= >>= >>>= new instanceof (type) Beispiele für Operatoren # 24 u++; entspricht u = u + 1; (Postfix) int u = 1; int v; v = u++; Erg.: v = 1 / Nebeneffekt: u=2 ++u; entspricht u = u + 1; (Präfix) int u = 1; int v; v = ++u; Erg.: v = 2 / Nebeneffekt: u=2 u--; entspricht u = u - 1; (Postfix) int u = 1; int v; v = u--; Erg.: v = 1 / Nebeneffekt: u=0 --u; entspricht u = u - 1; (Präfix) int u = 1; int v; v = --u; Erg.: v = 0 / Nebeneffekt: u=0 a += b; entspricht a = a + b; a *= b; entspricht a = a * b; Harms: "SoftwareEntwicklung", SWENT, WS 2001/

5 Kap. 10 Vererbung und Polymorphie # 25 Kap Das Konzept der Vererbung Kap Spezialisierung und Generalisierung Kap Erweitern einer Basisklasse in der abgeleiteten Klasse Kap Kap Polymorphie und das Liskov Substitution Principle Konstruktoren bei abgeleiteten Klassen Kap Typkonvertierung von Referenzen Kap Implizite Typkonvertierung von Referenzen Kap Explizite Typkonvertierung von Referenzen Kap Gültige Up- und Down-Cast Operationen Kap Verdecken und Überschreiben Kap Verdecken von Datenfeldern Kap. 10 Kap Vererbung und Polymorphie Das Konzept der Vererbung Person name setname() print() is a Student matrikelnummer setmatrikelnummer() printmatrikelnummer() # 26 Harms: "SoftwareEntwicklung", SWENT, WS 2001/

6 class Person { private String name; public void setname(string name) { this.name = name; public void print() { System.out.println("Name: " + name); class Student extends Person { private int matrikelnummer; public void setmatrikelnummer(int nr) { this.matrikelnummer = nr; public void printmatrikelnummer() { System.out.println("Matrikelnummer: " + matrikelnummer); # 27 class Test1 { public static void main(string[] args){ Student studiosus = new Student(); studiosus.setname("maier"); studiosus.setmatrikelnummer(56123); studiosus.print(); studiosus.printmatrikelnummer(); # 28 Person pers = new Person(); pers.setname("mueller"); pers.print(); Ausgabe: Name: Maier Matrikelnummer: Name: Mueller Harms: "SoftwareEntwicklung", SWENT, WS 2001/

7 # 29 pers:person studiosus:student name = "Mueller" Jedes Objekt der Klasse Person hat die Datenfelder und Methoden: name setname() print() ererbt von der Klasse Person name = "Maier" matrikelnummer = Jedes Objekt der Klasse Student hat die Datenfelder und Methoden: name setname() print() eigene Elemente der Klasse Student matrikelnummer; setmatrikelnummer(); printmatrikelnummer(); Kap Spezialisierung und Generalisierung # 30 Basisklasse Spezialisierung Generalisierung abgeleitete Klasse1 abgeleitete Klasse2 Harms: "SoftwareEntwicklung", SWENT, WS 2001/

8 Kap Erweitern einer Basisklasse in der abgeleiteten Klasse # 31 In der Sohnklasse Student kommt zum geerbten Protokoll der Vaterklasse Person noch ein sohnspezifisches Zusatzprotokoll. Vererbt werden Instanzvariablen und Instanzmethoden, Klassenvariablen und Klassenmethoden. Die Sohnklasse erbt auch die privaten Datenfelder und privaten Methoden. Aber nicht alles ererbte ist in der Sohnklasse automatisch sichtbar und zugreifbar. Die Vaterklasse kann die Sichtbarkeit steuern. class Person { private String name;... class Student kann nicht auf name zugreifen class Person { protected String name;... class Student kann auf name zugreifen Kap Konstruktoren bei abgeleiteten Klassen class Person { private String name; public Person(String name) { this.name = name; public void print() { System.out.println("Name: " + name); class Student extends Person { private int matrikelnummer; public Student(String name,int matrikelnr) { super(name); this.matrikelnummer = matrikelnr; public void printmatrikelnummer() { System.out.println("Matrikelnummer: " + matrikelnummer); # 32 Harms: "SoftwareEntwicklung", SWENT, WS 2001/

9 class Test2 { public static void main(string[] args){ Student stud = new Student("Maier", 56123); // stud.setname("maier"); // stud.setmatrikelnummer(56123); stud.print(); stud.printmatrikelnummer(); # 33 Person pers = new Person("Mueller"); // pers.setname("mueller"); pers.print(); Ausgabe: Name: Maier Matrikelnummer: Name: Mueller Der Konstruktor der Basisklasse (super()) ist immer an erster Stelle des Konstruktors der abgeleiteten Klasse aufzurufen. # 34 Ein voreingestellter Default-Konstruktor einer Sohnklasse ruft automatisch den parameterlosen Konstruktor (d.h. den voreingestellten Default-Konstruktor) der Vaterklasse auf. Alle Klassen sind von der Klasse Object abgeleitet. Der Konstruktor der Basisklasse wird immer vor den Initialisierungsanweisungen des Konstruktors der abgeleiteten Klasse ausgeführt. Dies aus 2 Gründen: Übernahme der Initialisierungen der Basisklasse. Überschreibung der Datenfelder der Basisklasse (wenn sie nicht als private deklariert sind). Harms: "SoftwareEntwicklung", SWENT, WS 2001/

10 Ein formaler Parameter des Konstruktors der abgeleiteten Klasse kann als aktueller Parameter an den Konstruktor der Basisklasse übergeben werden. Z. B.: public Student(String name,int matrikelnr) { super(name); this.matrikelnummer = matrikelnr; # 35 Wird der voreingestellte Default-Konstruktor durch einen Konstruktor mit Parametern ersetzt, so steht für diese Klasse kein parameterloser Konstruktor mehr zur Verfügung. Wird in einer abgeleiteten Klasse jetzt super() nicht explizit aufgerufen, dann setzt der Compiler super() ohne Parameter ein. Da der zugehörige Konstruktor nicht existiert, erhält man eine Fehlermeldung. Es ist deshalb notwendig für eine Basisklasse, neben einem Konstruktor mit Parametern auch einen Default-Konstruktor ohne Paramter zu schreiben. # 36 Kap Polymorphie und das Liskov Substitution Principle Polymorphie (Vielgestaltigkeit) ist ein wichtiger Aspekt der objektorientierten Programmierung. Polymorphie bei Operationen Ein und derselbe Methodenaufruf kann bei verschiedene Klassen einen unterschiedlichen Methodenrumpf haben. Polymorphie von Objekten gibt es nur bei Vererbungshierarchien. An die Stelle eines Objektes der Basisklasse kann auch ein Objekt der abgeleiteten Klasse treten. Ein Objekt der Sohnklasse ist polymorph, da es sich wie ein Objekt der Sohnklasse und wie ein Objekt der Vaterklasse (genauer: wie ein Objekt irgendeiner Basisklasse) verhalten kann. Harms: "SoftwareEntwicklung", SWENT, WS 2001/

11 # 37 Liskov Substitution Principle Methoden, die Referenzen auf Basisklassen benutzen, müssen in der Lage sein, Objekte von abgeleiteten Klassen zu benutzen, ohne es zu bemerken. Polymorphie von Objekten ist wichtig, da es so möglich ist, wiederverwendbaren Code zu schreiben. Dazu muß der Code nur Referenzen auf Objekte einer Basisklasse enthalten. Ein Objekt einer abgeleiteten Klasse kann dann diesen Code verwenden. Die spezifischen Eigenschaften der abgeleiteten Klasse werden dafür nicht benötigt. Ihr Zusatzprotokoll (d.h. ihre Schnittstellen) und ihre zusätzlichen Datenfelder bleiben also unsichtbar. Beispiel: In einer Klasse X sei die Methode f(vater refvater) vorhanden: # 38 class X{...; public void f(vater refvater){...; X refx = new X(); refx.f(refvater); oder refx.f(refsohn); Beim Aufruf erfolgt die Zuweisung: Vater refvater = refsohn; genauer: es findet ein Casting statt: Vater refvater = (Vater) refsohn; Beim Casten werden die vom Sohn hinzugefügten Elemente vom Compiler versteckt. Sie werden damit unsichtbar. Harms: "SoftwareEntwicklung", SWENT, WS 2001/

12 Beispiel (Teil 1): class Person { private String name; public Person(String name) { this.name = name; public String getname() { return name; public void print() { System.out.println("Name: " + name); class Student extends Person { private int matrikelnr; public Student(String name,int matrikelnr) { super(name); this.matrikelnr = matrikelnr; public void printmatrikelnummer() { System.out.println("Matnr: "+ matrikelnr); # 39 Beispiel (Teil 2): public class Registrierung { private int nummer; private static int aktuellenummer = 1001; public Registrierung(Person pers ) { nummer = aktuellenummer++; System.out.print("Name: " +pers.getname()); System.out.println(" erhaelt die Nummer: " + nummer); public class TestReg { public static void main(string[] args) { Student studiosus = new Student("Maier", 56123); Person pers = new Person("Mueller"); Registrierung reg1 = new Registrierung(pers); Registrierung reg2 = new Registrierung(studiosus); # 40 Harms: "SoftwareEntwicklung", SWENT, WS 2001/

13 # 41 Beispiel (Teil 3): Ergebnis: Name: Mueller erhaelt die Nummer: 1001 Name: Maier erhaelt die Nummer: 1002 # 42 Kap. 5 Kap. 5.1 Kap Kap Kap. 5.2 Kap Kap Kap Kap Kap Kap Datentypen und Variablen Datentypen Einfache Datentypen Klassentypen und deren Definition Variablen Variablen einfacher Datentypen Referenzvariablen von Klassen-Typen Dynamische Variablen - Objekte Klassenvariablen, Instanzvariablen und lokale Variablen Speicherbereiche für Variablen Konstante Variablen Harms: "SoftwareEntwicklung", SWENT, WS 2001/

14 Kap. 5 Datentypen und Variablen # 43 Kap. 5.1 Datentypen Man unterscheidet einfache (elementare) Datentypen (z. B. int, double, boolean) Referenztypen (Klasse, Array, Schnittstelle). Kap Einfache Datentypen Typ Inhalt Wertebereich boolean true/false true / false char Zeichen Bit-Unicode byte 1 Byte short 2 Byte int 4 Byte long 8 Byte Typ Inhalt Wertebereich float Gleitpunkttyp -3.4* *10 38 (4 Byte) Genauigkeit: 7 Stellen # 44 double Gleitpunkttyp -1.7* * (8 Byte) Genauigkeit: 15 Stellen Kap Klassentypen und deren Definition class Punkt // Deklaration einer Klasse { // Klassenrumpf beginnt mit {... // enthält Datenfelder... // und Methoden // Klassenrumpf endet mit Harms: "SoftwareEntwicklung", SWENT, WS 2001/

15 Methoden # 45 public int getx() // Methodenkopf { // Methodenrumpf startet mit { return x; // Rückgabewert // Methodenrumpf endet mit Datenfelder (Variablen) private int x; // Datenfeld wird deklariert protected int x; // Datenfeld wird deklariert Kap. 5.2 Variablen Man unterscheidet statische Variable (nicht zu verwechseln mit Klassenvariablen, die static deklariert werden) dynamische Variable. class Test { public static void main(string[] args) { int wert; // statische Variable // eines einfachen Datentyps Punkt refv; // Referenzvariable ist eine // statische Variable refv = new Punkt(); // dynamische Variable // wird auf dem Heap angelegt, hat // keinen Namen. Ein Zugriff kann nur // über die Referenzvariable erfolgen. # 46 wert, refv sind lokale Variablen, da sie innerhalb einer Methode deklariert werden. wert wird auf dem Stack angelegt und existiert für die Dauer der Abarbeitung der Methode. refv referenziert eine dynamische Variable auf dem Heap. Dynamische Variablen sind immer Objekte. Methoden werden in der Method-Area abglegt. Harms: "SoftwareEntwicklung", SWENT, WS 2001/

16 Kap Variablen einfacher Datentypen # 47 int x; int x,y,z; // Deklaration der int-variablen x // Deklaration der int-variablen x, y, z int x = 3; // Definition der int-variablen x mit dem Wert 3 Definition = Deklaration + Reservierung von Speicherplatz Kap Referenzvariablen von Klassen-Typen Punkt refp; // Deklaration der Referenzvariablen refp, // wird vom Compiler nicht initialisiert. Punkt refp = new Punkt(); // Zuweisung der Adresse, // an der sich das Objekt auf dem Heap befindet. Kap Dynamische Variablen - Objekte # 48 Punkt refp = new Punkt(); Man unterscheidet in exakter Sprechweise zwischen der Referenz auf ein Objekt und dem Objekt. Das Objekt selber befindet sich als dynamische Variable auf dem Heap. Ein Zugriff auf das Objekt kann nur über die Referenzvariablen erfolgen. Referenzvariablen als Datenfelder werden vom Compiler mit null (der null-referenz) initialisiert. Harms: "SoftwareEntwicklung", SWENT, WS 2001/

17 Stack Stack # 49 refp refp Heap Heap Punkt-Objekt Punkt refp; refp = new Punkt(); Kap Klassenvariablen, Instanzvariablen und lokale Variablen # 50 Klassenvariablen werden im Unterschied zu Instanzvariablen nur einmal pro Klasse im Method Area angelegt. Lokale Variablen treten in Methoden auf und werden auf dem Stack angelegt. Übergabeparameter sind lokale Variablen, die in Methoden-Köpfen bzw. den Schnittstellen auftreten. class VariablenTypen { int x; static int y; // Instanzvariable // Klassenvariable public void setx(int x){ //Übergabeparameter int z = x; // lokale Vraible this.x = z; Harms: "SoftwareEntwicklung", SWENT, WS 2001/

18 Kap Speicherbereiche für Variablen # Der Stack Der Stack ist ein LIFO-Datenstruktur (Last in first out) Der Heap new legt eine dynamische Variable auf dem Heap an. Sie bleibt dort bis zum Programmende. Es sei denn, der Variablen wird der Wert null zugewiesen. Der Garbage Collector kann dann die Variable aus dem Heap entfernen und den Speicherplatz wieder frei geben. Der Garbage Collector ordnet einen zerstückelten Heap neu. A B C A D A C C A C D Die Method-Area # 52 Hier befinden sich die Klassenvariablen der gesamte Programmcode (die Methoden) einer Klasse. Kap Konstante Variablen final macht jede Variable konstant: final int konstantvar = 1; Der Wert 1 kann nicht mehr verändert werden. final Punkt p = new Punkt(); p ist eine konstante Referenz (Adresse), die immer auf das gleiche Objekt zeigt. Das Objekt aber kann geändert werden! Harms: "SoftwareEntwicklung", SWENT, WS 2001/

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

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

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

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

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 11: 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

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

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

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1

Mehr

1 Einleitung Generizität Syntax... 2

1 Einleitung Generizität Syntax... 2 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................

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

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

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

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

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

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

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

Programmieren in C++ Vererbung

Programmieren in C++ Vererbung Programmieren in C++ Vererbung Inhalt Vererbung Konstruktoren und Destruktor von abgeleiteten Klassen Typkonvertierung von Zeigern Identifikation der Klasse eines Objekts Überladen von Methoden Verdecken

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Objektorientierte Programmierung und Klassen

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

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Java Datentypen und Variablen

Java Datentypen und Variablen Informatik 1 für Nebenfachstudierende Grundmodul Java Datentypen und Variablen Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht

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

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

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

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

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

Mehr

Programmiertechnik Klassenvariablen & Instantiierung

Programmiertechnik Klassenvariablen & Instantiierung Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Mehr zur Objektorientierung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Weitere Aspekte der Objektorientierung Klassen Variablen

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

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

6 Speicherorganisation

6 Speicherorganisation 6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

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

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor: 4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

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

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben

Mehr

Wo sind wir? Übersicht lexikale Struktur von Java

Wo sind wir? Übersicht lexikale Struktur von Java Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Grundlagen der Objektorientierten Programmierung - Methoden -

Grundlagen der Objektorientierten Programmierung - Methoden - Methoden In ihrem formalen Aufbau entsprechen Java-Methoden den Funktionen in C und C++. Eine Methode dient dazu, eine häufig benötigte Folge von Anweisungen unter einem Namen zusammenzufassen und zum

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

Mehr

Java-Applikationen (Java-Programme)

Java-Applikationen (Java-Programme) Java-Applikationen (Java-Programme) Eine erste Applikation: 1 2 3 4 5 6 7 8 9 10 // Quelltext HalloWelt.java // Programm gibt den Text Hallo Welt aus public class HalloWelt public static void main(string[]

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/

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

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

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

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

Informatik Vorkurs - Vorlesung 2

Informatik Vorkurs - Vorlesung 2 Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs

Mehr

Erste Java-Programme (Java Wiederholung & Vererbung)

Erste Java-Programme (Java Wiederholung & Vererbung) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe. Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe http://www.zitate-online.de/autor/goethe-johann-wolfgang-von/ http://www.weimar-lese.de/files_weimar_lese/johann_wolfgang_von_goethe_bearbeitet_von_andreas_werner.jpg

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 als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage

Java als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage Java als erste Programmiersprache Java 2 Plattform Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer 2., durchgesehene Auflage B. G. Teubner Stuttgart Leipzig Wiesbaden 1 GRUNDBEGRIFFE DER PROGRAMMIERUNG

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte 5 Vererbung Subklassen, Superklassen, Pakete Zugriffsrechte Wiederverwendung von Code Konventionelle Methode: Wähle einen Quelltext, der ein ähnliches Problem bearbeitet und passe diesen Text auf das neue

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 Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

Praxis der Programmierung

Praxis der Programmierung Template-Funktionen und -Klassen Einführung in Java Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Template-Funktionen 2 Minimumfunktion und offene Typen Aufruf

Mehr

Kurzskript zur Veranstaltung Programmieren Prof. Dipl.-Ing. Jirka R. Dell'Oro-Friedl 2012

Kurzskript zur Veranstaltung Programmieren Prof. Dipl.-Ing. Jirka R. Dell'Oro-Friedl 2012 Kurzskript zur Veranstaltung Programmieren Prof. Dipl.-Ing. Jirka R. Dell'Oro-Friedl 2012 Kurzskript Programmieren 2012 Prof. Dipl.-Ing. Dell'Oro-Friedl, HFU Seite 1/10 Datentypen, Konstanten, Variablen,

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

Prozeduren vs. Funktionen

Prozeduren vs. Funktionen Prozeduren vs. Funktionen Mit der Formalisierung wird auch der Unterschied zwischen Prozeduren und Funktionen noch einmal klar. Der Aufruf beider Varianten bewirkt zunächst das Gleiche: die Eingabevariablen

Mehr

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

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

1. Abstrakte Klassen

1. Abstrakte Klassen 1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,

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

C++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2

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

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 10 Verweise und Referenzen Inhalt von Kapitel 10 Verweise und Referenzen 10.1 Das Schlüsselwort this Definition Verwendungszweck Klassenmethoden EINSCHUB: Musterlösung zu Übung 4.1 10.2 Objektreferenzen

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr