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

Ähnliche Dokumente
Methoden und Wrapperklassen

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

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

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally

Einstieg in die Informatik mit Java

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Exceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1

Einstieg in die Informatik mit Java

2. Unterprogramme und Methoden

Repetitorium Informatik (Java)

Grundlagen der OO- Programmierung in C#

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Einführung in Java, Teil 7

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

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

Ein erstes Java-Programm

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

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

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

Programmiertechnik Klassenmethoden

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

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

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

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

JAVA - Methoden

Methoden (fortgeschritten) in C# - 1

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Distributed Computing Group

Programmierpraktikum

3.2 Datentypen und Methoden

Abschnitt 6: Klassen, Objekte und Methoden in Java

AuD-Tafelübung T-B5b

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

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

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

Prof. W. Henrich Seite 1

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1

JAVA - Methoden - Rekursion

Einstieg in die Informatik mit Java

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

Java. CoMa-Übung II TU Berlin. CoMa-Übung II (TU Berlin) Java / 28

Java Einführung Methoden. Kapitel 6

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Klassen und Methoden

Java Datentypen und Variablen

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Die Klasse java.lang.object. Thorsten Treffer

7. Übung Informatik II - Objektorientierte Programmierung

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

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Programmiertechnik Erweiterungen in Java 5

5. Java Arrays und Strings

Kapitel 10 Delegationsvariablen

Wie entwerfe ich ein Programm?

Liste Programmieren Java Überblick

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Institut für Informatik und Angewandte Kognitionswissenschaften

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

Einstieg in die Informatik mit Java

Die einfachsten Anweisungen

Einstieg in die Informatik mit Java

Umsetzung einer Klassenkarte in einer Programmiersprache

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

Grundlagen der Programmierung

Klassenvariablen, Klassenmethoden

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

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

VL5-Methoden: Void-Methoden und Funktionen

Praktische Informatik 1

3 Objektorientierte Konzepte in Java

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Tag 4 Repetitorium Informatik (Java)

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

1 Polymorphie (Vielgestaltigkeit)

Einführung in die Programmierung Blockkurs Java

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Grundlagen der Programmierung

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

Objektorientierung (OO)

Klausur Fachprüfung Wirtschaftsinformatik. Name:

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Java für Bauingenieure

Grundlagen der Informatik 0

1 Klassen und Objekte

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

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

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Java Einführung Methoden in Klassen

II.1.1. Erste Schritte - 1 -

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

Einstieg in die Informatik mit Java

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Anweisungen zur Ablaufsteuerung

Grundlagen von C# - 1

2. Programmierung in C

Transkript:

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 fertig seid! Christians Abgaben in seinem Tutorium Bei Gruppenwechsel: Umtragen mit Tutor im Unix-Pool email mit Daten der veränderten Personen an Madeleine CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 1 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 2 / 31 Methoden Vorteile von Methoden Grundlagen Methoden sind Javas Konzept von Algorithmen. Methoden haben festgelegte Eingaben und Ausgaben, sowie eine Folge von Befehlen, die aus der Eingabe die Ausgabe erzeugen. Methoden gehören in Java immer zu einer Klasse oder einem Objekt. Diese Klasse bzw. dieses Objekt wird dann Eigentümer der Methode genannt. Math.min(int a, int b) Algorithmus, der das Minimum zweier Werte zurückgibt. Eingabe: zwei int-werte. Ausgabe: der Minimum der beiden int-werte. Gehört zu der Klasse Math. Vorteil 1: Übersicht Die Benutzung von Methoden teilt Programme in viele kleine Algorithmen auf. Gibt dem Programm eine Struktur. Kleinere Algorithmen sind leichter verständlich. Vorteil 2: Wiederverwendbarkeit Methoden können vom ganzen Programm verwendet werden Jeder Algorithmus muss nur einmal geschrieben werden Spart Arbeit Macht nachträgliche Änderungen leichter Vermeidet unnötige Code-Wiederholungen. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 3 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 / 31

Deklaration von Methoden Bestandteile einer Methode Methoden bestehen aus zwei Teilen, dem Methodenkopf und dem Methodenrumpf. Der Methodenkopf besteht aus Modifizieren, einem Rückgabetyp, dem Methodennamen, und einer Parameterliste. Der Methodenrumpf besteht aus den Anweisungen der Methode. Signatur einer Methode Unter der Signatur einer Methode versteht man ihren Methodennamen und die Typen ihrer Parameterliste. Modifikatoren, der Rückgabetyp und der Methodenrumpf gehören nicht dazu. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 5 / 31 Bestandteile einer Methode Beispiel 1 Erinnerung: Die Signatur einer Methode besteht aus ihrem Namen und der Liste der Typen ihrer Parameter. Beispiel 1 p u b l i c s t a t i c long sum( long a, long b ) { 2 r e t u r n a + b ; Methodenkopf: Modifizierer: public und static Rückgabetyp: long Methodenname: sum Parameterliste: long a, long b Methodenrumpf: Besteht nur aus der Anweisung return a + b; Die Signatur der Methode ist sum(long,long) der Methodenname ist sum und die Methode hat zwei Parameter, beide vom Typ long. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 6 / 31 Rückgaben in Methoden return Der Befehl return; beendet die Ausführung einer Methode und gibt nichts zurück. Der Befehl return a; beendet die Ausführung einer Methode und gibt a an den Aufrufer zurück. return und der Rückgabetyp Der Befehl return; darf nur in Methoden benutzt werden, deren Rückgabetyp void ist. Der Befehl return a; darf nur in Methoden benutzt werden, deren Rückgabetyp nicht void ist; außerdem muss der Typ von a zu dem Rückgabetyp der Methode passen. Hat eine Methode einen Rückgabetyp, der nicht void ist, muss die Methode mit einem return-befehl enden, der einen passenden Typ zurückgibt. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 7 / 31 Klassenmethoden Methoden in Java können zwei Arten von Eigentümern haben: Klassen und Objekte. Demetsprechend lassen sie sich in zwei Kategorien aufteilen: Klassenmethoden und Objektmethoden. Klassenmethoden Werden durch den Modifizierer static in der Methoden-Deklaration gekennzeichnet (ohne static Objektmethode). Beispiel: public static void (String[] args) Arbeiten nur mit Klassen und brauchen keine Objekte. Werden üblicherweise in der Form Klassenname.Methodenname(Parameterliste) aufgerufen. Objektmethoden hingegen müssen an einem Objekt aufgerufen werden. Wir arbeiten zunächst nur mit Klassenmethoden. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 / 31

Bestandteile einer Methode Beispiel 2 Erinnerung: Die Signatur einer Methode besteht aus ihrem Namen und der Liste der Typen ihrer Parameter. Beispiel 1 C h a r a c t e r f i r s t C h a r ( S t r i n g s t r ) { 2 r e t u r n s t r. charat ( 0 ) ; Methodenkopf: Modifizierer: keiner Rückgabetyp: Character Methodenname: firstchar Parameterliste: String str Methodenrumpf: Besteht nur aus der Anweisung return str.charat(0); Die Signatur der Methode ist firstchar(string) der Methodenname ist firstchar und die Methode hat einen Parameter vom Typ String. Namen und Typen Namenskonvention für Methoden Methodennamen werden mit einem Kleinbuchstaben begonnen. Methodennamen fangen üblicherweise mit einem Verb an. Methoden dürfen nicht wie Schlüsselwörter heißen class, int, double,... sind also tabu. Methode heißt wie Schlüsselwort Fehler beim Kompilieren. Parameter- und Rückgabetypen Typen für Parameter können sein: jeder primitive Datentyp (boolean, byte, char,...), jeder Referenztyp (Character, String,...), Der Rückgabetyp kann sein: jeder für Parameter erlaubte Typ, der spezielle Rückgabetyp void, falls nichts zurückgeben wird. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 9 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 10 / 31 Parameter und Signatur Parameter Wie Variablen in der Form Datentyp parametername deklariert. Signatur Jeder Parameter muss einen Typ haben. Kurzform double a,b ist nicht erlaubt! Mehrere Parameter werden durch, getrennt. Methode mit leerer Parameterliste die Liste besteht nur aus (). Parameter werden wie Variablen benutzt in der Methode. Der Kompiler sucht Methoden anhand ihrer Signatur in den Methoden des Eigentümers. Jede Methode eines Eigentümers muss eine eindeutige Signatur haben! Kompiler-Fehler sonst. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 11 / 31 Bestandteile einer Methode Beispiel 3 Erinnerung: Die Signatur einer Methode besteht aus ihrem Namen und der Liste der Typen ihrer Parameter. Beispiel 1 p u b l i c void h e l l o ( ) { 2 System. out. p r i n t l n ( H e l l o ) ; Methodenkopf: Modifizierer: public Rückgabetyp: void Methodenname: hello Parameterliste: keine Parameter Methodenrumpf: Besteht nur aus der Anweisung System.out.println("Hello"); Die Signatur der Methode ist hello() der Methodenname ist hello und die Methode hat keine Parameter. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 12 / 31

Deklaration von Methoden Zusammenfassung Deklaration von Methoden Eine Methodendeklaration hat in Java folgenden Aufbau: Modifizieren, gefolgt von genau einem Rückgabetyp, dem Methodennamen, einer (möglicherweise leeren) Liste von Parametern, die in runde Klammern ( ) eingeschlossen ist, deren Parameter durch, getrennt sind, und dem Methodenrumpf, der in geschweifte Klammern { } eingeschlossen ist. Diese Bestandteile müssen in genau dieser Reihenfolge erscheinen. Signatur einer Methode Die Signatur einer Methode besteht aus ihrem Namen und der Liste der Typen ihrer Parameter. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 13 / 31 Methodenaufruf Aufruf einer Methode Der Aufruf einer Methode besteht aus 3 Teilen: Dem Eigentümer der Methode, dem Namen der Methode, und Argumenten für die von der Methode erwarten Parametern. Die Syntax für den Aufruf dieser Bestandteile ist: Eigentümer.Methodenname(Parameter1,Parameter2,...) Eigentümer. kann weggelassen werden, wenn die aufgerufene Methode in derselben Klasse ist wie die aufrufende. Argumente Argumente sind konkrete Werte für die Parameter einer Methode. z.b. kann 2 ein Argument für einen int-parameter einer Methode sein. Der Typ eines Arguments muss zum Typ des Parameters passen. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 1 / 31 Methodenaufruf Aufruf einer Methode Der Aufruf einer Methode besteht aus 3 Teilen: Dem Eigentümer der Methode, dem Namen der Methode, und Argumenten für die von der Methode erwarten Parametern. Die Syntax für den Aufruf dieser Bestandteile ist: Eigentümer.Methodenname(Parameter1,Parameter2,...) Beispiel 1 Math.round(double d) 1 double t e m p e r a t u r e = 5. 6 ; 2 long roundedtemperature = Math. round ( t e m p e r a t u r e ) ; Eigentümer: die Klasse Math Methodenname: round Argumente: die double-variable temperature Methodenaufruf Aufruf einer Methode Der Aufruf einer Methode besteht aus 3 Teilen: Dem Eigentümer der Methode, dem Namen der Methode, und Argumenten für die von der Methode erwarten Parametern. Die Syntax für den Aufruf dieser Bestandteile ist: Eigentümer.Methodenname(Parameter1,Parameter2,...) Beispiel 2 Math.max(int a, int b) 1 i n t a = 3 ; 2 i n t maximum = Math. max( a, ) ; Eigentümer: die Klasse Math Methodenname: max Argumente: die int-variable a und die int-konstante CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 15 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 16 / 31

Methodenaufruf Aufruf einer Methode Der Aufruf einer Methode besteht aus 3 Teilen: Dem Eigentümer der Methode, dem Namen der Methode, und Argumenten für die von der Methode erwarten Parametern. Die Syntax für den Aufruf dieser Bestandteile ist: Eigentümer.Methodenname(Parameter1,Parameter2,...) Beispiel 3 Scanner.nextDouble() 1 Scanner s c a n n e r = new Scanner ( System. i n ) ; 2 double t e m p e r a t u r e = s c a n n e r. nextdouble ( ) ; Eigentümer: das Objekt scanner Methodenname: nextdouble Argumente: die Methode erwartet keine Übergabe von Argumenten Was passiert bei der Übergabe von Argumenten an Methoden? 1 p u b l i c s t a t i c void changea ( i n t a ) { 2 a = a + 1 ; 5 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 6 i n t a = 1 ; 7 changea ( a ) ; System. out. p r i n t l n ( a ) ; 9 } Wird ein Variable als Argument an eine Methode übergeben, wird eine Kopie ihres Werts erzeugt und an die Methode übergeben. Methoden verändern also keine Variablen in der aufrufenden Methode. changea hat also keinen Einfluss auf den Wert von a in der -Methode. CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 17 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 1 / 31 9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) {

9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) {

9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 9 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) {

Der Methoden-Stack Stack Der Methoden-Stack Stack Java merkt sich verschachtelte Methoden-Aufrufe, indem es diese Aufrufe auf ein Stack (Stapel) legt Java merkt sich verschachtelte Methoden-Aufrufe, indem es diese Aufrufe auf ein Stack (Stapel) legt CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 20 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 20 / 31 Der Stacktrace Der Stacktrace Tritt ein Fehler auf, gibt Java euch den Stacktrace aus. ist im Wesentlichen der Inhalt des Methodenstacks, zu dem Zeitpunkt, als der Fehler aufgetreten ist. Die zuletzt aufgerufene Methode steht dabei oben. Für die Fehlersuche heißt das: Geht den Stacktrace von oben nach unten durch, bis ihr in der ersten Klasse ankommt, die von euch geschrieben ist. Schaut euch die Zeile an, in der Fehler verursacht wird und behebt die Ursache. Der Stacktrace Der Stacktrace Tritt ein Fehler auf, gibt Java euch den Stacktrace aus. ist im Wesentlichen der Inhalt des Methodenstacks, zu dem Zeitpunkt, als der Fehler aufgetreten ist. Die zuletzt aufgerufene Methode steht dabei oben. Für die Fehlersuche heißt das: Geht den Stacktrace von oben nach unten durch, bis ihr in der ersten Klasse ankommt, die von euch geschrieben ist. Schaut euch die Zeile an, in der Fehler verursacht wird und behebt die Ursache. 1 p u b l i c c l a s s E r r o r { 2 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 3 System. out. p r i n t l n ( H e l l o. charat ( 1) ) ; } 5 } CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 21 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 21 / 31

Der Stacktrace Der Stacktrace ist im Wesentlichen der Inhalt des Methodenstacks, zu dem Zeitpunkt, als der Fehler aufgetreten ist. Die zuletzt aufgerufene Methode steht dabei oben. 1 p u b l i c c l a s s E r r o r { 2 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 3 System. out. p r i n t l n ( H e l l o. charat ( 1) ) ; } 5 } Einige Fallstricke Nicht-statische Methoden aus statischen Aufrufen 1 p u b l i c i n t square ( i n t a ) { 2 r e t u r n m u l t i p l y ( a, a ) ; 5 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 6 System. out. p r i n t l n ( square ( 2 ) ) ; Objektmethode ohne Objekt aus Klassenmethode aufgerufen Fehler! Nicht erreichbarer Code 1 p u b l i c s t a t i c void ( S t r i n g [ ] a r g s ) { 2 r e t u r n ; 3 i n t a = 1 ; } Zeile 3 ist nie erreichbar Fehler! CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 22 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 23 / 31 Einige Fallstricke (2) Fehlendes Return 1 p u b l i c i n t dosomething ( i n t a ) { 2 i f ( a > 0) { 3 r e t u r n 0 ; } e l s e i f ( a <= 0) { 5 r e t u r n 0 ; 6 } Fehler wegen nicht sichergestelltem return Gleiche Signatur 1 p u b l i c s t a t i c long round ( double d ) 2 3 p u b l i c void round ( double d ) Signatur nicht eindeutig (Modifizierer und Rückgabetyp zählen nicht) Überladene Methoden Überladene Methoden Methoden mit gleichem Namen werden überladene Methoden genannt. Für Java okay, solange der Kompiler die Methoden anhand der Parameterliste unterscheiden kann. Es gibt z.b. eine Menge System.out.println()-Methoden für verschiedene Datentypen Kann benutzt werden, um Standardwerte für Parameter festzulegen: 1 p u b l i c s t a t i c double round ( double d, i n t p r e c i s i o n ) { 2... 5 p u b l i c s t a t i c double round ( double d ) { 6 r e t u r n round ( d, 2) ; CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 2 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 25 / 31

Die API Die API Dokumentiert alle Klassen des JDKs und ihre Methoden http://docs.oracle.com/javase/7/docs/api/ Nicht importierte Klassen finden sich unter java.lang Beispiel: Math.round http://docs.oracle.com/javase/7/docs/api/java/lang/ Math.html#round(double) API beschreibt Methoden-Signatur mit Modifizierern Eingabe & Ausgabe der Methode und Sonderfälle CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 26 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 27 / 31 Wrapperklassen Java bietet für jeden primitiven Datentyp eine zugehörige Wrapperklasse an. Diese Wrapperklassen erlauben es ihre primitive Datentypen als String zu formatieren, einen String in ihren primitiven Datentypen zu parsen, primitive Datentypen als Referenzen zu betrachten (später wichtig). Primitiver Datentyp byte short int long float double char boolean Wrapperklasse Byte Short Integer Long Float Double Character Boolean Wrapperklassen (2) Erzeugen von Wrapper-Objekten Mittels new erzeugt immer ein neues Objekt. 1 I n t e g e r i = new I n t e g e r ( 1 ) ; Mittels Wrapperklasse.valueOf erzeugt ein neues Objekt per new 1 I n t e g e r j = I n t e g e r. v a l u e O f ( 1 ) ; Ausnahme: bei Byte, Short, Integer, Long und Werten zwischen -12 und 127 wird auf Objekte aus einem Cache zurückgegriffen Durch implizite Umwandlung aus einem primitiven Typ benutzt Wrapperklasse.valueOf 1 I n t e g e r j = 1 0 ; CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 2 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 29 / 31

Umwandlung von primitiven Typen und Wrapperklassen Boxing und Unboxing Java wandelt automatisch zwischen primitiven Typen und Wrapperklassen um (Autoboxing). Die Umwandlung von primitiven Typen in ein Wrapperklasse nennt man (Boxing). 1 I n t e g e r j = 1 0 ; Die Umwandlung von einer Wrapperklasse in einen primitiven Typen nennt man (Unboxing). 1 i n t k = new I n t e g e r ( 1 0 ) ; Hinweis Der Wert eines Wrapper-Objekts ändert sich sein Leben lang nicht. Fallstricke von Wrapperklassen Fallstricke, Teil I 1 I n t e g e r i = new I n t e g e r ( 1 ) ; 2 I n t e g e r j = new I n t e g e r ( 1 ) ; 3 System. out. p r i n t l n ( i >= j ) ; // t r u e System. out. p r i n t l n ( i <= j ) ; // t r u e 5 System. out. p r i n t l n ( i == j ) ; // f a l s e In Zeile 3 & wird Unboxing benutzt, in Zeile 5 nicht. Fallstricke, Teil II 1 I n t e g e r i = new I n t e g e r ( 1 0 ) ; 2 I n t e g e r j = I n t e g e r. v a l u e O f ( 1 0 ) ; 3 I n t e g e r k = 1 0 ; System. out. p r i n t l n ( i == j ) ; // f a l s e 5 System. out. p r i n t l n ( j == k ) ; // t r u e 6 System. out. p r i n t l n ( i == k ) ; // f a l s e i wird explizit neu erzeugt, j,k nicht (da der Wert in -12..127 liegt) CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 30 / 31 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 07.11.2012 31 / 31