Grundelemente objektorientierter Sprachen (1)

Ähnliche Dokumente
Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1)

Praxis der Programmierung

Methoden und Wrapperklassen

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

Einstieg in die Informatik mit Java

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Prozeduren vs. Funktionen

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

7. Objektorientierung. Informatik II für Verkehrsingenieure

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

Javakurs für Anfänger

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

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

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

Implementieren von Klassen

3 Objektorientierte Konzepte in Java

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

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

Prof. W. Henrich Seite 1

Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Java für Bauingenieure

Programmiertechnik Klassenvariablen & Instantiierung

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

Umsetzung einer Klassenkarte in einer Programmiersprache

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

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.

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

Vererbung, Polymorphie

Einstieg in die Informatik mit Java

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

Einstieg in die Informatik mit Java

Java Vererbung. Inhalt

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

Java Datentypen und Variablen

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

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Praxis der Programmierung

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

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

2. Unterprogramme und Methoden

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

Objektorientierte Programmierung und Klassen

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

Grundlagen der Objektorientierten Programmierung - Methoden -

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 17/18

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

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Einstieg in die Informatik mit Java

Einführung in die Programmierung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

C++ - Objektorientierte Programmierung Vererbung

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

Algorithmen und Datenstrukturen

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

Vorkurs Informatik WiSe 16/17

3.2 Datentypen und Methoden

Einstieg in die Informatik mit Java

Begriffe 1 (Wiederholung)

Java-Applikationen (Java-Programme)

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Praxis der Programmierung

7. Übung Informatik II - Objektorientierte Programmierung

Programmieren in Java

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

Klassen mit Instanzmethoden

Einstieg in die Informatik mit Java

Modellierung und Programmierung 1

Einstieg in die Informatik mit Java

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

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

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

Objektorientierte Programmierung Studiengang Medieninformatik

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte

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

Einstieg in die Informatik mit Java

2 Programmieren in Java I noch ohne Nachbearbeitung

Computeranwendung und Programmierung (CuP)

Objektorientierung (OO)

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Übersicht. Vorstellung des OO-Paradigmas

C++ - Objektorientierte Programmierung Klassen und Objekte

Algorithmen und Programmierung II

Javakurs für Anfänger

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Einstieg in die Informatik mit Java

Programmieren in Java

JAVA 06: Gemischte einfache Fragen zu Java

Abschnitt 6: Klassen, Objekte und Methoden in Java

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 repräsentiert einen Namensraum (s. Epr) 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 11

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 12

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

Ergebnistypen/Parameter von Methoden (s. EPr) 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. 14

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

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 Lokale Variablen der Methoden hingegen müssen immer per Anweisung initialisiert werden! 16

Ü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. 17

Arten von Datentypen 18

einfache Datentypen Referenz-/Verweisdatentypen 19

Referenz-/Verweisdatentypen 20

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! 21

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. 22

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 23