Programmieren in Java
|
|
- Hertha Holzmann
- vor 7 Jahren
- Abrufe
Transkript
1 Einführung in die Objektorientierung Enums, innere-klassen, Exceptions
2 2 Vererbung Repräsentiert eine ist ein Beziehung zwischen Klassen x: float y: float Point Form origin: Point Vererbung Rectangle width: float height: float Circle radius: float Ein Rechteck ist eine (geometrische) Form Ein Kreis ist eine (geometrische) Form
3 3 Vererbung in Java Sprachgebrauch: Elternklasse: Klasse von der geerbt wird Kindklasse: Alle von einer Elternklasse erbenden Klassen Eine Kindklasse erbt: Alle Attribute der Elternklasse Alle Methoden der Elternklasse Alle Konstruktoren der Elternklasse Zugriff auf Elemente (Attribut, Methode, Konstruktor) zur Laufzeit: Ist das Element in der Klasse der aktuellen Instanz definiert? Falls nein: Ist das Element ein der Elternklasse definiert? Falls nein: Hat die Elternklasse eine Elternklasse? Falls ja: Die Hierarchie durchlaufen, bis das Element gefunden wurde Ansonsten: Compiler-Fehler
4 4 Klassenhierarchie in Java In Java fängt jede Klassenhierarchie mit der Klasse Object an D.h. jede Klasse, die nicht explizit von einer anderen Klasse erbt, erbt von Object, ohne dass dies angegeben werden muss Am Beispiel der geometrischen Figuren Object x: float y: float Point Form origin: Point Circle radius: float Rectangle width: float height: float
5 5 Vererbung in Java Das Schlüsselwort zu Deklaration von Vererbung ist extends public class BEZEICHNER extends KLASSEN-BEZEICHNER { public class Form { private Point origin; public class Rectangle extends Form { private float width; private float height; public class Circle extends Form { private float radius; Java kennt nur einfache Vererbung, Die Hierarchietiefe ist allerdings beliebig
6 6 Vererbung und Konstruktoren Bei der Erzeugung einer Instanz wird in jeder Hierarchieebene ein Konstruktor ausgeführt Angenommen die Elternklasse Form hat folgenden Konstruktor public class Form { private Point origin; public Form(Point origin) {this.origin = origin; Damit ist der Default-Konstruktor überschrieben In erbenden Klassen muss ein Konstruktor explizit aufgerufen werden Der Aufruf des Eltern-Konstruktors erfolgt über das Schlüsselwort super public class Rectangle extends Form { private float width; private float height; public Rectangle(Point origin, float width, float height) { super(origin); this.width = width; this.height = height; Der Aufruf von super muss dabei immer der erste Satz im Konstruktor sein
7 7 Vererbung und Variablen public static void main(string[] args) { Form form; Form form = new Rectangle(); System.out.println(form); // Rectangle: Rectangle form = new Circle(); System.out.println(form); // Circle: Circle Rectangle rectangle; Rectangle rectangle = new Circle(); rectangle = new Form(); Circle Form Insbesondere Object object; object = new Circle(); object = "Hello World"; object = new Computer(); Object Circle String Computer
8 8 Vererbung und Methoden Die abgeleitete Klasse erbt alle Methoden der Elternklasse Damit erben auch alle Instanzen die Funktionalität der Elternklasse public class Form { private Point origin; public Form(Point origin) {this.origin = origin; public void print() { System.out.print(this.origin); public static void main(string[] args) { Form form; form = new Rectangle(new Point(50.0f, 75.0f), 2.0f, 8.0f); form.print(); // (50.0f, 75.0f) form = new Circle(Rectangle(new Point(1.0f, 0.0f), 16.0f); form.print(); // (1.0f, 0.0f) Die Methode print wurde in Form definiert, kann aber über Instanzen von Rectangle und Circle aufgerufen werden
9 9 Vererbung und Methoden (II) Jede Methode kann nur auf die Instanzattribute und -methoden der eigenen oder der Elternklasse zugreifen Die print-methode von Form kennt daher nur das Attribut origin Es ist möglich Methoden der Elternklasse zu überschreiben: public class Rectangle extends Form { private float width; private float height; public void print() { System.out.print("width:" + this.width + ", height:" + this.height); Form form; form = new Rectangle(new Point(50.0f, 75.0f), 2.0f, 8.0f); form.print(); // print von Rectangle: width: 2.0f, height: 8.0f form = new Circle(Rectangle(new Point(1.0f, 0.0f), 16.0f); form.print(); // print von Form: (1.0f, 0.0f)
10 10 Vererbung und Methoden (III) Der Rectangle-Aufruf von print liefert keine Angabe zu origin mehr Mit super kann nicht nur ein Konstruktor aufgerufen werden Auch der Zugriff auf Methoden und Attribute der Elternklasse ist damit möglich public class Rectangle extends Form { public void print() { super.print(); System.out.print("width:" + this.width + ", height:" + this.height); Form form; form = new Rectangle(new Point(50.0f, 75.0f), 2.0f, 8.0f); form.print(); // Rectangle::print (50.0f, 75.0f) width: 2.0f, height: 8.0f form = new Circle(new Point(1.0f, 0.0f), 16.0f); form.print(); // Form::print (1.0f, 0.0f) Der Zugriff auf origin innerhalb von Rectangle scheitert allerdings System.out.print("origin:" + super.origin + ", width:" + this.width + ", height:" + this.height);
11 11 Sichtbarkeit Es gibt vier Sichtbarkeitsmodifiktoren für Attribute und Methoden public: Zugriff von überall protected: Zugriff innerhalb des Packages und bei Vererbung [keine Angabe]: Zugriff innerhalb des Packages ( package private ) private: Zugriff nur innerhalb der eigenen Klasse/Instanz Das erklärt das Scheitern des Zugriffes im vorherigen Beispiel public class Form { private Point origin; Das Attribut origin ist nur innerhalb von Form verwendbar Es gibt zwei Sichtbarkeitsmodifikatoren für Klassen: public: Zugriff von überall [keine Angabe]: Zugriff innerhalb des Packages ( package private ) Insbesondere: Nur die mit dem Dateinamen übereinstimmende Klasse kann public sein
12 12 Vererbung und this public class Form {.. public class Rectangle { public String tostring() { return this.getclass().getsimplename(); public String tostring() { return super.tostring() + " width:" + this.width + " height:" + this.height; System.out.println( new Form() ); System.out.println( new Rectangle() ); System.out.println( new Circle() ); Rectangle tostring: String Form tostring: String Circle Form Rectangle width: height: Circle
13 13 Abstrakte Klassen/Methoden Jede geometrische Figur hat einen Flächeninhalt Im Sinne der Objektorientierung wäre dies eine Methode der Klasse Form public class Form { public double getarea() Ein Flächeninhalt ist abhängig vom Typ der Form (Kreis, Rechteck, etc.) Die Klasse Form kennt ihre allerdings Kindklassen nicht Die Methode getarea kann für Form demnach nicht sinnig definiert werden In solchen Fällen (Zugehörigkeit eindeutig, Implementierung nicht) definiert man eine Methode als abstrakt SICHTBARKEIT abstract RÜCKGABETYP BEZEICHNER ( DATENTYP PARAM- BEZEICHNER, ); optional public abstract double getarea(); Sobald eine Methode abstract ist, muss auch die Klasse abstract sein SICHTBARKEIT abstract class KLASSEN-BEZEICHNER public abstract class Form
14 14 Abstrakte Klassen/Methoden Es kann keine Instanz einer abstrakten Klasse erstellt werden Eine abstrakte Methode hat keinen Methodenrumpf (Implementierung) Lediglich die Signatur wird angegeben Nur Instanz-Methoden können abstrakt sein Eine erbende Klasse muss entweder eine Implementierung der Methode angeben public class Circle extends Form { public final static double PI = ; Form public double getarea() { return this.radius * this.radius * Circle.PI; Circle oder selbst wieder als abstract definiert werden public abstract class UnknownForm extends Form { Form UnknownForm
15 15 Polymorphie Die getarea()-methode ist den Zugriffsrechten entsprechend aufrufbar Demnach auch von der definierenden Klasse selbst public abstract class Form { public abstract double getarea(); public String tostring() { return this.getclass().getsimplename() + " Fläche=>" + this.getarea(); Warum compiliert dies? Da Form abstract ist kann es keine Instanz der Klasse Form geben tostring kann nur von Instanzen aufgerufen werden D.h. es existiert eine Klasse in der Hierarchie des aufrufenden Objektes, die getarea implementiert Welche Klasse dies ist, steht erst zur Laufzeit fest Dieses Verhalten nennt sich spätes Binden (auch: dynamisches Binden ) Abstrakte Methode werden daher als polymorph bezeichnet
16 16 Interfaces Ein Interface ist eine abstrakte Klasse, in der alle Methoden public sind (per default, eine Sichtbarkeit muss nicht angegeben werden) abstrakt sind (per default, abstract muss nicht angegeben werden) SICHTBARKEIT interface BEZEICHNER { RÜCKGABETYP BEZEICHNER ( DATENTYP PARAM-, ); BEZEICHNER public interface Identifiable { String getmac(); Eine Klasse implementiert ein Interface Die Beziehung wird nicht per extends sondern mit implements angegeben public class BEZEICHNER implements INTERFACE-BEZEICHNER {
17 17 Interfaces (II) Innerhalb eines Interfaces können keine Instanz-Attribute definiert werden Klassenattribute sind möglich Eine implementierende Klasse muss entweder alle im Interface angegebenen Methoden definieren oder als abstract deklariert werden public class Computer implements Identifiable { private String id; public Computer(String id) { this.id = id; public String getid() {return this.id; Eine Klasse kann beliebig viele Interfaces implementieren (Aufzählung per,) Dadurch gewinnt man eine Art Pseudo-Mehrfachvererbung Es können Variablen vom Typ eines Interfaces definiert werden: Identifiable identifiable = new Computer(" ae.fd7e"); System.out.print(identifiable.getId());
18 18 Anwendung Vererbung, Interfaces und abstrakte Klassen sollen nun auf das Computer-Beispiel übertragen werden Nicht immer ist Vererbung so offensichtlich wie im Formen-Beispiel Da Vererbung immer eine ist ein Beziehung abbilden soll, müssen zuerst Gemeinsamkeiten identifiziert werden Sowohl Grafik- als auch Soundkarte sind Platinen mit einem Prozessor Processor CircuitBoard GraphicsCard Soundcard
19 19 Anwendung Der Computer hat ebenfalls eine Platine (Mainboard) mit Prozessor Sowohl Computer als auch die Grafikkarte verfügen über RAM Computer RAMModule CircuitBoard GraphicsCard Soundcard Processor
20 20 Anwendung Computer Processor CircuitBoard RAMModule GraphicsCard Soundcard Pluggable Sound-,Grafikkarte und RAM-Module werden auf das Mainboard gesteckt Der Entwurf wirft mindestens zwei Fragen auf: Soll die RAM-Gemeinsamkeit von Computer und GraphicsCard zu einer neuen Elternklassen führen? Wie wird die Mehrfachvererbung für Sound- und Grafikkarte aufgelöst?
21 21 Anwendung Soll die RAM-Gemeinsamkeit von Computer und GraphicsCard zu einer neuen Elternklassen führen? Das wäre durchaus denk- und machbar Allerdings kann man sich die Klasse sparen, wenn man die RAM- Abhängigkeit auf die Tatsache reduzieren, dass RAMModule Pluggable ist und damit bereits zum CircuitBoard gehört GraphicsCard erbt von CircuitBoard und Computer besitzt eines CircuitBoard muss demnach eine beliebige Anzahl von Pluggable- Instanzen verwalten CircuitBoard 1 n Pluggable Die Verwaltung der Pluggable-Instanz wird immer gleich aussehen und kann daher in der CircuitBoard-Klasse implementiert werden Das beantwortet auch schon Frage zwei: Pluggable muss ein Interface werden
22 22 Anwendung Auch Processor kann als Pluggable betrachtet werden Daneben existierte im Ursprungsentwurf noch die Klasse Connector, die ebenfalls als Pluggable umsetzbar ist Processor <<interface>> Pluggable? getslot(); Connector RAMModule GraphicsCard Soundcard Die Steckplätze einer Platine sind begrenzt Zudem Unterscheiden sich die einzelnen Steckplätze Es gibt nur einen Prozessor Allerdings bspw. zwei RAM-Steckplätze Pluggable-Instanzen unterscheiden sich daher anhand ihres Steckplatzes
23 23 Typisierung des Steckplatzes Der Steckplatz wird ein Instanzattribut der Pluggable-Klassen sein D.h. Steckplatz muss typisiert werden Klassisch bieten sich zwei Möglichkeiten an: String oder int Die möglichen Werte sollten als konstante Klassenattribute definieren werden Da Klassenattribute in Interfaces zulässig sind, bietet sich Pluggable an public interface Pluggable { public static final String PROCESSOR = "PROCESSOR"; public static final String RAM = "RAM"; public interface Pluggable { public static final int PROCESSOR = 0; public static final int RAM = 1; Die Zuteilung eines Wertes erfolgt über den Attributnamen String slot = Pluggable.PROCESSOR; int slot = Pluggable.PROCESSOR; Dies hat zum Vorteil: Da der Attribut-Name anstelle des Wertes benutzt wird und dieser vom Compiler auf Existenz überprüft wird, keine Flüchtigkeitsfehler Im int-fall: Attributname sprechender als eine Zahl
24 24 Typisierung des Steckplatzes Der Ansatz einen bestimmten Satz an Werten über konstante Klassenattribute zu benennen hat allerdings klare Nachteile: Da der Typ der Attribute int oder String ist, kann jeder beliebige String oder int-wert eingesetzt werden String slot = "SUPPE"; int slot = -1111; Der Compiler hat keine Möglichkeit zu überprüfen, ob ein angegebener Wert valide ist Die Werte sind nicht abgeschlossen gegenüber Operatoren String slot = Pluggable.PROCESSOR + Pluggable.RAM; Man könnte meinen, dass dies entweder heißt, beide Slots sind zulässig oder dass ein kombinierter Slot gemeint ist Mit Java (1.)5 wurden Enums in den Java-Sprachumfang eingeführt, die Aufzählungen wie oben konsistent abbilden
25 25 Enums Enums sind eine Aufzählung von int-werten, wobei jedes Element einem bestimmten Namen zugeordnet ist In Java werden Enums über das Schlüsselwort enum definiert und sind spezielle Klassen und damit jeder Enum-Wert ein Objekt SICHTBARKEIT KLASSEN-BEZEICHNER { enum ENUM-BEZEICHNER, public enum Slot { PROCESSOR, RAM, Lediglich die Namen werden angegeben und werden per Konvention komplett in Großbuchstaben notiert (analog zu konstanten Klassenattributen) Die Werte werden konsekutiv angefangen bei 0 einem int-wert zugeordnet Ein Zugriff erfolgt über die Dereferenzierung des Klassennamens: Slot.PROCESSOR
26 26 Enums (2) Über die Methoden ordinal() und name() kann die zugordnete Ordnungszahl sowie der Name eines Enums abgefragt werden Slot slot = Slot.PROCESSOR; System.out.print("Das Enum " + slot.name() + " hat die Ordnungszahl " + slot.ordinal()); // Da Enum PROCESSOR hat die Ordnungszahl 0 Enums können in switch-anweisungen genutzt werden: switch (slot) { case PROCESSOR: case RAM: case default: Achtung: Im Gegensatz zum normalen Zugriff wird in der case- Anweisung nur der Enum-Name angeben, keine explizite Dereferenzierung
27 27 Inner-Class Damit kann der Steckplatz nun über eine Enum-Klasse abgebildet werden Enum-Klassen können in einer eigenen Java-Datei abgelegt werden Das Slot-Enum existiert allerdings nur im direkten Zusammenhang mit dem Pluggable-Interface Um eine solche Abhängigkeit abzubilden bietet Java die Möglichkeit Klassen/Interfaces innerhalb von Klassen/Interfaces zu definieren MODIFIKATOREN class enum KLASSEN-BEZEICHNER { public interface Pluggable { MODIFIKATOREN class enum KLASSEN-BEZEICHNER { public static enum Slot { PROCESSOR, RAM,
28 28 Inner-Class Der Zugriff auf innere Klassen erfolgt analog zu Klassenattributen über den umschließenden Klassennamen Pluggable.Slot slot = Pluggable.Slot.PROCESSOR; Nur bei inneren Klassen kann der Modifikator static genutzt werden: public class GraphicsCard { public static class Resolution { int width; int height; Innerhalb eines Interfaces sind alle inneren Klassen automatisch static Geeignete Sichtbarkeit vorausgesetzt können von außen nur Instanzen von statischen inneren Klassen erzeugt werden: GraphicsCard.Resolution resolution = new GraphicsCard.Resolution(); public class GraphicsCard { public class Resolution { int width; int height; // Resolution statisch GraphicsCard.Resolution resolution = new GraphicsCard.Resolution(); // Resolution nicht statisch
29 29 Inner-Class Instanzen nicht statischer innerer Klassen können nur innerhalb von Instanzen der umschließenden Klasse erzeugt werden: public class GraphicsCard { public class Resolution { public Resolution createresolution(int width, int height) { return new Resolution(width, height); GraphicsCard card = new GraphicsCard(); GraphicsCard.Resolution resolution = card.createresolution(1024, 920); Jede Instanz einer nicht statischen inneren Klasse hat automatisch Zugriff auf die Instanz, die sie erzeugt hat public class Resolution { public GraphicsCard getcard() { return GraphicsCard.this; Damit kann die Instanz auch auf alle Attribute und Methoden der erzeugenden Instanz zugreifen
30 30 Anwendung Mit dem Slot-Enum können Pluggable-Instanzen nun einem Steckplatz auf der Platine zugeordnet werden Die Anzahl Steckplätze eines bestimmten Typs sind begrenzt Die Anzahl kann bspw. im Konstruktor des CircuitBoards festgelegt werden Nun benötigt CircuitBoard eine Methode um Pluggable-Instanzen auf die Platine zu stecken CircuitBoard plugin(pluggable pluggable): void 1 n <<interface>> Pluggable Slot getslot(); Die Methode muss sich die Zuordnung des Steckplatzes merken Zudem muss sie überprüfen, ob überhaupt noch ein Steckplatz frei ist Schlägt diese Überprüfung fehlt, wurde bisher die Ausführung der Methode durch ein return beendet Semantisch bedeutet dies, dass die Methode erfolgreich ausgeführt wurde Die Methode sollte eigentlich signalisieren, dass das Stecken fehlschlug
31 31 Fehlerbehandlung durch Rückgabewerte Mit den bisherigen Mitteln kann das Fehlschlagen einer Ausführung durch Codierung in der Rückgabe umgesetzt werden public class CircuitBoard { public boolean plugin(pluggable pluggable) { if (!slotavailablefor(pluggable.getslot())) { return false; public class CircuitBoard { public Pluggable plugin(pluggable pluggable) { if (!slotavailablefor(pluggable.getslot())) { return null; return true; return pluggable; Das ist auch durchaus ein nutzbarer Ansatz, allerdings Was wenn die Methode eine Rückgabe liefern soll, die für die Fehlercodierung ungeeignet ist? Ein Nutzer der Methode kann die Rückgabe ignorieren, so dass unter Umständen eine nötige Fehlerbehandlung überhaupt nicht durchgeführt wird
32 32 Fehlerbehandlung durch Exceptions Java bietet mit Exceptions eine alternative Möglichkeit zur Fehlerbehandlung Die Ausführung einer Methode kann jederzeit durch das Werfen einer Exception beendet werden Methoden, die durch eine Exception abgebrochen werden könnten, müssen diese in ihrer Signatur nach dem Schlüsselwort throws angeben MODIFIKATOREN RÜCKGABETYP BEZEICHNER ( throws EXCEPTION-TYP, ; public void plugin(pluggable pluggable) throws ConfigurationException{ ConfigurationException ist selbstdefinierte Klasse, die von Exception erbt, d.h. Exceptions sind Objekte Alle Kindklassen von Exception können nach throws angegeben werden Innerhalb der Methode muss im Fehlerfall eine Instanz der Klasse erzeugt und mittels throw geworfen werden: if (!slotavailablefor(pluggable.getslot())) { throw new ConfigurationException("FEHLERMELDUNG");
33 33 Fehlerbehandlung durch Exceptions Eine Methode, die eventuelle Fehler durch Exceptions signalisiert kann nicht mehr einfach unbedacht aufgerufen werden Sie muss durch einen sogenannten try-catch-block umschlossen werden try { AUFRUF EINER METHODE, DIE MIT THROWS DEFINIERT WURDE CircuitBoard board = ; Pluggable pluggable = ; try { board.plugin(pluggable); catch ( EXCEPTION-TYP BEZEICHNER_1 ) { FEHLERBEHANDLUNG catch (ConfigurationException e) { System.out.println( e.getmessage() ); catch ( EXCEPTION-TYP BEZEICHNER_N ) {
34 34 Fehlerbehandlung durch Exceptions In einem try-catch Block können mehrere Anweisung ausgeführt werden Führt eine Anweisung zum Fehler wird keine der nachfolgenden ausgeführt Jede dieser Anweisung kann das Schmeißen diverser Exceptions signalisieren Für jeden Exception-Typ kann ein catch-block angegeben werden Es müssen alle potentiellen Exceptions durch catch abgefangen werden Ein catch-block kann mehrere Exception-Typen abdecken: Entweder durch die Angabe eines übergeordneten Exception-Typs try { catch (Exception e) { Oder durch Angabe mehrerer Typen: try { catch (ExceptionTyp_1 ExceptionTyp_2 e) { Jede Exception darf allerdings nur einmal durch einen catch-block behandelt werden
35 35 Fehlerbehandlung durch Exceptions Angenommen ein Aufruf innerhalb des try-blockes führt zu einem illegalen Programmzustand Der catch-block sollte dann dazu genutzt werden, diesen illegalen Zustand wieder aufzulösen Ist dies in der aufrufenden Methode nicht möglich, so kann die Exception an die nächste Methode weitergereicht werden: Dazu muss auch die aufrufende Methode die möglichen Exceptions per throws deklarieren Falls die Methode alle Exceptions definiert, die im try-teil potentiell auftreten könnten, so kann try-catch in der Methode weggelassen werden public void test(circuitboard board) throws ConfigurationException{ Pluggable pluggable = ; board.plugin(pluggable); Alternative kann die Methode eine eigene Exception anderen Typs schmeißen, dann ist allerdings ein try-catch für den plugin-aufruf nötig
36 36 Fehlerbehandlung durch Exceptions Neben dem catch-block kann optional noch ein finally-block angegeben werden Der Code innerhalb des finally-blockes wird in jedem Fall ausgeführt: Entweder nach erfolgreicher Ausführung aller im try-block befindlichen Anweisungen Oder nachdem ein Fehler durch einen catch-block behandelt wurde CircuitBoard board = ; Pluggable pluggable = ; // Freier Slot FINALLY try { board.plugin(pluggable); catch (ConfigurationException e) { System.out.println(e.getMessage() ); finally { System.out.println("FINALLY" ); // Kein freier Slot Slot not available for pluggable object FINALLY
Programmieren in Java
Einführung in die Objektorientierung Vererbung 2 Packages Packages dienen zur Strukturierung von Klassen Computer.java package BEZEICHNER ; package vorlesung7; public class KLASSEN-BEZEICHNER { public
MehrProgrammieren 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
MehrProgrammieren 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
MehrProgrammieren in Java
Einführung in die Objektorientierung (Teil 3) Vererbung & Enums 2 Wiederholung (Packages) Der Package-Name wird zum unmittelbaren Teil des Klassennamens Um eine Klasse aus einem anderen Paket nutzen zu
MehrProgrammieren in Java
Datei-Handling Anonyme Klassen 2 Enums Enums sind eine Aufzählung von int-werten, wobei jedes Element einem bestimmten Namen zugeordnet ist In Java werden Enums über das Schlüsselwort enum definiert und
MehrTafelü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
MehrKapitel 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
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrTeil 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
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 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,
MehrVorkurs 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
MehrKapitel 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
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:
MehrInstitut 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
MehrBeispiele 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]
MehrJavakurs 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
Mehr1 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,
MehrAlgorithmen 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
MehrObjektorientierte 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
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus
Mehr3 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
MehrDie abstrakte Klasse Expression:
Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die
MehrProgrammierung 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
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrEinstieg 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
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrJava 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
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrVererbung. 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
MehrAbstrakte Klassen und Interfaces
Abstrakte Klassen und Interfaces Thomas Schwotzer 1 Einführung Wir haben uns mit Vererbung und Polymorphie beschäftigt. Klassen sind so in der Lage, ableitenden Klassen Zugriff auf Member und Methoden
MehrInformatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
MehrVererbung, 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
MehrAnwendungsentwicklung 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,
MehrAlgorithmen 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
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrEinstieg 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
MehrExceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
MehrPolymorphie. 15. Java Objektorientierung II
432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrProgrammieren in Java
Einführung in die Objektorientierung Objekt-Relationen 2 Klassen In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften eines Objektes die Fähigkeiten
MehrPolymorphie. 15. Java Objektorientierung II
446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrDas Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
MehrBeispiel: 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
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
MehrProgrammieren 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
MehrVererbung 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
MehrObjektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
MehrPräsentation Interfaces
Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.
MehrEinstieg 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
MehrWiederholung zur Vorlesung Programmieren
Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrJohannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften
JAVA Weiterführende Spracheigenschaften 100 AGENDA Strings Exceptions Enums Generics Lambdas & Methods Bulk-Operations 101 DIE KLASSE STRING Zeichenketten werden in Java als String repräsentiert Wie der
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrProgrammieren 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
MehrFH 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
MehrEinstieg 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
MehrWas 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
MehrVererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1
Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object
MehrTag 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
MehrImplementieren 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
MehrGeschachtelte Klassen
Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2
MehrJava 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
MehrProgrammieren in Java
Einführung in die Objektorientierung (Teil 2) - Objekt-Relationen - Pakete 2 Wiederholung (Klassen) In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften
MehrEinführung in die Programmierung
Einführung in die Programmierung Teil 8: Interfaces Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Einführung 2. Schnittstellen in Java 3. Exkurs: Marker-Interfaces
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
MehrGrundlagen der Objektorientierung
Grundlagen der Objektorientierung Klassen, Attribute, Methoden Kapselung und Konstruktoren Vererbung Packages Interfaces und Adapterklassen 04.06.2008 Marcel Wieczorek 14 Klassen, Attribute, Methoden package
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrIT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
MehrEinfü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
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrÜbungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm
Z.11Fehlerbehandlung Programm beenden (System.exit()) meist eine schlechte Idee Ausgabe einer Fehlermeldung hilft nicht den Fehler zu überwinden spezieller Rückgabewert kennzeichnet Fehler Konstruktoren
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrProgrammieren in Java
Generische Datentypen 2 Wiederholung: Fehlerbehandlung durch Exceptions Die Ausführung einer Methode kann jederzeit durch das Werfen einer Exception-Instanz beendet werden Methoden, die durch eine Exception
MehrAlgorithmen 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
MehrSoftware Entwicklung 1. Subtyping revisited. Subtypbildung in Java: Klassen I. Subtyping und Vererbung I. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Subtyping revisited AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 40 Subtyping und Vererbung
MehrInterfaces und Vererbung
Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren
MehrVererbung. 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
MehrLösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am
Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrWiederholung. Klassenhierarchie:
Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse
Mehr3. 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,
MehrKapitel 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
Mehr4. 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
MehrJavakurs 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
MehrGrundzü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
MehrPhilipp Güttler Objektorientierung und komplexe Datentypen
Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen
MehrAusnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im
MehrProgrammierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Einführung in C++ Teil II: Klassen, Objekte, Funktionen und Vererbung. Funktionen [Rückgabetyp] [Name] ([Parameter]) { } Wichtig: Funktionen
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces
10 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Interfaces Aber: Mehrfachvererbung von Klassen ist in Java nicht erlaubt. Ausweg Definition eines Interfaces, z.b.:
MehrAbstrakte Klassen, Interfaces
Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
Mehr