Programmierkurs. Manfred Jackel

Ähnliche Dokumente
Java für Anfänger Teil 4: Anweisungen. Programmierkurs Manfred Jackel

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

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

2. Unterprogramme und Methoden

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

Einstieg in die Informatik mit Java

Programmiertechnik Klassenmethoden

3 Objektorientierte Konzepte in Java

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Elementare Konzepte von

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

Präzedenz von Operatoren

Einstieg in die Informatik mit Java

Implementieren von Klassen

Klassenvariablen, Klassenmethoden

Algorithmen und Programmierung II

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Grundlagen der Objektorientierten Programmierung - Methoden -

Programmierung und Angewandte Mathematik

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Java für Anfänger Startup Donnerstag. Programmierkurs Manfred Jackel

Prozeduren vs. Funktionen

Grundlagen der Programmierung

6. Funktionen, Parameterübergabe

Erste Java-Programme (Scopes und Rekursion)

Methoden und Wrapperklassen

Java Einführung Methoden. Kapitel 6

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

Vorlesung Programmieren

JAVA - Methoden - Rekursion

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Vererbung, Polymorphie

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

Grundelemente objektorientierter Sprachen (1)

JAVA - Methoden

Grundelemente objektorientierter Sprachen (1)

Intensivübung zu Algorithmen und Datenstrukturen

5. Java Arrays und Strings

10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

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

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

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

Grundlagen der Programmierung

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

Einstieg in die Informatik mit Java

Intuitive Einführung. Informatik B Objektorientierte Programmierung in Java. Vorlesung 01: Objektorientierte Programmierung (Teil 1)

Algorithmen und Datenstrukturen

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

3 Objektorientierte Konzepte in Java

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

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

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

Einstieg in die Informatik mit Java

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

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

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung

Klassen mit Instanzmethoden

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Javakurs für Anfänger

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

Einstieg in die Informatik mit Java

Tag 8 Repetitorium Informatik (Java)

1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen!

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

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

6. Unterprogramme 6-1

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

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

Einstieg in die Informatik mit Java

Objektorientierte Programmierung Studiengang Medieninformatik

Transkript:

Java für Anfänger Teil 7: Methoden Programmierkurs 06.-10.10.2008 Manfred Jackel 1

Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter] Code kann in Funktionen zusammengefasst werden und über den Namen der Funktion nach Bedarf aufgerufen werden. Weiteres wichtiges Prinzip ist die Parametrisierung: an Funktionen werden beim Aufruf Parameter übergeben, die in die Berechnung eingehen. In der objektorientierten Programmierung g werden Funktionen Methoden genannt. Der Code einer Methode wird in der Methodendeklaration angegeben.

Methodendeklaration MethodDeclaration::= { MethodModifier } ( Type 'void' ) Identifier '(' FormalParameters ')' [ Throws ] ( Block ; '; MethodModifier::= 'public' 'protected' 'private' 'abstract' 'static' 'final' 'synchronized' 'native' 'strictfp' FormalParameters::= [ FormalParameter { ',' FormalParameter } ] FormalParameter::= [ 'final' ] Type Identifier Block::= '{' { BlockStatement } '}'

Methodendeklaration public static void main(string[] args) { MethodDeclaration::= { MethodModifier } ( Type 'void' ) Identifier '(' FormalParameters ')' [ Throws ] ( Block '; MethodModifier::= 'public' 'protected' 'private' 'abstract' 'static' 'final' 'synchronized' 'native' 'strictfp' FormalParameter::= [ 'final' ] Type Identifier

Beispiel Deklaration: public static double avg(int i, int j) { double average; average = (i+j)/2.0; return average; Aufrufbeispiel: System.out.println( Mittel von +i+ und +j+ ist +avg(i;j));

Semantik des Methodenaufruf Beim Aufruf einer Prozedur werden die Werte der Parameter, falls vorhanden) in lokale Variable kopiert (call by value, Werteparameter). Diese lokalen Variablen sind im Block, der zur Prozedur gehört, unter ihren Namen ansprechbar. Speicherplatz für lokale Variablen im Block, falls vereinbart, wird reserviert und ggfs. initialisiert. Die Anweisungen im Block werden ausgeführt. Wenn der Ergebnistyp der Methode nicht void ist, muss die Prozedur über eine return-anweisung verlassen werden, die einen passenden Wert berechnet. Ist der Ergebnistyp void, kann die Prozedur mit return (ohne Wertberechnung) verlassen werden oder mit der letzten Anweisung.

Parameterübergabe primitive Typen public static void swap( int first, int second) { int h = first; first = second; second=h, System.out.println( i und j getauscht ); Aufruf: i=1; j=2; swap(i,j); // Werte von i und j sind unverändert! System.out.println( i= +i+ j= +j); Ausgabe: i und j getauscht i=1 j=2

Parameterübergabe Referenztypen public static void swapa(int[] a) { if (a.length>0) { int h=a[0]; a[0]=a[a.length-1]; [ a[a.length-1]=h, h System.out.println( Position 0 und +a.length-1+ getauscht ); Aufruf: int[] b={1,2}; swapa(b); System.out.println( b[0]= +b[0]+ b[1]= +b[1]); Ausgabe: Position 0 und 1 getauscht b[0]=2 b[1]=1 Aufgabe: schreiben Sie eine Methode public static void reva(int[] a), die die Elemente im Feld a in umgekehrte Reihenfolge bringt.

Beispiel: Vektoraddition double[] v1=new double[3], v2= new double{3], v3; double[] vectoradd(double[] v, double[] w) { double[] y = new double[3]; for (int i; i=0; i<3; i++) y[i]=v[i]+w[i]; return y; Aufruf: f v3 = vectoradd(v1,v2);

Variable Parameterzahl (V5) public static void printargs(string... args) { for (int i = 0; i < args.length; ++i) { System.out.println(args[i]); } Der letzte formale Parameter darf beliebig oft wiederholt werden ( ) Aufruf: printargs(new String[]{"so", "wird", "es", "gemacht"}); oder: printargs("so", "wird", "es", "gemacht");

Signatur einer Methode - Überladen public static int min(int i, int j) { } public static double min(double d1, double d2) { } int min; min = min(3,4); Methoden gleichen Namens sind zulässig, wenn sie sich in Zahl und Typ der Parameter unterscheiden. Signatur = (Methodenname,Parametertyp1,, Parametertypn) Signatur = Tupel aus Methodenname und Typnamen der Parameter (min, int, int)!= (min, double,double) min(1,2) und min(1.0,2.0) kann der Compiler unterscheiden.