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



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

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

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Programmierkurs Java

Programmieren in Java

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

public class SternchenRechteckGefuellt {

Objektorientierte Programmierung

Java: Vererbung. Teil 3: super()

Einführung in die Programmierung für Wirtschaftsinformatik

Java Einführung Abstrakte Klassen und Interfaces

Einführung in die Programmierung

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Objektorientierte Programmierung

Studentische Lösung zum Übungsblatt Nr. 7

Objektorientierte Programmierung OOP

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

3 Objektorientierte Konzepte in Java

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

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

Vorkurs C++ Programmierung

Arrays Fortgeschrittene Verwendung

Objektorientierte Programmierung

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 -

Einführung in die Java- Programmierung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

II.4.1 Unterklassen und Vererbung - 1 -

5. Abstrakte Klassen

5.5.8 Öffentliche und private Eigenschaften

Probeklausur Softwareengineering SS 15

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

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

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

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

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in die Programmierung

OO Softwareentwicklung

Objektorientierte Programmierung. Kapitel 12: Interfaces

Client-Server-Beziehungen

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

II.4.1 Unterklassen und Vererbung - 1 -

Tagesprogramm

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

5. Tutorium zu Programmieren

Musterlösungen zur Klausur Informatik 3

Graphic Coding. Klausur. 9. Februar Kurs A

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Große Übung Praktische Informatik 1

Prinzipien Objektorientierter Programmierung

3 Objektorientierte Konzepte in Java

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

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

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Innere Klassen in Java

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

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

Einführung in Javadoc

Übungen Programmieren 1 Felix Rohrer. Übungen

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

Übung Programmierung WS 2007/08 - Blatt 5

Objektbasierte Entwicklung

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Javakurs für Anfänger

SEP 114. Design by Contract

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

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

II.4.2 Abstrakte Klassen und Interfaces - 1 -

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

Klausur in Programmieren

C# im Vergleich zu Java

Propädeutikum zur Programmierung

Probeklausur: Programmierung WS04/05

Programmieren in Java

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

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

Softwaretechnik (Allgemeine Informatik) Überblick

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

Typumwandlungen bei Referenztypen

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

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

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Kapitel 6. Vererbung

Breiten- und Tiefensuche in Graphen

Java-Schulung Grundlagen

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {

Dr. Monika Meiler. Inhalt

Javakurs zu Informatik I. Henning Heitkötter

Kapitel 12 Dokumentation und Zugriffsrechte

Kapitel 6. Vererbung

Klausur in Programmieren

Klassendefinitionen verstehen

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Tutorium 5 - Programmieren

Transkript:

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

public class Rechteck { Selektoren } //Objektattribute double laenge, breite; int strichstaerke; //Selektoren public void setlaenge (double l) { laenge = l; } public double getlaenge () { return laenge; }... Rechteck r, s;... r.laenge = s.laenge + 2; r.setlaenge (s.getlaenge() + 2); II.2.3 Datenabstraktion - 2 -

public class Rechteck { Selektoren } //Objektattribute double flaeche, breite; int strichstaerke; //Selektoren public void setlaenge (double l) { flaeche = l * breite; } public double getlaenge () { return flaeche / breite; }... Rechteck r, s;... r.setlaenge (s.getlaenge() + 2); II.2.3 Datenabstraktion - 3 -

Zugriffsspezifikationen Einschränkung des Zugriffs auf Attribute und Methoden: private: Komponente nur innerhalb der Klasse bekannt kein Schlüsselwort: Komponente nur innerhalb des Pakets bekannt public: Komponente überall bekannt II.2.3 Datenabstraktion - 4 -

public class Rechteck { Zugriffsspezifikationen } //Objektattribute private double laenge,breite; private int strichstaerke; //Selektoren public void setlaenge (double l) { laenge = l; } public double getlaenge () { return laenge; }... Rechteck r, s;... r.laenge = s.laenge + 2; nicht mehr möglich! r.setlaenge (s.getlaenge() + 2); II.2.3 Datenabstraktion - 5 -

Geheimnisprinzip (Information Hiding) Client / Server - Prinzip: Anbieter publiziert Katalog der Dienstleistungen als öffentliche Schnittstelle. Kunde interessiert nur die Schnittstelle, nicht wie die Leistung erbracht wird. Bsp: API der Java-Bibliotheken Abstrakter Datentyp: Daten (Attribute) und die darauf ausführbaren Operationen (Methoden) abstrakte Schnittstellendefinition nach außen (konkrete Realisierung und Implementierung bleibt verborgen) Datenabstraktion und Datenkapselung Vorteile: besseres Verständnis leichtere Änderbarkeit bessere Modularisierung II.2.3 Datenabstraktion - 6 -

Schnittstellendokumentation II.2.3 Datenabstraktion - 7 -

Beispiel: Datentyp Ordner "Ordner " als Konzept enthält Texte Texte können abgelegt und entnommen werden ein Ordner kann beschriftet werden ein Ordner kann leer oder voll sein Abstrakte Beschreibung des Konzepts Ordner Schnittstelle: Datenkapselung als Entwurfsprinzip! void legetextab (String t) String entnehmetext () boolean istvoll () boolean istleer () void beschrifte (String t) String liesbeschriftung () II.2.3 Datenabstraktion - 8 -

Verwendung des Datentyps Ordner Ordner o = new Ordner (); o.beschrifte ("Kleine Gedichte"); if (o.istvoll()) System.out.println("Ordner ist bereits voll"); else o.legetextab ("Herr Ribeck auf Ribeck..."); if (o.istvoll()) System.out.println("Ordner ist bereits voll"); else o.legetextab ("Von drauss vom Walde komm ich her..."); System.out.println (o.liesbeschriftung ()); System.out.println ("------------------------------"); if (!o.istleer()) System.out.println (o.entnehmetext ()); if (!o.istleer()) System.out.println (o.entnehmetext ()); II.2.3 Datenabstraktion - 9 -

Implementierung des Datentyps Ordner /** Datentyp Ordner zur Speicherung von Texten * @author Juergen Giesl */ public class Ordner { private static final int maxtexte = 20; private String [] ordnerinhalt = new String [maxtexte]; private int anzahltexte = 0; private String beschriftung = ""; /** @return true, falls der Ordner voll ist, sonst false */ public boolean istvoll () { return anzahltexte = = maxtexte; } Es wird ein Array verwendet /** @return true, falls der Ordner leer ist, sonst false */ public boolean istleer () { return anzahltexte = = 0;} II.2.3 Datenabstraktion - 10 -

Implementierung des Datentyps Ordner /** @param t Text, der vorne im Ordner abgelegt wird */ public void legetextab (String t) { ordnerinhalt [anzahltexte] = t; anzahltexte ++; } /** Liest zuletzt eingegebenen Text und loescht ihn. * @return letzten abgelegten Text */ public String entnehmetext () { String t = ordnerinhalt [anzahltexte-1]; ordnerinhalt [anzahltexte-1] = ""; anzahltexte --; return t; } /** @param t Beschriftung des Ordners */ public void beschrifte (String t) { beschriftung = t; } } /** @return Beschriftung des Ordners */ public String liesbeschriftung () { return beschriftung; } II.2.3 Datenabstraktion - 11 -

Schnittstellendokumentation II.2.3 Datenabstraktion - 12 -