Philipp Güttler Objektorientierung und komplexe Datentypen

Ähnliche Dokumente
Repetitorium Informatik (Java)

Objektorientierung. Marc Satkowski 20. November C# Kurs

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Teil 2: Weitere Aspekte der Objektorientierung

Tag 7 Repetitorium Informatik (Java)

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Propädeutikum Programmierung in der Bioinformatik

Grundlagen der Objektorientierten Programmierung Static

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

Objektorientierte Programmierung Studiengang Medieninformatik

Javakurs für Anfänger

Geschachtelte Klassen

Implementieren von Klassen

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

Javakurs für Anfänger

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

Einstieg in die Informatik mit Java

Programmieren in Java

7. Übung Informatik II - Objektorientierte Programmierung

Geschachtelte Klassen

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

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

Vorkurs Informatik WiSe 15/16

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

10 double ms2 = Math.sqrt(2.0); 11 double sms2 = StrictMath.sqrt(2.0); 7 import static java.lang.math.sqrt; 13 double ms2 = sqrt(2.

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Modellierung und Programmierung 1

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

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

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

Objektorientierte Programmierung und Klassen

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

Grundlagen der Programmierung

2. Unterprogramme und Methoden

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

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Tag 8 Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Programmieren in Java

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

7. Objektorientierung. Informatik II für Verkehrsingenieure

Theorie zu Übung 8 Implementierung in Java

Grundlagen der Programmierung

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Liste Programmieren Java Überblick

Einstieg in die Informatik mit Java

Algorithmen und Datenstrukturen

Programmieren in Java

Tafelübung 07 Algorithmen und Datenstrukturen

Einführung in die Programmierung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Objektorientierte Programmierung

Objektorientierte Programmierung

C++ - Objektorientierte Programmierung Polymorphie

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

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

Intuitive Einführung. Informatik B Objektorientierte Programmierung in Java. Vorlesung 01: Objektorientierte Programmierung (Teil 1)

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

Algorithmen und Datenstrukturen

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

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

Informatik II. Woche 15, Giuseppe Accaputo

1. Welche Programmzeilen definieren die main-methode richtig?

Informatik II. Woche 13, Giuseppe Accaputo

Informatik I (D-MAVT)

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Javakurs 2013 Objektorientierung

Objektorientierte Programmierung

C++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Objektorientierte Programmierung

Objektorientierung (OO)

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 -

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);

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Grundelemente objektorientierter Sprachen (1)

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Grundelemente objektorientierter Sprachen (1)

Informatik II Prüfungsvorbereitungskurs

Abschnitt 6: Klassen, Objekte und Methoden in Java

Programmierung Nachklausurtutorium

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Programmieren in Java

Software Entwicklung 1

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Transkript:

Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen

Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen von Sachverhalten einzelne Aspekte werden als Objekte abstrahiert diese Objekte haben eine Identität, einen Zustand und zeigen ein bestimmtes Verhalten

Seite 3 Klassen Klasse gibt die Struktur, Form, das Modell des Objektes vor enthält Attribute (Zustand) und Methoden (Verhalten) Definition von komplexen Datentypen Aufteilung von komplexen Programmen leichte Wiederverwendbarkeit

Seite 4 Objekte Klassenname als Bezeichner (Typname) Variable enthält nicht direkt Wert, sondern die Referenz auf das Objekt durch Konstruktoraufruf wird Objekt existent (Instanziierung, new ) Garbage Collection räumt Objekte ohne Referenzen aus dem Speicher Hase h1 = new Hase(); // h1.ohren == 2 (default) Hase h2 = h1; // h1.ohren == 2, h2.ohren = 2 h1.ohren = 0; // h1.ohren == 0, h2.ohren = 0

Seite 5 Sichtbarkeit Attribute und Methoden können in Verwendung eingeschränkt werden Beispiel-Modifizierer public freier Zugriff <kein> Zugriff innerhalb des Paketes private Zugriff nur innerhalb der Klasse protected Zugriff nur innerhalb der Klasse und abgeleiteten Klassen static gleicher Wert für alle Instanzen final ein Initialzustand wird festgeschrieben

Seite 6 Attribute Variablen, die den Objektzustand speichern Objektattribute: objektname.attributname Klassenattribute: KlassenName.attributName this ist die Referenz auf das derzeitige Objekt Hase welcherhasebistdu() { return this; }

Seite 7 Attribute Variablen, die den Objektzustand speichern Objektattribute: objektname.attributname Klassenattribute: KlassenName.attributName this ist die Referenz auf das derzeitige Objekt int ohren = 2;... int ohrsumme(int ohren) { return ohren + this.ohren; }

Seite 8 Methoden Operationen, die das Verhalten definieren Konstruktoren als spezielle Methoden besitzen keinen Rückgabetyp Objektmethoden: objektname.methodenname(...) Klassenmethoden: KlassenName.methodenName(..) statische Methoden können nicht direkt auf Objektvariablen zugreifen

Seite 9 Übergabe von Variablen: call-by-value primitive Datentypen int i = 5; int j = i; System.out.println(i); // 5 i = 1; System.out.println(j); // 5

Seite 10 Übergabe von Variablen: call-by-value komplexe Datentypen public static void main ( String [] args ) { Hase h = new Hase (); h.ohren = 0; Hase.ersetzeOhr(h); // h.ohren == 1; } static void ersetzeohr(hase m) { // m.ohren == 0; m.ohren = 1; }

Seite 11 Übergabe von Variablen: call-by-value komplexe Datentypen public static void main ( String [] args ) { Hase h = new Hase (); h.ohren = 0; Hase.ersetzeHasen(h); // h.ohren == 0; } static void ersetzehasen(hase m) { m = new Hase(); }

Seite 12 Vergleiche von Variablen für primitive Datentypen int i = 1; int j = 2; System.out.println( i == j ); // false

Seite 13 Vergleiche von Variablen für primitive Datentypen int i = 1; int j = 2; System.out.println( i == j ); // false für komplexe Datentypen == überprüft auf Identität equals() überprüft Gleichheit String i = new String("Progwerkstatt"); System.out.println(i); // Progwerkstatt System.out.println( i == "Progwerkstatt" ); // false System.out.println( i.equals("progwerkstatt") ); // true

Seite 14 Aufgabe Klasse zur Datenrepräsentation von Vektoren (n = 3) Attribute, Methoden, Konstruktoren deklarieren Methode length() um die Länge des Vektors zu berechnen Methode addiere(vektor v), die einen Vektor um einen anderen erweitert Klassenmethode addition(vektor v1, Vektor v2), die zwei Vektoren addiert und einen Neuen zurückgibt Testen und Ausgabe von Ergebnissen