Programmieren in Java



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

3 Objektorientierte Konzepte in Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

Java: Vererbung. Teil 3: super()

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Prinzipien Objektorientierter Programmierung

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Objektorientierte Programmierung

Innere Klassen in Java

Kapitel 6. Vererbung

Kapitel 6. Vererbung

Kapitel 6. Vererbung

Vorkurs C++ Programmierung

Java Einführung Abstrakte Klassen und Interfaces

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

Objektorientierte Programmierung OOP

Java Einführung Methoden in Klassen

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

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

Vererbung & Schnittstellen in C#

Programmieren in Java

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

Einführung in die Programmierung

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

Javakurs 2013 Objektorientierung

5. Abstrakte Klassen

Programmierkurs Java

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

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

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

Programmieren in Java

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Folge 18 - Vererbung

Applet Firewall und Freigabe der Objekte

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Software Engineering Klassendiagramme Einführung

Java Kurs für Anfänger Einheit 5 Methoden

3 Objektorientierte Konzepte in Java

5.6 Vererbung. Vererbung

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

Software Engineering Klassendiagramme Assoziationen

Übung: Verwendung von Java-Threads

Einführung in die. objektorientierte Programmierung

Abschnitt 9: Schnittstellen: Interfaces

Objektorientierte Programmierung

Klassenbeziehungen & Vererbung

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

5.5.8 Öffentliche und private Eigenschaften

WebService in Java SE und EE

Große Übung Praktische Informatik 1

Einführung in die Java- Programmierung

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Typumwandlungen bei Referenztypen

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

Probeklausur: Programmierung WS04/05

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Programmierkurs Java

Objektbasierte Entwicklung

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

4 Vererbung, Polymorphie

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

Javakurs zu Informatik I. Henning Heitkötter

Was meinen die Leute eigentlich mit: Grexit?

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

Probeklausur Softwareengineering SS 15

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

Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

SEP 114. Design by Contract

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

Grundlagen von Python

Client-Server-Beziehungen

Software Engineering Interaktionsdiagramme

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

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Tutorium 5 - Programmieren

Objektorientiertes JavaScript

Algorithmen und Datenstrukturen

Kleines Handbuch zur Fotogalerie der Pixel AG

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Der lokale und verteilte Fall

BEISPIELKLAUSUR Softwareentwicklung:

3. Konzepte der objektorientierten Programmierung

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

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

Datum, Uhrzeit: , Uhr Matrikelnummer:... Semester: INbac2 Prüfer: Prof. Meixner Note:...

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Professionelle Seminare im Bereich MS-Office

Leichte-Sprache-Bilder

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Transkript:

Programmieren in Java objektorientierte Programmierung 2

2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können weitere Klassen in einer Java-Datei enthalten sein wobei die Konvention gilt, dass möglichst nur eine Klasse pro Datei definiert wird damit die Dateistruktur weitgehend deckungsgleich mit der Klassenstruktur ist Ausnahme sind innere Klassen. Diese sind sowieso nur innerhalb der Klasse in der Sie definiert werden sichtbar. Beispiel.java: public class Beispiel{

3 Paketstruktur Jede Java-Klasse hat ein sog. Package in dem Klassen die zu einem Projekt oder einer Programmieraufgabe gehören abgelegt werden Wird kein package definiert gehört die Klasse zum default-package Die Definition erfolgt am Anfang einer Java-Datei mit dem Schlüsselwort package Beispiel: package de.java.vorlesung; Die Punktnotation gibt hier eine Hierarchie wieder. Konvention ist, dass Klassen in deutscher Sprache unterhalb des de-package abgelegt werden

4 Beispiel Paketstruktur Die Klassen packagetest.java und importtest.java package de.java.vorlesung; public class packagetest { public void hallo(){ System.out.println("Hallo"); import de.java.vorlesung.packagetest; public class importtest { public static void main(string[] args) { packagetest test = new packagetest(); test.hallo();

5 Imports Importiert werden können Klassen und Pakete Schlüsselwort ist hier import Soll ein ganzes Paket importiert werden setzt man hinter den Paketnamen ein.* Zugriff auf statische Methoden anderer Klassen in anderen Paketen erfolgen mit der Punktnotation des packages.klassenname.methodenname Beispiel: de.java.vorlesung.packagetest.hallo(); Wenn die Klasse bereits vorher importiert wurde reicht der Klassenname

6 This this ist ein weiteres Schlüsselwort und liefert das aktuelle Objekt einer Klasse. Wird immer benötigt wenn in Methoden auf die Attribute eines Objekts zugegriffen werden soll und mehrere Instanzen einer Klasse involviert sind. Wird häufig bei Überdeckungsproblemen eingesetzt Beispiel: class test { int wert; test(int wert) { wert = wert; //Das kann nicht funktionieren this.wert = wert;

7 Designregeln get- und set-methoden Prinzip einer Klasse ist es, dass die Methoden der Klasse benutzt werden können ohne besondere Rücksicht auf die Implementierung zu nehmen Wenn in einer Methode die Attribute ihres Objekts manipuliert werden ist häufig eine Beschränkung des Zugriffs auf die Attribute erforderlich public class Bruch { int zaehler; int nenner; double ausrechnen(){ return (double)zaehler / nenner; public class Bruchsafe { int zaehler; private int nenner; int getnenner(){ return nenner; void setnenner(int arg){ if(arg!= 0) nenner = arg; else System.out.println("Fehler! Nenner ist 0"); double ausrechnen(){ return (double)zaehler / nenner;

8 Vererbung bei Java-Klassen Eine Vererbung der Attribute und Methoden einer Klasse an eine abgeleitete Klasse erfolgt mittels extends class Basis{ int wert; void ausgeben(){ System.out.println("Wert = "+ wert); class Abgeleitet extends Basis{ void erhoehen(){ wert+=20; public class Vererbung { public static void main(string[] args) { Abgeleitet obj = new Abgeleitet(); obj.wert = 5; obj.erhoehen(); obj.ausgeben(); Ausgabe(Vererbung): 25

9 Fakten zur Vererbung Die Basisklasse vererbt alle in Ihr enthaltenden Elemente mit Ausnahme der Konstruktoren und der private-elemente Die Basisklasse wird durch Vererbung nicht geändert Eine Java-Klasse kann nicht kann nicht gleichzeitig von zwei oder mehr Klassen abgeleitet werden Klassen, die als Final deklariert sind können nicht als Basisklasse verwendet werden In den Mehtoden der abgeleiteten Klasse können die ererbten Elemente direkt verwendet werden Der Zugriff auf geerbte Attribute und Methoden erfolgt wie üblich über ein Objekt(bei statischen Elementen über den Klassennamen) Ererbte Elemente behalten ihren Zugriffsschutz Ererbte Attribute werden mit dem Standardkonstruktor der Basisklasse initialisiert

10 super() Will man steuern ob der Standardkonstruktor der Basisklasse aufgerufen wird oder ein anderer Konstruktor der Basisklasse wird die Methode super() benutzt mit der man die Konstruktoren der Basisklasse aufrufen kann. class BasisK2{ int b_wert; BasisK2(int arg){ b_wert = arg; class AbgeleitetK2 extends BasisK2{ int abc_wert; AbgeleitetK2(int arg){ super(12); abc_wert = 9; // b_wert = 5; public static void main(string[] args) { AbgeleitetK2 obj = new AbgeleitetK2(); System.out.println("b-wert = "+obj.b_wert); System.out.println("abc-wert = "+obj.abc_wert);

11 Interfaces Interfaces oder Schnittstellen sind vorstellbar als abstrakte Klassen, die abstrakte public-methoden als Elemente enthalten public interface Umkehrbar { void umkehren(); public class Textpassage implements Umkehrbar { public void umkehren(){ Interfaces werden über implements ererbt. In der erbenden Klasse müssen alle Methoden des Interface implementiert werden. Klassen können mehrere Interfaces implementieren

12 Elemente mit gleichem Namen Wie schon zuvor erwähnt kann es durchaus Methoden geben die denselben Methodennamen besitzen aber eine unterschiedliche Funktionalität darstellen Überladung: Die Methode wird mit verschiedenen Parametern mehrfach implementiert (ähnlich zu mehreren Konstruktoren). Auch wenn der Name einer Methode in der Basisklasse schonmal verwendet wurde ist dies eine Überladung. Verdeckung: Wenn in einer abgeleiteten Klasse ein Attribut definiert wird, dass denselben Namen wie ein Attribut der Basisklasse trägt, so wird das Attribut der Basisklasse verdeckt. Der Zugriff auf verdeckte Attribute kann mit einem Cast zu einem Objekt der Basisklasse erfolgen Überschreibung: Das selbe gilt für Methoden. Hier muss allerdings die Signatur gleich der Signatur der Basisklasse sein.(beim Überschreiben darf lediglich der Zugriff gelockert werden)

13 Innere Klassen Innere Klassen werden meist als Hilfsklasse der übergeordneten Klasse benötigt Sinnvoll ist eine Realisierung als inner Klasse wenn diese nur von einer einzigen Klasse benötigt wird. Die innere Klasse kann durch protected und private von anderen Klassen des Pakets verborgen werden Die innere Klasse kann auf alle Elemente der äußeren Klasse zugreifen und umgekehrt ist das genauso möglich Der Zugriff auf eine innere Klasse ist auch von Außen möglich wenn diese nicht als private deklariert wurde Aussen.Innen innenobj = aussenobj.new Innen();

14 Vielen Dank für die Aufmerksamkeit!