Java: Grundlagen der Objektorientierung

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Kritische Betrachtung
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
der Universität Oldenburg
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
FH-Hof Einbindung von JavaScript Anweisungen
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Abstrakte Klassen.
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Erweiterte Zuweisungskompatibilität
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Programmieren mit JAVA
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Abstrakte Klassen DVG
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Einführung in Java1 Einführung in JAVA.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Klassen 02 - Klassen.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientiertes Konstruieren
EPROG Tutorium #3 Philipp Effenberger
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
Programmiervorkurs WS 2014/15 Instanzmethoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Objektorientierte Programmierung (OOP)
C++ FÜR cOMPUTERSPIELENTWICKLER
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
OOP II.
Einführung in die Programmierung mit Java
Implementieren von Klassen
 Präsentation transkript:

Java: Grundlagen der Objektorientierung Richard Göbel

Grundlagen der OO-Programmierung - Beispiel: Hochschule class Person { String name; int alter; String getName() { return name;} void setName(String na) { name = na;} int getAlter() { return alter;} void setAlter(int al) { alter = al;}} class Student extends Person { Vorlesung[] teilnahme; Vorlesung[] getTeilnahme() return teilnahme; } void setTeilnahme (Vorlesung[] t) teilnahme = t;

Grundlagen der OO-Programmierung - Erzeugen von Objekten einer Klasse class Test { public static void main (String[] args) Person p; p = new Person(); p.setName(“Meier“); p.setAlter(19); System.out.println(p.getName()); System.out.println(p.getAlter()); }

Grundlagen der OO-Programmierung - Definition eigener Konstruktoren class Vorlesung { String bezeichnung; int stunden; Vorlesung (String bez) bezeichnung = bez; } . . .

Grundlagen der OO-Programmierung - Verwendung von Konstruktoren . . . Student s; s = new Student(); s.setName(“Meier“); s.setAlter(19); Vorlesung[] v; v = new Vorlesung[2]; v[0] = new Vorlesung(“Datenbanksysteme“); v[1] = new Vorlesung(“Betriebssysteme“); s.setTeilnahme(v);

Grundlagen der OO-Programmierung - Statische Elemente: Konzept Statische Variable und Funktionen: sind direkt einer Klasse zugeordnet. können direkt über den Klassennamen angesprochen werden, ohne dass ein Objekt der Klasse verwendet werden muss. Der Wert einer statischen Variable ist identisch für alle Objekte der Klasse. Für statische Variablen und Funktionen spielt die Klasse ausschließlich die Rolle eines „Behälters“!

Grundlagen der OO-Programmierung - Statische Variablen: Deklaration class Person { static int numGen = 1; int nummer; String name; Person () { nummer = numGen++;} Person (String na) { nummer = numGen++; name = na;} . . . }

Grundlagen der OO-Programmierung - Statische Variablen: Anwendung class Test { public static void main (String[] args) Person p1 = new Person(“Meier“), p2 = new Person(“Becker“); System.out.println(p1.nummer); System.out.println(p2.nummer); }

Grundlagen der OO-Programmierung - Statische Variablen: Initialisierung class Person { static int numGen; int nummer; String name; . . . static numGen = 1; }

Grundlagen der OO-Programmierung - Statische Funktionen: Deklaration class Person { static int numGen = 1; static void setGenWert (int wert) numGen = wert; } static int getGenWert () return numGen; . . .

Grundlagen der OO-Programmierung - Statische Funktionen: Anwendung class Test { public static void main (String[] args) Person.setGenWert(10); Person p1 = new Person(“Meier“), p2 = new Person(“Becker“); System.out.println(p1.getGenWert()); System.out.println(Person.getGenWert()); }

Grundlagen der OO-Programmierung - Überladen von Funktionssymbolen In praktisch allen objektorientierten Sprachen lassen sich verschiedene Funktionen und Methoden mit identischem Namen definieren. Funktionen oder Methoden mit identischem Namen unterscheiden sich mindestens bezüglich einer der folgenden Kriterien: Zughörigkeit zu einer Klasse Anzahl der Argumente Typ der Argumente Begriff für dieses Konzept: Overloading

Grundlagen der OO-Programmierung - Überladen von Methoden in einer Klasse class Person { String name; String name() return name; } void name(String na) name = na; . . . . . . Person p; p = new Person(“Meier“); System.out.println(p.name); p.name(“Becker“); System.out.println(p.name());

Grundlagen der OO-Programmierung - Überladen von Methoden der Oberklasse I class Student extends Person { . . . void alter(int al) if (al > 17) alter = al; } class Person { int alter; void alter(int al) alter = al; } . . .

Grundlagen der OO-Programmierung - Überladen von Methoden der Oberklasse II Zugriff auf Funktionen der Oberklasse mit dem Schlüsselwort super Vorteil: kein direkter Zugriff auf Attribute der Oberklasse in der Unterklasse. class Student extends Person { . . . void alter(int al) if (al > 17) super.alter(al); }

Grundlagen der OO-Programmierung - Konstruktoren und Vererbung Konstruktoren werden nicht vererbt! Konstruktoren der Oberklasse lassen sich mit dem Schlüsselwort super aufrufen. Enthält ein Konstruktor der Unterklasse keinen Aufruf eines Konstruktors der Oberklasse, dann: erfolgt automatisch ein Aufruf des Default-Konstruktors der Oberklasse vor der Bearbeitung der Anweisungen des aktuellen Konstruktors Wird kein eigener Konstruktor definiert, dann erzeugt Java automatisch einen Konstruktor ohne Argumente.

Grundlagen der OO-Programmierung - Überladen von Konstruktoren I class Vorlesung { String bezeichnung = ““; int stunden = 0; Vorlesung (String bez) { bezeichnung = bez; stunden = 4;} Vorlesung (String bez, int std) { stunden = std;} . . . }

Grundlagen der OO-Programmierung - Überladen von Konstruktoren II Der Aufruf eines anderen Konstruktors ist mit dem Schlüsselwort this möglich. Damit ist die Wiederverwendung des Programmcodes aus dem anderen Konstruktor möglich! class Vorlesung { String bezeichnung; int stunden; Vorlesung (String bez) { this(bez,4);} Vorlesung (String bez, int std) { bezeichnung = bez; stunden = std;} . . . }

Grundlagen der OO-Programmierung - Überladen von Konstruktoren der Oberklasse class Person { String name; int alter; Person(String na, int al) { name = na; alter = al; } . . . class Student extends Person { String studiengang; Student(String na, int al) super(na,al); studiengang = “BWL“; } . . .

Grundlagen der OO-Programmierung - Weitere Möglichkeiten in Java Deklarationen mit dem Schlüsselwort abstract: Für eine mit ‘abstract‘ deklarierte Klasse können keine Objekte erzeugt werden. Eine mit ‘abstract‘ deklarierte Klasse kann Deklarationen von Funktionen ohne Rumpf enthalten, die in allen Unterklassen entsprechend der Deklaration definiert werden müssen. Deklarationen mit dem Schlüsselwort final: Der Wert einer mit ‘final‘ deklarierter Variablen oder eines Attributs kann nicht mehr geändert werden. Eine mit ‘final‘ deklarierte Methode oder Funktion darf in einer Unterklasse nicht ersetzt werden.

Grundlagen der OO-Programmierung - Beispiel für eine ‚abstrakte‘ Klasse abstract class Person { . . . abstract void setID(String id); abstract String getID(); }

Grundlagen der OO-Programmierung - Beispiel für die Deklaration von Konstanten class Student extends Person { int Studiengang; final static int VWL = 1; final static int BWL = 2; final static int PHYSIK = 3; Student(int sg) Studiengang = sg; } . . . . . . Student s; s = new Student(Student.BWL);