3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen.

Größe: px
Ab Seite anzeigen:

Download "3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen."

Transkript

1 3.2 Objekte und Klassen Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-1

2 Objektorientierte Programmierung Objekte Objekte sind kleine Programmstücke. Jedes Objekt hat spezifische Fähigkeiten. Objekte kooperieren, um eine umfangreiche Aufgabe gemeinsam zu erfüllen. Klassen Klassen sind Fabriken für Objekte. Jede Klasse kann einen ganz bestimmten Typ von Objekten erzeugen. Eine Klasse kann beliebig viele Exemplare eines Objekts erzeugen. Jedes Objekt gehört zu genau einer Klasse. Jedes Objekt bekommt einen eigenen Namen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-2

3 Objekte und Klassen (1) Objekte modellieren Gegenstände Akteure Objekte haben Felder (Eigenschaften ) Methoden (Fähigkeiten) Klassen umfassen gleichartige Objekte enthalten den Bauplan für die Objekte erzeugen Objekte Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-3

4 Objekte und Klassen (2).Auf Karteikarten notieren wir die Fähigkeiten der Objekte Triangle Circle Square Konstruktor: Triangle() Methoden: void makevisible() void changecolor(string) Konstruktor: Triangle() Konstruktor: Maler Methoden: Triangle() void makevisible() Methoden: void moveup() Konstruktor: void changecolor(string) void makevisible() void movedown() Maler() void moveup() void changecolor(string) void movehorizontal(int) Methoden: void movedown() void moveup() void movevertical(int) void malehaus() void movehorizontal(int) void movedown() void maleportrait(string) void movevertical(int) void säuberepinsel() void änderefarbe()... void movehorizontal(int) void movevertical(int) void: Das Ergebnis der Methode ist nicht ein Wert, sondern eine Änderung des Zustandes. Anhand dieser Karteikarten kann sich ein Programmierer passende Objekte aussuchen und diese in seinen Programmen verwenden. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-4

5 Objekte und Klassen (3) Ein Bankkonto als Objekt Was ist ein Konto? Es hat eine Nummer. Es kann den Namen des Inhabers speichern. Es kann einen Geldbetrag speichern. konto_1 nummer : inhaber : Donald Duck kontostand : getkontostand Was kann man mit Konten machen? Den Kontostand abfragen Einen Geldbetrag einzahlen Einen Geldbetrag abheben Auf ein anderes Konto einen Betrag überweisen. einzahlen abheben überweisen betrag : betrag : empfänger : betrag : Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-5

6 Objekte und Klassen (4) Das Bankkonto als Klasse Wir konzentrieren uns zunächst auf die Objektfelder nummer, inhaber, kontostand Die Klasse Konto dient als Fabrik bzw. als Vorlage für beliebig viele einzelne Konten. Jedes Konto ist ein Objekt dieser Klasse. Die Objektfelder speichern jeweils eigene Werte. class Konto { int int nummer; String inhaber; int int kontostand; } Einige Objekte (Instanzen) der Klasse Konto: konto_1 nummer : inhaber : Otto kontostand : 700 konto_2 nummer : inhaber : Bill kontostand : deinkonto nummer : inhaber : Ötzi kontostand : -230 Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-6

7 Objekte und Klassen (5) In BlueJ erzeugen wir die Klasse Konto Neue Klasse: Konto Objektfelder: nummer inhaber kontostand Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-7

8 Objekte und Klassen (6) Dann erzeugen wir die Objekte konto1, konto2 und meinkonto Wir inspizieren meinkonto und finden int nummer: 0 String inhaber: null int kontostand: 0 null bedeutet uninitialisiert. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-8

9 Felder Die Klasse Konto hat drei Objektfelder: nummer inhaber kontostand Jedem Feld ist sein Typ vorangestellt: int nummer ; das Feld nummer kann eine beliebige ganze Zahl aufnehmen (keinen Text, keine Dezimalzahl) String inhaber ; das Feld inhaber kann einen beliebigen Text aufnehmen (keine Zahl, keinen Wahrheitswert) int kontostand ; class class Konto Konto { int int nummer; String inhaber; int int kontostand; } das Feld kontostand kann eine beliebige ganze Zahl aufnehmen (genau genommen, nur im Bereich der Genauigkeit des Rechners) (keinen Text, keine Dezimalzahl) Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-9

10 Primitive Typen und Objekttypen Es gibt zwei Kategorien von Typen int ist ein primitiver Typ Der Wert eines primitiven Typs wird direkt in das Feld geschrieben. die anderen primitive Typen heißen: boolean, char, byte, short, long, float, double String ist ein Objekttyp so wie Konto oder Maler. In ein Feld vom Objekttyp wird nicht sein Wert, sondern ein Link (Referenz) auf den Wert hineingeschrieben. Solange es noch nicht initialisiert ist, hat es den Wert null. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

11 Methoden (1) Bisher haben unsere Konten nur Felder. Es fehlen noch Methoden, zum Beispiel getkontostand einzahlen abheben überweisen getkontostand einzahlen betrag : abheben betrag : überweisen empfänger : betrag : Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

12 Methoden (2) Methoden lassen sich klassifizieren in Observer-Methoden liefern Objekt-Informationen zurück. Sie liefern einen Wert, z. B. eine Zahl, einen String, ein anderes Objekt. Observer sollen das Objekt nicht verändern Mutator-Methoden verändern das Objekt. Sie verändern den Zustand des Objekts. Sie werden i. d. R. nicht verwendet, um Informationen über das Objekt zu liefern. Methoden können zugleich Mutator und Observer sein. Solche Methoden sollten Sie nur in begründeten Ausnahmen verwenden. ansonsten berechnet der Tutor Ihnen Minuspunkte! Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

13 Methoden (3) Observer und Mutatoren für das Konto Observer getkontostand Typ des Rückgabewertes: int getkontostand Mutatoren einzahlen abheben überweisen Typ des Rückgabewertes: keiner, also void einzahlen abheben überweisen betrag : betrag : empfänger : betrag : Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

14 Methoden (4) Rückgabewert Die Methode getkontostand soll den Wert des Feldes kontostand liefern (engl: to return) Typ des Ergebnisses Name der Methode Parameterliste int getkontostand( ) { return kontostand; } liefere als Rückgabewert den Inhalt des Feldes kontostand Kopf Körper/Rumpf Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

15 Methoden (5) Parameter Die Methode einzahlen benötigt einen Input: Den zu überweisenden betrag. Das ist ein Wert vom Typ int. Typ des Ergebnisses Name der Methode ein Parameter vom Typ int void einzahlen ( int betrag ) { kontostand += betrag ; } kontostand wird erhöht um betrag Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

16 Methoden (6) Signatur Den Kopf einer Methode nennt man auch Signatur. Dazu gehören: der Name die Liste der Parametertypen Nicht zur Signatur gehören: der Ergebnistyp die Parameternamen Beispiele: int getkontostand( ) { return kontostand; } void einzahlen ( int betrag ) { kontostand += betrag ; } void überweisen( Konto empfänger, int betrag ) { //... kommt noch ; } getkontostand( ) einzahlen(int) überweisen(konto, int ) Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

17 Die neue Klasse Konto Beachten Sie die Formatierung der Klammern für den Rumpf der Methoden. Wenn der Cursor neben einer Klammer steht, wird deren Partner hervorgehoben Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

18 Die neuen Fähigkeiten von Konto Das Objekt versteht jetzt einzahlen und getkontostand Wir wählen den Menüpunkt einzahlen. Es erscheint ein Fenster, um den Parameter betrag einzugeben. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

19 Rückgabewerte getkontostand() ist ein Observer. der Rückgabewert ist vom Typ int Bei Anwahl des Menüpunktes öffnet BlueJ ein Fenster, in dem der Rückgabewert angezeigt wird. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

20 Objekte live beobachten Inspizieren Sie ein Konto. Lassen Sie den Inspektor geöffnet und zahlen Sie ein, heben Sie ab, Sie sehen, wie sich der Wert kontostand dabei verändert. Übrigens wurde abheben analog zu einzahlen implementiert. Statt += (erhöhen um) müssen Sie dort -= (erniedrigen um) verwenden. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

21 Überweisen Um einen Geldbetrag von einem Konto auf ein anderes zu überweisen, benötigt die Methode zwei Parameter: das Konto des Empfängers den Betrag. Typ des Ergebnisses Name der Methode Erster Parameter ist vom Typ Konto Zweiter Parameter ist vom Typ int void überweisen( Konto empfänger, int betrag ) { abheben(betrag); empfänger.einzahlen(betrag); } Konto des Empfängers Aufruf der Methode Betrag aus Parameter 2 Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

22 Methodenaufruf Beim Aufruf einer Methode werden formale Parameter durch aktuelle Werte ersetzt: void überweisen( Konto empfänger, int betrag ) { abheben(betrag); empfänger.einzahlen(betrag); } Die Methode überweisen besteht aus einem Aufruf der Methode abheben, dann aus einem Aufruf der Methode einzahlen des empfänger-kontos. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

23 Kommunikation zwischen Objekten Der Aufruf überweisen(konto7,325); führt zu abheben(325); konto7.einzahlen(325); also einem Methodenaufruf eines anderen Objektes. Es liegt eine (elementare) Objekt-Kommunikation vor: Das Objekt, das die Methode überweisen benutzt, kommuniziert mit dem Objekt, das als empfänger-konto benannt ist. Der empfänger, hier konto7, erhält die Weisung, einzahlen aufzurufen, und den Parameter 325. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

24 Was passiert? meinkonto nummer : inhaber : Donald Duck kontostand : 775 getkontostand Konto7 nummer : inhaber : Dagobert kontostand : getkontostand einzahlen betrag : einzahlen betrag : abheben betrag : abheben betrag : überweisen empfänger : betrag : 325 überweisen empfänger : betrag : 325 abheben(325); konto7.einzahlen(325); abheben betrag : 325 konto7 einzahlen betrag : 325 Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

25 In BlueJ Eingabe des Konto-Parameters durch Eingabe des Namens hier: konto7 (ohne ), oder... durch Klick auf das Objekt Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

26 Konstruktoren Konstruktoren dienen in Java dazu, Objekte zu erzeugen. Bisher haben alle Konten: Nummer: 0 Inhaber : <null> Nummer und Namen sollten bei der Erzeugung des Objektes gesetzt werden. Danach brauchen sie nicht mehr verändert werden. Wer sollte also verantwortlich sein für die Konstruktor-Methode die Klasse? das Objekt? Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

27 Konstruktoren Konstruktoren sind spezielle Methoden. gehören zur Klasse. Sie haben den gleichen Namen wie die Klasse: Der Konstruktor der Klasse Konto heißt Konto Groß- bzw. Kleinschreibung ist wieder signifikant. Konstruktoren haben keinen Rückgabewert. Ihr Ergebnis ist ein neues Objekt der Klasse. Ein Konstruktor für Konto liefert ein Objekt der Klasse Konto Sie brauchen kein return Wenn ein Konstruktor fertig ist, hat er sein Objekt konstruiert. Für jede Klasse gibt es einen Default-Konstruktor. Er kann ein Objekt der Klasse erzeugen. Alle Felder sind mit Vorgabe-Wert initialisiert: Jedes int-feld mit 0 Jedes Objekt-Feld mit <null> Default-Konstruktor der Klasse Konto: Konto( ) { } Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

28 Ein besserer Konstruktor für Konten Konto(int neuenummer, String name){ nummer = neuenummer; inhaber = name ; kontostand = 0; } Definition des Konstruktors Der Aufruf new Konto( , Dagobert ) liefert: nummer : inhaber : Dagobert kontostand : 0 Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

29 Konto-Erzeugung in BlueJ Die Klasse Konto hat einen neuen Konstruktor mit zwei Parametern: Bei der Erzeugung eines Objektes werden die gewünschten Werte der Parameter abgefragt: Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

30 Mehrere Konstruktoren (1) Eine Klasse kann mehrere Konstruktoren haben. Beispiele: Die Bank will einem Neukunden gleich ein Begrüßungsgeld überweisen. Wenn der Neukunde von einem anderen Kunden geworben wurde, soll der Werber eine Prämie erhalten Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

31 Mehrere Konstruktoren (2) Verschiedene Konstruktoren müssen verschiedene Signaturen haben, da sie systemintern aufgrund ihrer Signaturen unterschieden werden. In der Klasse Konto sind zum Beispiel gleichzeitig möglich: Konto ( ) Konto (int nummer, String name) Konto (String name, int nummer) Konto (int nummer, String name, int begrüßungsgeld) Konto (int nummer, String name, Konto werber) Nicht erlaubt sind gleichzeitig Konto (int nummer, String name) Konto (int betrag, String empfänger) Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

32 Information Hiding (1) Bisher gehört zu einem Konto die Karteikarte: Konto Felder: int nummer String inhaber int kontostand Konstruktoren: Konto() Konto(int,String) Methoden: int getkontostand () void einzahlen (int) void abhebeben (int) void überweisen (Konto, int)... Ein Benutzer der Klasse Konto sollte auf die gespeicherten Daten nur mit Hilfe der vereinbarten Methoden zugreifen können. Wir schützen daher die Felder vor externem Zugriff durch das Schlüsselwort private. Was sind die Vorteile, was die Nachteile? Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

33 Information Hiding (2) Wir schützen die Felder inhaber und kontostand. Von einem Benutzer können sie dann nicht gelesen oder verändert werden, außer mit den erlaubten Methoden: int getkontostand() String getinhaber() einzahlen() abheben() überweisen() Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

34 Die neue Karteikarte für Konto Die Karteikarte für Konto sieht jetzt so aus: Konto Felder: int nummer private private String String inhaber inhaber private private int int kontostand kontostand Konstruktoren: Konto() Konto(int,String) Methoden: int getkontostand () String getinhaber() void einzahlen (int) void abhebeben (int) void überweisen (Konto, int)... inhaber und kontostand sind von außerhalb nicht mehr sichtbar. inhaber kann noch gelesen, aber nicht verändert werden. Will die Bank später für jedes Lesen eine Legitimation (z. B. ein Passwort) verlangen, so muss sie nur getinhaber() ändern. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

35 Kommentare Java kennt drei Arten von Kommentaren: // Kommentare bis zum Zeilenende eine kurze Erläuterung für jemand, der das Programm liest /* Kommentare innerhalb einer Code-Zeile */ erläutern eine schwierige Stelle damit ich später weiß, was ich mir dabei gedacht habe damit meine Kollegin den Code versteht /** Aus dem Text in diesen Klammern */ erzeugt javadoc.exe eine Dokumentation Bestimmte Marken zur Textauszeichnung sind erlaubt, Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

36 Kommentare für Javadoc Javadoc sollte wissen: Zu Beginn der Klasse: /** Wozu dient sie, was stellt */ Für jedes Feld /** Was wird hier gespeichert */ Für jede Methode /** Was tut Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

37 Mindest-Dokumentation Eine Dokumentation ist essentiell für jedes Programm! Andere müssen meine Klassen nutzen, ohne den Source-Code zu kennen Eine Mindest-Dokumentation wird direkt aus BlueJ erzeugt: Wozu dient die Klasse? Autor Version/Datum Was bedeuten die Felder? (nicht notwendig für als private erklärte Felder) Was tun die Methoden? Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

38 Mindest-Dokumentation: Beispiel Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

39 Ergebnis von Javadoc: Brauchbare Dokumentation Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

40 Weitere Javadoc-Möglichkeiten Neben sind auch einfache HTML-Befehle möglich wie <p>, <b>, <strong>, <i>,... Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

41 Fazit Wir haben Klassen und Objekte (Instanzen) genau kennen gelernt. Wir verstehen, wozu Methoden dienen, und können sie benutzen. Wir verstehen Konstruktoren und können sie benutzen. Wir wissen, wozu man Parameter als private spezifiziert. Wir haben Kommentare für Java kennen gelernt und wissen, wie wir mit Javadoc eine einfache Dokumentation für unser Programm erzeugen können. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java

Objekte und Klassen. Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc

Objekte und Klassen. Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc Objekte und Klassen Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc Algorithmen Algorithmen sind Handlungsanweisungen beispielsweise um ein Essen zu kochen

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

3. Die Programmiersprache Java

3. Die Programmiersprache Java 3. Die Programmiersprache Java 3.1 Arbeiten mit BlueJ 3.2 Objekte und Klassen 3.3 Klassen und Unterklassen 3.4 Daten und Operationen 3.5 Ausdrücke 3.6 Algorithmische Kernsprache 3.7 Sprachbeschreibung

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

In BlueJ geht es einfach

In BlueJ geht es einfach Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Arrays Fortgeschrittene Verwendung

Arrays Fortgeschrittene Verwendung Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2 Praktische Informatik I Vorlesung im Herbstwintersemester 2007 Autorisierte studentisch Lösungen zu Aufgabenblatt 2 zusammengestellt von Iva Tsvetkova 9.10.2007 1.Präsenzaufgaben 1.1 Entwurf einer Verwaltung

Mehr

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

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Konstruktoren, Packages und Scopes

Konstruktoren, Packages und Scopes Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Konstruktoren, Packages und Scopes Dipl. Inf. Manuel Götz Lehrstuhl für Angewandte

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Abschnitt 6: Klassen, Objekte und Methoden in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java Abschnitt 6: Klassen, Objekte und Methoden in Java 6. Klassen, Objekte und Methoden in Java 6.1 Klassen 6.2 Objekte 6.3 Methoden 6.4 Zusammenfassung 6 Klassen, Objekte und Methoden in Java Informatik 2

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

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

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 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

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

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

Kapitel 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

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

JAVA Kommentieren mit Javadoc

JAVA Kommentieren mit Javadoc Übungen Informatik I JAVA Kommentieren mit Javadoc Übungen Informatik 1 1 Kommentare in Java / mehrzeiliger Kommentar / // einzeiliger Kommentar Sichtbar nur im Quelltext Beschreiben für Entwickler was

Mehr

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Kapitel 19: Klassen und Unterklassen

Kapitel 19: Klassen und Unterklassen Kapitel 19: Klassen und Unterklassen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische

Mehr

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

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

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

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Einführung in die Programmierung

Einfü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

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal

Mehr

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem

Mehr

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte mit Greenfoot 1 Starten Sie Greenfoot. (Wenn Sie Greenfoot das erste Mal öffnen, erscheint ein Dialogfenster,

Mehr

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

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

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

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

Objektorientierung (OO)

Objektorientierung (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

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Objekte und Klassen. Eigene Definition von Klassen. Methoden. Konstruktoren. Instanzvariablen. UML Notation. Gleichheit von Objekten

Objekte und Klassen. Eigene Definition von Klassen. Methoden. Konstruktoren. Instanzvariablen. UML Notation. Gleichheit von Objekten Objekte und Klassen Eigene Definition von Klassen Methoden Konstruktoren Instanzvariablen UML Notation Gleichheit von Objekten Der spezielle Wert null- Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 1. Aufgabe (Spielen mit Objekten) Gegeben sei der auch von der Veranstaltungsseite erhältliche Programmcode auf der rechten Seite, der im Detail zuerst nicht verstanden werden muss. a) Erzeugen Sie sich

Mehr

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

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

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

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Java: Geheimnisprinzip, Kapselung; Getter und Setter.

Java: Geheimnisprinzip, Kapselung; Getter und Setter. Java: Geheimnisprinzip, Kapselung; Getter und Setter Geheimnisprinzip Nur einige Methoden und Attribute einer Klasse sind öffentlich zugänglich, die anderen bleiben geheim. = weniger (unbefugte, ungewollte

Mehr

ÜBUNGS-BLOCK 1 LÖSUNGEN

ÜBUNGS-BLOCK 1 LÖSUNGEN ÜBUNGS-BLOCK 1 LÖSUNGEN Aufgabe 1: Wenn dich jemand fragen würde, was er sich im Bezug auf die Programmierung unter einer Klasse vorstellen kann, was würdest du ihm sagen? Aus welchen Bestandteilen besteht

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung. Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter

Mehr

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

6. Zeiger Allgemeines Definition eines Zeigers

6. Zeiger Allgemeines Definition eines Zeigers 6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Ausdrucksbäume in verschiedenen Darstellungen

Ausdrucksbäume in verschiedenen Darstellungen Ausdrucksbäume in verschiedenen Darstellungen SWE-42 Infix mit notwendigen Klammern: (a + b) / (c - d) Infix vollständig geklammert: (((a) + (b)) / ((c) - (d))) Postfix a b + c d - / Präfix / + a b - c

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuÿ, Henning Timm Übungsblatt 2

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 12 Kapitel 18 Konstruktor / Destruktor einer Klasse Seite 1 von 12 Konstruktoren - Zur Initialisierung der Eigenschaften einer Klasse werden Konstruktoren verwendet. - Der Konstruktor wird bei der Definition

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays 1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr