Java Einführung Abstrakte Klassen und Interfaces



Ähnliche Dokumente
Programmieren in Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

3 Objektorientierte Konzepte in Java

Typumwandlungen bei Referenztypen

Innere Klassen in Java

Kapitel 6. Vererbung

Algorithmen und Datenstrukturen

Kapitel 6. Vererbung

Javakurs 2013 Objektorientierung

Softwaretechnik WS 16/17. Übungsblatt 01

Java: Vererbung. Teil 3: super()

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

Kapitel 6. Vererbung

3 Objektorientierte Konzepte in Java

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

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

5. Abstrakte Klassen

Vererbung & Schnittstellen in C#

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Einführung in die Programmierung

Objektorientierte Programmierung

Prinzipien Objektorientierter Programmierung

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

5.5.8 Öffentliche und private Eigenschaften

Java Einführung Collections

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

Grundkonstrukte der Objektorientierung in Java, C# und C++

Abschnitt 9: Schnittstellen: Interfaces

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Einstieg in die Informatik mit Java

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Tutorium 5 - Programmieren

Objektorientierte Programmierung

4. AuD Tafelübung T-C3

13. Tutorium zu Programmieren

Assoziation und Aggregation

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

GetName(), GetName(), GetGeschlecht() und AelterWerden().

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

Objektorientierte Programmierung OOP

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Probeklausur: Programmierung WS04/05

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Java Kurs für Anfänger Einheit 5 Methoden

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

3. Konzepte der objektorientierten Programmierung

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Applet Firewall und Freigabe der Objekte

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Gebundene Typparameter

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Programmierung Nachklausurtutorium

Kapitel 9. Inner Classes. 9.1 Wiederholung: Iteratoren. Ausführen einer Operation auf allen Elementen einer Containerklasse

Selbststudium OOP4 Auftrag

Java Einführung Methoden in Klassen

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

Programmierkurs Java

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

5.6 Vererbung. Vererbung

Java Einführung Packages

Client-Server-Beziehungen

7. Pakete Grundlagen der Programmierung 1 (Java)

Praktische Übung 'JUnit-Test'

Schnittstellen implementieren am Beispiel Suchbaum

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

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Java - Programmierung - Objektorientierte Programmierung 1

5 Projekt Bankverwaltung

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Programmierkurs Java

Klassenbeziehungen & Vererbung

C# im Vergleich zu Java

Java Einführung Klassendefinitionen

Vorkurs C++ Programmierung

Wiederholung. Klassenhierarchie:

Klassendefinitionen verstehen

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Kapitel 4. Mehrfachvererbung. Beispiel 1: typische Diamant Struktur. Person. Hiwi

Software Engineering Klassendiagramme Einführung

Themen. Web Service - Clients. Kommunikation zw. Web Services

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Programmieren in Java

Kapitel 5: Interfaces

1 Polymorphie (Vielgestaltigkeit)

Test-Driven Design: Ein einfaches Beispiel

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

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

Große Übung Praktische Informatik 1

Grundlagen von Python

Software-Engineering Software-Management

Transkript:

Java Einführung Abstrakte Klassen und Interfaces

Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer implementiert werden. Interfaces können definiert und implementiert werden. 2

Definition und Implementierung Java-Syntax: eines Interfaces interface AnInterface {... <<interface>> AnInterface class AClass implements AnInterface {... AClass <<implements>> 3

Bsp: Interface definieren interface HasName { String pre = My Name is ; //Variablen sind autom. static & final! String getname(); //Methoden sind autom. public! //keine Implementierung! 4

Bsp: Interface implementieren Der Compiler prüft ob alle Methoden des Interfaces implementiert wurden. class Person implements hasname { privatestring myname; // Instanzvariablen public String getname() { return(pre + myname); // pre kommt vom Interface! public void talk(string sentence) { System.out.println(myName+ says: +sentence); 5

Bsp: Interface implementieren II Interfaces werden in der Java API gefunden. Z.B.: java.lang.comparable class fraction implements Comparable { Method Summary intcompareto(object o) Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object. private double n,d; public int compareto(object o) { Fraction ofrac = (Fraction) o; // upcast! double me = (double) n/ (double) d; double other = (double) ofrac.n / (double) ofrac.d; if (me < other) { return -1; if (me > other) { return 1; return 0; 6

Abstrakte Klassen Soll genauso wie Interface/implements ein einheitliches Interface für alle abgeleiteten Klassen definiern. Hier ist es aber möglich einzelne Methoden bereits in der abstrakten Klasse zu implementieren und Instanzvariablen zu deklarieren. Wird in einer Klasse für mindestens eine Methode nur die Schnittstelle definiert (abstrakte Methode), muss die gesammte Klasse als abstrakt definiert werden. 7

Abstrakte Klassen II Die Kennzeichnung einer Klasse als abstrakt verhindert, dass Instanzen dieser Klasse erzeugt werden können. Alle abstrakten Methoden müssen in den nicht abstrakten Subklassen implementiert werden. Java-Syntax der Klassendeklaration: abstract class KlassenName { void anormalmethod(int a) {... abstract void aabstractmethod(int b); Block der Methode fehlt 8

Abstrakte Klasse Beispiel Es sollen Verschiedene Formen implementiert werden, die das gleiche Interface verwenden. Das Interface und gemeinsame Teile werden in Shape definiert/implementiert <<abstract>> Shape Point Rectangel Circle... 9

Abstrakte Klasse Beispiel II public abstract class Shape { protected Point anchor; Shape() { this.anchor =new Point(); public Point position() { return anchor; //abstract interface abstract public double area(); abstract public double perimeter(); 10

Abstrakte Klasse Beispiel II public class Rectangle extends Shape { protected Point rightlowercorner; // 2. Ecke public Rectangle() { super(); this.rightlowercorner = new Point(); // Implementierung der abstrakten Methoden public double area() { return (width()*heigth()); public double perimeter() { return (2*(width()+heigth())); // Zusätzliche Methoden private double width() { return (Math.abs(rightLowerCorner.x-anchor.x));... 11

Was sie nach dieser Einheit wissen sollten... Verwendung von Interfaces und abstrakten Klassen 12