Übersicht. Vorstellung des OO-Paradigmas

Ähnliche Dokumente
Java, OO und UML Fortsetzung

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

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 17/18

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1)

Grundlagen der Informatik 0

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

Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Algorithmen und Datenstrukturen

Java Datentypen und Variablen

Einführung in die Programmierung

Grundlagen der Modellierung und Programmierung, Übung

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

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

Einführung in C. EDV1-04C-Einführung 1

Die Klasse Vertiefung

Java I Vorlesung Imperatives Programmieren

Martin Unold INFORMATIK. Geoinformatik und Vermessung

EINFÜHRUNG IN DIE PROGRAMMIERUNG

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

Objektorientierte Programmierung Studiengang Medieninformatik

AuD-Tafelübung T-B5b

Wir wollen in einer Bank die Konten der Kunden modellieren (um sie dann entspr. zu verarbeiten

Wo sind wir? Übersicht lexikale Struktur von Java

Gliederung der Folien

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

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

Einstieg in die Informatik mit Java

12 Abstrakte Klassen, finale Klassen und Interfaces

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

EINFÜHRUNG IN DIE PROGRAMMIERUNG

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

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Praxis der Programmierung

Vorkurs Informatik WiSe 15/16

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Programmiervorkurs Einführung in Java Tag 1

Programmieren in Java

Abschnitt 10: Klassen, Objekte und Methoden in Java

Tag 8 Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Objektorientierte Programmierung Studiengang Medieninformatik

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

6. Globalübung (zu Übungsblatt 8)

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Programmieren in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java

Javakurs für Anfänger

Java für Bauingenieure

Informatik Vorkurs - Vorlesung 2

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Übungen zur Vorlesung Wissenschaftliches Rechnen I

Tag 4 Repetitorium Informatik (Java)

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

JAVA-Datentypen und deren Wertebereich

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Hüllklassen. Gerd Bohlender. 25. Juni Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003

Programmieren in Java

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

3. Java - Sprachkonstrukte I

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Generisches Programmieren. Generisches Programmieren

II.4.1 Unterklassen und Vererbung - 1 -

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Objektorientierung. Marc Satkowski 20. November C# Kurs

II.4.1 Unterklassen und Vererbung - 1 -

Programmieren in Java -Eingangstest-

Typsystem Plattform- und Sprachenunabhängigkeit in.net

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 2. Mai 2003

Vorlesung Programmieren

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme

Werkzeuge zur Programmentwicklung

Java Einführung Abstrakte Klassen und Interfaces

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders

Basiswissen in Informatik

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Android will doch nur spielen. Java Vertiefung und Übung

Klausur Grundlagen der Programmierung

Objektorientierte Programmierung. Kapitel 19: Wrapper-Klassen

Programmieren in Java

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

Objektorientierte Programmierung Studiengang Medieninformatik

Probeklausur: Programmierung WS04/05

Transkript:

Java, OO und UML

Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Das Objektorientierte Paradigma OO bildet keine geschlossene theoretisch abgegrenzte Basis (wie z.b. das Relationsmodell relationaler Datenbanken) OO ist eine Sammlung und Nutzung mehrerer Prinzipien Klasse (Kapselung) Objekte (Kapselung) Vererbung Nachricht Polymorphie Identität (von Objekten)

Das Objektorientierte Paradigma Unterschiedliche Ansätze der OO- Umsetzung sind möglich Dies schlägt sich in der Vielzahl OOfähiger Sprachen nieder Sprachen wie Eiffel setzen das OO- Paradigma am konkretesten um, hier ist alles Objekt, es gibt keine primitiven Datentypen

Das Objektorientierte Paradigma Um das Paradigma von der reellen Implementierung abzugrenzen, gibt es Beschreibungssprachen Diese geben OO-Konzepte sprachneutral wieder Die bekannteste und verbreitetste ist UML UML ist zudem eine graphische Beschreibungssprache Die OO-Konzepte von Java werden im folgenden in UML mitdargestellt

Vokabeln lernen - Java und Grammatik

Java - Grammatik Für alle Programmiersprachen gilt, dass sie einer Grammatik genügen müssen Diese Grammatik ist eben genau durch den Compiler, der den Quellcode in Maschinensprache übersetzt, festgelegt Genügt der Quellcode nicht der Grammatik der Sprache, in der er geschrieben ist, gibt der Compiler Fehler aus Ein theoretisches Konstrukt für Grammatiken ist die Backus-Naur- Notation

Java - Grammatik Auszug aus der Java-Grammatik in EBNF:... Type ::= ( ReferenceType PrimitiveType ); ReferenceType ::= ( PrimitiveType ( "[" "]" )+ ( ClassOrInterfaceType ) ( "[" "]" )* ); ClassOrInterfaceType ::= <IDENTIFIER> ( TypeArguments )? ( "." <IDENTIFIER> ( TypeArguments )? )*; TypeArguments ::= "<" TypeArgument ( "," TypeArgument )* ">"; TypeArgument ::= ( ReferenceType "?" ( WildcardBounds )? ); WildcardBounds ::= ( "extends" ReferenceType "super" ReferenceType ); PrimitiveType ::= ( "boolean" "char" "byte" "short" "int" "long" "float" "double" );... Beispiele: boolean boolean[] String String[] Testclass.innerClassType Testclass.innerClassType[]...

Java - Grammatik Java-Quellcode setzt sich grammatisch zusammen aus: Bezeichner oder Identifier Schlüsselworte (sog. Terminale) Literale Operatoren Trennzeichen

Java - Grammatik public class test { public alert(string text) { System.out.println(text + TEST ); } } * Bezeichner oder Identifier * Schlüsselworte (sog. Terminale) * Literale * Operatoren * Trennzeichen

Die Konzepte des Paradigmas

Konzepte des Paradigmas - Klasse Ist die grundlegende Beschreibung von gleichartigen Objekten Diese teilen sich dadurch Attribute Operatoren Methoden Beziehungen Semantik

Konzepte des Paradigmas - Klasse Es gibt konkrete und abstrakte Klassen Konkrete Klassen beinhalten ausprogrammierte Methoden, abstrakte Klassen nicht Abstrakte Klassen dienen als Strukturierungsmittel beider Vererbung Abtstrakte Klassen heissen in Java Interfaces (bzw. werden als solche verwendet)

Konzepte des Paradigmas - Klasse Darstellung in UML

Konzepte des Paradigmas - Klasse... und in Java class Mediafile { // Attribute } // Methoden

Konzepte des Paradigmas - Objekt Ist die konkrete Ausprägung einer Klasse Vereinfacht gesagt, die durch den Objektnamen eindeutig bezeichnete Kopie des Klassenquellcodes im Speicher In UML

Konzepte des Paradigmas - Objekt

Konzepte des Paradigmas - Objekt In Java......wird ein Objekt durch den new Operator erzeugt Klasse Objektname = new Konstruktor() Testclass test = new Testclass(); Ist in einer Klasse kein dedizierter Konstruktor implementiert, erzeugt Java einen Standardkonstruktor

Konzepte des Paradigmas - Attribut Ist ein bennanter Speicherplatz innerhalb einer Klasse Beschreibt eine Menge von gültigen Wertebelegungen innerhalb der Objekte Diese Mengen werden als Typ des Attributes bezeichnet Im Normalfall sind alle Attribute separiert Sollen Attribute klassenweit für Objekte gelten, muß dies explizit angegeben werden

Konzepte des Paradigmas - Attribut Dies gilt ebenso für eine evt. Konstantenverwendung eines Attributes Attribute können in ihrer Sichtbarkeit definiert werden (public, protected, private) Zudem gibt es abgeleitete Attribute Diese werden durch Methoden aus bestehenden Attributen errechnet

Konzepte des Paradigmas - Attribut Attribute in UML

Konzepte des Paradigmas - Attribut Attribute in UML +, - und # bezeichnen die Sichtbarkeit public, private und protected [] bezeichnen Multiplizität des Attributes (Array) / bezeichnet ein abgeleitetes Attribut Reihenfolge ist: Sichtbarkeit Multiplizität Bezeichnung Typ

Konzepte des Paradigmas - Attribut In Java public class TestKlasse { boolean testattrib1 = false; protected int testatttrib2 =42; private char testattrib3; short testarray[]; final double pi = 3.14; static int nooftestklasse; }

Konzepte des Paradigmas - Attribut Kurzer Einschub über den Scope / Gültigkeitsbereich von Attributen Faustregel: Innerhalb des Klammerpaares, das den Bereich umschliesst, in dem das Attribut definiert wurde, gilt das Attribut als sicht- und veränderbar. Alle Attribute, die direkt im Körper der Klasse definiert sind, sind demnach für alle Methoden der Klasse sichtbar

Konzepte des Paradigmas - Attribut Weiter können aber auch Attribute hier definiert werden: Methoden Schleifen Verzweigungen Anonymen Blöcken Diese sind dann (siehe Faustregel) nur in der jeweiligen Struktur sichtbar Doppelte Definitionen sind allerdings verboten

Konzepte des Paradigmas - Attribut public class Testclass { } public int number = 5; public add(int new_number) { number = number + new_number; // eigentlich this.number // kann aber bei Eindeutigkeit entfallen } public check() { int check_value = 10; if (number > check_value) { String output1 = Is greater than 10 ; System.out.println(output1); } else { String output2 = Is lesser than 10 ; System.out.println(output2); } System.out.println(output1); // FEHLER, nicht sichtbar! }

Konzepte des Paradigmas - Attribut Primitive Datentypen in Java Primitiver Typ Größe in Bit Wertebereich Wrapper-Typ boolean 1 - Boolean char 16 Unicode 0 - Character Unicode 216-1 byte 8 (-128) - (+127) Byte short 16 (-2^15)-(+2^15-1) Short int 32 (-2^31)-(+2^31-1) Integer long 64 (-2^63)-(2^63-1) Long float 32 IEEE754 Float double 64 IEEE754 Double void - - Void Wrappertypen sind Klassen für prim. Datentypen (Objekt <-> Wert)

Konzepte des Paradigmas - Identität Identität unterscheidet Objekte voneinander Theoretisch und praktisch können Objekte gleichen Typs zur gleichen Zeit Gleiche Werte Gleichen Namen Gleichen Zustand haben. Zur Unterscheidung erzeugt Java den OID (Object identifier) automatisch Dieser ist komplett unsichtbar