Grundelemente objektorientierter Sprachen (1)

Ähnliche Dokumente
Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1)

Praxis der Programmierung

Methoden und Wrapperklassen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

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

Einstieg in die Informatik mit Java

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Praxis der Programmierung

Java Datentypen und Variablen

7. Objektorientierung. Informatik II für Verkehrsingenieure

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

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

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

Einführung in die Programmierung

Javakurs für Anfänger

Umsetzung einer Klassenkarte in einer Programmiersprache

Repetitorium Informatik (Java)

Prozeduren vs. Funktionen

Java für Bauingenieure

Implementieren von Klassen

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

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

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

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Programmiertechnik Klassenvariablen & Instantiierung

Java Vererbung. Inhalt

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Einstieg in die Informatik mit Java

3 Objektorientierte Konzepte in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java

Einstieg in die Informatik mit Java

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

Einstieg in die Informatik mit Java

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

Softwareentwicklung I (IB) Objekte. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.

Java-Applikationen (Java-Programme)

Vorkurs Informatik WiSe 15/16

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

Ausdrücke der Programmiersprache Java

Vererbung, Polymorphie

Prof. W. Henrich Seite 1

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Einstieg in die Informatik mit Java

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

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

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung und Klassen

Kapitel 08. Methoden und deren Aufrufe. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Algorithmen und Datenstrukturen

Praxis der Programmierung

Abschnitt 10: Klassen, Objekte und Methoden in Java

Einstieg in die Informatik mit Java

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

JAVA 06: Gemischte einfache Fragen zu Java

2. Unterprogramme und Methoden

Übersicht. Vorstellung des OO-Paradigmas

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

Algorithmen und Programmierung II

Kapitel 06. Klassen und Objekte. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Vorkurs Informatik WiSe 17/18

Einstieg in die Informatik mit Java

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

Computeranwendung und Programmierung (CuP)

Einstieg in die Informatik mit Java

7. Übung Informatik II - Objektorientierte Programmierung

Modellierung und Programmierung 1

2 Programmieren in Java I noch ohne Nachbearbeitung

C++ - Objektorientierte Programmierung Klassen und Objekte

Datenbankanwendungsprogrammierung Crashkurs Java

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

Einstieg in die Informatik mit Java

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean

Computeranwendung und Programmierung (CuP)

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

Grundlagen der Objektorientierten Programmierung - Methoden -

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

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

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

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

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

Vorkurs Informatik WiSe 16/17

C++ - Objektorientierte Programmierung Vererbung

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte

Elementare Konzepte von

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Programmieren in Java

Begriffe 1 (Wiederholung)

Transkript:

Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte i.allg. veränderlich sind reagieren auf an sie gesendete Botschaften durch gewisse Aktionen Klasse Gesamtheit von Objekten mit denselben Attributen, die dieselben Botschaften verstehen und auf dieselbe Weise darauf reagieren, unterscheiden sich in den Werten ihrer Attribute Objekte sind Exemplare (Instanzen) einer Klasse Kapselung Interna von Objekten sind nach außen unsichtbar und können von außen nicht manipuliert werden 10

Grundelemente objektorientierter Sprachen (2) Methode bestimmt das Verhalten eines Objektes auf eine Botschaft Datenelemente (Instanz-Variablen) Variablen für die Werte der Attribute der Objekte Vererbung Weitergabe von Merkmalen und Fähigkeiten (Datenelementen und Methoden), wenn neue Klassen aus vorhandenen abgeleitet werden hierarchisches Klassensystem Polymorphismus verschiedene Reaktionen von Instanzen verschiedener Unterklassen auf eine gemeinsam verstandene Botschaft Überschreiben von Methoden 11

Beispiel: Signatur: Rumpf: Methoden void moveto (int newx, int newy){ x = newx; y = newy; } void moveto (int newx, int newy) Ergebnistyp / Rückgabetyp Identifier Parameterliste in runden Klammern: kein Semikolon Anweisungsblock in geschweiften Klammern enthält die Implementierung der Methode 12

Ergebnistypen/Parameter von Methoden Der Ergebnistyp einer Methode ist entweder der Datentyp der Variable (oder des Literals), deren (dessen) Wert von der Methode mittels return Variable ; an ihren Aufrufer zurückgegeben wird oder void (d.h. es wird kein Ergebnis zurückgegeben). Die Parameterliste ist (syntaktisch) eine durch Komma getrennte Folge von Variablendefinitionen, die als Liste der formalen Parameter bezeichnet wird. Die formalen Parameter sind Methodenvariablen, die beim Methodenaufruf durch die aktuellen Parameter initialisiert werden. 13

Konstruktoren Konstruktoren sind Methoden ohne Ergebnistyp, deren Name mit dem Klassennamen übereinstimmt. Point(int newx, int newy) { // Anweisungen } Der implizite Konstruktor steht in einer Klasse dann und nur dann zur Verfügung, wenn keine Konstruktoren explizit definiert sind. Er hat eine leere Parameterliste. Point() { // Anweisungen } 14

Standardinitialisierung von Datenelementen Alle Datenelemente, die nicht durch die Parameter des Konstruktors initialisiert werden, erhalten standardmäßige Initialwerte wie folgt: byte, short, int 0 long 0L float 0.0f double 0.0d char \u0000 boolean false Verweistypen null Methodenvariablen hingegen müssen immer per Anweisung initialisiert werden! 15

Überladen von Konstruktoren und Methoden Vereinbarung mehrerer Konstruktoren/Methoden mit demselben Methodennamen, aber verschiedenen Parameterlisten void moveto(int newx, int newy) void moveto(int newx) In jeder Klasse darf es keine zwei Konstruktoren/Methoden mit identischem Bezeichner und identischer Parameterliste geben. Beim Methodenaufruf wird jene Methode angesprochen, deren Liste formaler Parameter zu der Liste der aktuellen Parameter im Methodenaufruf passt. Mit einer anderen Parameterliste darf auch ein anderer Ergebnistyp vereinbart werden. 16

einfache Datentypen boolean byte, short, int, long float, double char Datentypen Referenz-/Verweisdatentypen String Point Integer... Wrapper-Klassen: Boolean Byte, Short, Integer, Long Float, Double Character haben KEINE Wrapper-Klassen 17

einfache Datentypen Referenz-/Verweisdatentypen int num1, num2; boolean b1, b2; num1 = -12; num2 = 4; b1 = true; b2 = false; num1 num2 b1-12 4 true Variablendefinition Point p1, p2; String str1, str2; Variableninitialisierung p1 = null; p2 = new Point(); str1 = new String("Hallo!"); str2 = "Hallo?"; im Hauptspeicher: p1 p2 str1 null x y 0 0 Hallo! 18

p1 = new Point(); p1 0 0 p2.moveto(2,3); p2 2 3 p2 = p1; p1 p2 0 0 2 3 p1.moveto(4,5); p1 p2 4 5 num2 = num1; num1-12 num2-12 num1 = 99; num1 99 num2-12 19

Schlüsselwörter zur Zugriffsmodifikation Datenelemente/Methoden/Konstruktoren mit dem Modifier public sind für alle Klassen sichtbar; private sind nur für die Klasse sichtbar, in der sie vereinbart sind; ohne Modifier sind für Klassen aus demselben Paket (Verzeichnis) sichtbar Der Modifier ist das erste Schlüsselwort in der Definition/ Signatur. Klassen dürfen auch public sein. (public class...) Diese Schlüsselwörter dürfen in der Definition von Methodenvariablen nicht auftreten! 20

Klassen, Applikationen und die main-methode Eine Java-Applikation ist eine Klasse, in der die Methode main definiert ist: public static void main(string[] args) {... } Es können weitere Klassen benutzt werden. genau eine main-methode pro Applikationsklasse Hier startet das Programm. 21

Bezeichner und Namenskonventionen Unterscheidung von Groß- und Kleinschreibung Bezeichner müssen mit einem Buchstaben, oder $ beginnen. sprechende Bezeichner (Ausnahme: Schleifenzähler u.ä.) Grundsätze für Bezeichner: einfache Datentypen vollständig klein int Referenzdatentypen/ große Anfangsbuchstaben String, Klassen jedes Teilwortes LayoutManager Variablen und große Anfangsbuchstaben str Methoden außer beim ersten Teilwort readline Konstanten vollständig groß PI 22