Objektorientierte Programmierung
|
|
|
- Dagmar Maier
- vor 9 Jahren
- Abrufe
Transkript
1 Stefan Brass: OOP (Java), 15. Überladene Methoden 1/22 Objektorientierte Programmierung Kapitel 15: Überladene Methoden Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 brass/oop13/
2 Stefan Brass: OOP (Java), 15. Überladene Methoden 2/22 Inhalt 1 Einführung, Motivation 2 Beispiele 3 Überladen vs. Überschreiben
3 Stefan Brass: OOP (Java), 15. Überladene Methoden 3/22 Einführung, Motivation (1) Es kann mehrere Methoden (Funktionen, Prozeduren) mit gleichem Namen geben, die sich in der Parameterliste (Anzahl oder Typen der Argumente) unterscheiden. Der Spezialfall, dass in mehreren Klassen Funktionen (Methoden) gleichen Namens definiert sind, wurde oben schon betrachtet: Durch den Datentyp (Klasse) des Objektes, auf das die Methode angewendet wird, kann der Compiler entscheiden, welche Funktion er aufrufen soll. Dieses Konzept funktioniert auch allgemeiner. Diese Methoden nichts mit einander zu tun: Der Programmierer muss für jede Methode eine eigene Implementierung (Methodenrumpf) schreiben. Man kann es sich so vorstellen, dass der interne Name einer Methode, den der Compiler verwendet, auch die Typen der Argumente enthält.
4 Stefan Brass: OOP (Java), 15. Überladene Methoden 4/22 Einführung, Motivation (2) Zweck dieses Sprachelementes ist es, semantisch ähnlichen Aktionen auf unterschiedlichen Datentypen den gleichen Namen geben zu können. Das ist aber nur Konvention/guter Stil. Theoretisch könnten die Methoden ganz unterschiedliche Dinge tun. Überladen ist bereits bekannt von Bibliotheksfunktionen wie println: Es gibt viele Methoden mit diesem Namen, z.b. für die Typen int, double, char, String, boolean. Es gibt insgesamt 9 Methoden, die print heißen. [ Sonst musste man Namen wie print_int, print_str etc. verwenden, oder die Typsicherheit aufgeben. Z.B. printf in C: Compiler kann Typkorrektheit nicht (immer) prüfen.
5 Stefan Brass: OOP (Java), 15. Überladene Methoden 5/22 Einführung, Motivation (3) Überladene Operatoren gibt es in Programmiersprachen schon länger: Die Addition + ist für ganze Zahlen und für Gleitkomma-Zahlen durch völlig unterschiedliche Maschinenbefehle implementiert. Früher hatten viele CPUs (z.b. 8086) keine Gleitkomma-Operationen eingebaut. Diese Operationen wurden dann durch Aufruf einer Bibliotheksfunktion ausgeführt. Zur Effizienzsteigerung konnte man einen mathematischen Coprozessor (z.b. 8087) nachrüsten. Bei der Division ist noch offensichtlicher, dass sie für ganze Zahlen und Gleitkommazahlen unterschiedlich funktioniert. Auch die in Java eingebauten Operatoren sind überladen, z.b. + für Strings, für int-werte, etc. In Sprachen wie Java geht das auch für eigene Methoden. In C++ kann man sogar die Operatoren wie + für eigene Datentypen überladen, das geht in Java nicht.
6 Stefan Brass: OOP (Java), 15. Überladene Methoden 6/22 Einführung, Motivation (4) Most often, it is a good idea to give different functions different names, but when some functions conceptually perform the same task on objects of different types, it can be more convenient to give them the same name. Using the same name for operations on different types is called overloading. Beide Zitate aus: [Stroustrup, 2000, Seite 149]. Eine wichtige Anwendung von überladenen Methoden in Java sind auch Argumente, die fast immer einen bestimmten Wert haben: Man kann eine Version der Methode definieren ohne dieses Argument, die den normalen Wert automatisch einsetzt. In C++ kann man Default-Werte für Argumente festlegen. Java hat das nicht, aber mit Überladen erzielt man den gleichen Effekt.
7 Stefan Brass: OOP (Java), 15. Überladene Methoden 7/22 Syntax: Mehrere Methodendeklarationen Man kann in Java also mehrere Methoden/Funktionen innerhalb einer Klasse definieren, die sich nur in Anzahl oder Typen der Parameter unterscheiden. Der Compiler kennt beim Aufruf den exakten (statischen) Typ des Argumentes, kann also eine der Versionen auswählen. Es dürfen nur nicht exakt die gleichen Parameter-Typen sein, sonst bekommt man eine Fehlermeldung wie f(int) is already defined in TestClass. Man kann auch nicht eine statische Methode und eine normale Methode mit gleichem Namen und gleichen Argument-Typen in einer Klasse definieren. Es reicht nicht, dass sich die beiden Methoden im Rückgabe-Typ (Ergebnis-Typ) unterscheiden. Der Rückgabe-Typ spielt bei der Auswahl keine Rolle. Der Aufrufer muss den Rückgabe-Wert nicht unbedingt verwenden, diese Information könnte also fehlen.
8 Stefan Brass: OOP (Java), 15. Überladene Methoden 8/22 Inhalt 1 Einführung, Motivation 2 Beispiele 3 Überladen vs. Überschreiben
9 Stefan Brass: OOP (Java), 15. Überladene Methoden 9/22 Beispiel: Speziellster Typ (1) (1) class TestOverload1 { (2) (3) static void output(int i) { (4) System.out.println("int: " + i); (5) } (6) (7) static void output(double x) { (8) System.out.println("double: " + x); (9) } (10) (11) public static void main(string[] args) { (12) output(100); // int: 100 (13) output(1.0); // double: 1.0 (14) } (15) }
10 Stefan Brass: OOP (Java), 15. Überladene Methoden 10/22 Beispiel: Speziellster Typ (2) Im obigen Beispiel gibt es zwei (statische) Methoden mit Namen output, eine für int-werte, eine für double-werte. Wenn der Typ des Arguments ein int bzw. ein double-wert ist, wird die jeweils passende Methode aufgerufen. Interessanter wird die Situation, wenn man die Methode mit einem Argument aufruft, das keinen von beiden Typen hat, aber darin umgewandelt werden kann: byte short int long float double char widening primitive conversions
11 Stefan Brass: OOP (Java), 15. Überladene Methoden 11/22 Beispiel: Speziellster Typ (3) Bei der Bindung eines aktuellen Parameters (Argument-Wert) an einen formalen Parameter (Variable) werden die gleichen Typ-Anpassungen durchgeführt wie bei Zuweisungen. Ausnahme: Kleine Konstanten (z.b. 1) werden nicht automatisch in kleine ganzzahlige Typen (z.b. byte) umgewandelt. Für primitive Typen werden also nur die im Diagramm gezeigten Umwandlungen in größere Typen durchgeführt. Wenn man die Methode output mit einem char aufruft, output( a ); erhält man die Ausgabe int: 97. Das Zeichen a hat in ASCII und Unicode den Code 97. Es wurde vom Typ char automatisch in der Typ int umgewandelt. Das ist interessant, weil auch eine Umwandlung nach double (97.0) möglich gewesen wäre.
12 Stefan Brass: OOP (Java), 15. Überladene Methoden 12/22 Beispiel: Speziellster Typ (4) Etwas vereinfacht wird unter den aufrufbaren Kandidaten der Spezifischste gewählt, wobei eine Methode m 1 spezifischer als m 2 ist, wenn jeder Aufruf von m 1 auch für m 2 gültig wäre. So ist z.b. output(int) spezifischer als output(double): Jeder Wert, der sich in ein int umwandeln läßt, kann auch weiter in double umgewandelt werden. Bei einem Aufruf mit long, float oder double-werten ist output(int) aber kein Kandidat, daher wird in diesen Fällen output(double) gewählt. Die Regel gilt auch für Subklassen: Ist Unter eine Subklasse von Ober, so ist m(unter) spezifischer als m(ober).
13 Stefan Brass: OOP (Java), 15. Überladene Methoden 13/22 Beispiel: Mehrdeutigkeit (1) (1) class TestOverload2 { (2) (3) static void output(int i, double x) { (4) System.out.println("V1: "+i+" "+x); (5) } (6) (7) static void output(double x, int i) { (8) System.out.println("V2: "+i+" "+x); (9) } (10) (11) public static void main(string[] args) { (12) output(1, 2); //? (Fehler) (13) } (14) }
14 Stefan Brass: OOP (Java), 15. Überladene Methoden 14/22 Beispiel: Mehrdeutigkeit (2) Im Beispiel könnten beide Version von output angewendet werden: Bei der ersten Version passt das erste Argument genau, das zweite muss von int nach double umgewandelt werden. Bei der zweiten Version ist es umgekehrt. Es gibt daher keine eindeutige Entscheidung, und man erhält folgende Fehlermeldung: TestOverload2.java:12: reference to output is ambiguous, both method output(int,double) in TestOverload2 and method output(double,int) in TestOverload2 match output(1, 2); ˆ
15 (1) class TestOverload3 { (2) (3) static void output(int i, boolean hex) { (4) if(hex) (5) System.out.printf("%x\n", i); (6) else (7) System.out.printf("%d\n", i); (8) } (9) (10) static void output(int i) { (11) output(i, false); (12) } (13) (14) public static void main(string[] args) { (15) output(32); // dezimal (16) } (17) } Stefan Brass: OOP (Java), 15. Überladene Methoden 15/22 Beispiel: Optionales Argument (1)
16 Stefan Brass: OOP (Java), 15. Überladene Methoden 16/22 Beispiel: Optionales Argument (2) Im Beispiel hat die Methode output ein zweites Argument, mit dem man festlegen kann, ob die Zahl in Dezimal- oder Hexadezimal-Notation (Basis 16) ausgegeben werden soll. Fast immer will man aber die normale Dezimal-Notation. Deswegen wurde eine zweite Version von output definiert mit nur einem Argument. Dies dient nur der Bequemlichkeit, intern wird die andere Version aufgerufen, und der Default-Wert false für das zweite Argument übergeben. Diese Technik kann auch verwendet werden, wenn ein zusätzliches Argument zu einer Methode nachgerüstet werden soll, aber die Methode bereits verwendet wird.
17 Stefan Brass: OOP (Java), 15. Überladene Methoden 17/22 Inhalt 1 Einführung, Motivation 2 Beispiele 3 Überladen vs. Überschreiben
18 (1) class Ober { } (2) class Unter extends Ober { } (3) (4) class TestOverload3 { (5) static void output(ober o) { (6) System.out.println("Ober!"); (7) } (8) (9) static void output(unter u) { (10) System.out.println("Unter!"); (11) } (12) (13) public static void main(string[] args) { (14) Ober x = new Unter(); (15) output(x); // Ober! (16) } (17) } Stefan Brass: OOP (Java), 15. Überladene Methoden 18/22 Statischer vs. dynamischer Typ (1)
19 Stefan Brass: OOP (Java), 15. Überladene Methoden 19/22 Statischer vs. dynamischer Typ (2) Das obige Programm druckt Ober! aus. Der Compiler wählt eine Version der überladenen Methode basierend auf dem statischen Typ des Argumentes. Im Beispiel wird ja tatsächlich ein Unter -Objekt übergeben (dynamischer Typ), aber die Referenz steht in einer Variablen vom Typ Ober (statischer Typ). Dies ist ein wesentlicher Unterschied zum Überschreiben: Dort fällt die Entscheidung erst zur Laufzeit, und es entscheidet der dynamische Typ. In dieser Hinsicht wird das implizite 0-te Argument (this-objekt) anders behandelt als die anderen Argumente.
20 (1) class Ober { (2) void output() { (3) System.out.println("Ober!"); (4) } (5) } (6) class Unter extends Ober { (7) void output() { (8) System.out.println("Unter!"); (9) } (10) } (11) (12) class TestOverride { // Ueberschreiben! (13) public static void main(string[] args) { (14) Ober x = new Unter(); (15) x.output(); // Unter! (16) } (17) } Stefan Brass: OOP (Java), 15. Überladene Methoden 20/22 Statischer vs. dynamischer Typ (3)
21 (1) class Ober { (2) void output(int i) { (3) System.out.println("Ober: " + i); (4) } (5) } (6) class Unter extends Ober { (7) void output(double x) { (8) System.out.println("Unter: " + x); (9) } (10) } (11) (12) class TestOverload4 { (13) public static void main(string[] args) { (14) Unter u = new Unter(); (15) u.output(1); // Ober: 1 (16) } (17) } Stefan Brass: OOP (Java), 15. Überladene Methoden 21/22 Überschreiben vs. Überladen (1)
22 Stefan Brass: OOP (Java), 15. Überladene Methoden 22/22 Überschreiben vs. Überladen (2) Im Beispiel wird nicht überschrieben, sondern überladen. Die Methode in der Unterklasse hat zwar den gleichen Namen wie die in der Oberklasse, aber einen anderen Argument-Typ. Hätte man die verwendet, so hätte man folgende Fehlermeldung bekommen: TestOverload4.java:8: method does not override or implement a method from a ˆ Für Objekte der Unterklasse sind also beide Varianten aufrufbar. Es wird dann die mit dem spzifischeren Typ gewählt, das ist die Version aus der Oberklasse.
Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
Methoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
Einführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java
Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
Programmieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
Java Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
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
Polymorphie. 15. Java Objektorientierung II
432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
Polymorphie. 15. Java Objektorientierung II
446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
Java Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
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
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Die einfachsten Anweisungen
2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke
Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke 1 Links Stellenwertsysteme mit Links zu Zahlensysteme: http://de.wikipedia.org/wiki/stellenwertsystem ASCII-Code: http://de.wikipedia.org/wiki/ascii
Einführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Vorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders
Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1
Vorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
Scala. Funktionale (Zustandslose) Objekte
Scala Funktionale (Zustandslose) Objekte Agenda Was sind Funktionale Objekte? veränderliche Objekte vs. unveränderliche Objekte Klassen Parameter Konstruktoren Private Member Methoden und Operatoren Overriding
Objektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
Praxis der Programmierung
Template-Funktionen und -Klassen Einführung in Java Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Template-Funktionen 2 Minimumfunktion und offene Typen Aufruf
Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme
Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung
Erste Java-Programme (Java Wiederholung & Vererbung)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: [email protected] Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
5.3 Auswertung von Ausdrücken
5.3 Auswertung von Ausdrücken Funktionen in Java bekommen Parameter/Argumente als Input, und liefern als Output den Wert eines vorbestimmten Typs. Zum Beispiel könnte man eine Funktion i n t min ( i n
Erste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: [email protected] Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
Universität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting [email protected]
Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
Prozeduren vs. Funktionen
Prozeduren vs. Funktionen Mit der Formalisierung wird auch der Unterschied zwischen Prozeduren und Funktionen noch einmal klar. Der Aufruf beider Varianten bewirkt zunächst das Gleiche: die Eingabevariablen
Vorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
2 Programmieren in Java I noch ohne Nachbearbeitung
1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe
Repetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case
3.2 Datentypen und Methoden
Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte
Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3
Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................
Vorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
Th. Letschert OOP 2 1. Vererbung I : Subklasse und Subtyp
Th. Letschert OOP 2 1. Vererbung I : Subklasse und Subtyp Th. Letschert, FH Giessen-Friedberg Th. Letschert OOP 2 Vererbung (Inhertitance) I Wiederverwendung von Klassendefinitionen Erweiterung von Objekt-Konstruktionen
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15
Variablen CoMa-Übung VIII TU Berlin 4.12.2013 CoMa-Übung VIII (TU Berlin) Variablen 4.12.2013 1 / 15 Themen der Übung 1 Typanpassungen 2 Operatoren 3 Variablen-Gültigkeit CoMa-Übung VIII (TU Berlin) Variablen
Grundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
Objektorientierte Programmierung. Kapitel 20: Wrapper-Klassen
20. Wrapper-Klassen 1/27 Objektorientierte Programmierung Kapitel 20: Wrapper-Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/
14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
IT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots 7.11.2017 IT I - VO 5 1 Organisatorisches Wissensüberprüfung diese Woche wieder am Rechner Wer die 5. Wissensüberprüfung
14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
8. Ausdrücke, Operatoren (einfache Typen)
8. Ausdrücke, Operatoren (einfache Typen) Typumwandlung Cast-Operator Teil 2 Java-Beispiel: Unicode.java Version: 16. Nov. 2015 Unterschiedliche Typen Typumwandlung: Übersicht Zuweisung x = y; Ausdruck
Angewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
2. Unterprogramme und Methoden
2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf
14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
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
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
Programmierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
Übungen zum Bioinformatik-Tutorium. Blatt 3
Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 3 Termin: Dienstag, 6.11.2018, 11 Uhr 1. Hello World
Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
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
Programmierpraktikum
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 04 (17.11.2016) Stefan Berktold [email protected] PRÄSENZAUFGABEN Heutige Übersicht
Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch
Einführung in die Programmierung
Einführung in die Programmierung Teil 10: Typsicherheit durch generische Typen Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Grundlagen 2. Typvariablen 3.
Objektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
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
Abend 4 Übung : Erweitern von Klassen durch Vererbung
Abend 4 Übung : Erweitern von Klassen durch Vererbung Ziel, Inhalt Wir erweitern die Klassen, die wir zum Zeichnen mit TsuZeichnen verwenden. Dabei wenden wir die Vererbung an um die Klassen zu spezialisieren
Die Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile
Javakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
