Programmiervorkurs WS 2014/15 Methoden

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Einführung in die Programmierung Ausführbare Klassen
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
IF-ELSE-IF-Ketten Weiter mit PP..
Assoziationen (Beziehungen) 1 : n. Zu einem Auto gibt es mehrere Fahrer (2) und zu diesen 2 Fahrern gibt es genau dieses Auto.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Objektorientierte Programmierung JDK-Klassenbibliothek
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Einführung in Java1 Einführung in JAVA.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
Verzweigung.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Rekursive Funktionen (Fakultät)
Applets Java für’s Web.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
2.4 Rekursion Klassifikation und Beispiele
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Objektorientiertes Konstruieren
Die Klasse String und ihre Methoden
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Learning By Doing Übungen GPanel Quadratfenster mit pixelunabhängigen Windowkoordinaten (doubles) Zweckmässige Standardwerte (defaults) 01 x 0 1 y // WbzEx5.java.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Natürliches Programmieren
Selection-Sort Insertion-Sort Bubble-Sort.
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java Programme nur ein bisschen objektorientiert.
Vererbung.
JAVA lernen: Methoden.
Mit der Turtle Java Programmieren
Cäsar-Verschlüsselung
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Grundkurs Informatik mit Java
Schleifen mit der Turtle
Mit Java die Turtle steuern
Cäsar-Verschlüsselung
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
 Präsentation transkript:

Programmiervorkurs WS 2014/15 Methoden Termin 5

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //Berechne die Fakultaet f von n: long f = 1; for (int i = 1; i <= n; i++) f *= i; System.out.println( "Die Fakultaet von " + n + " ist " + f); }

Fakultät als Methode Idee: Kapselung der Fakultätsberechnung als Programmeinheit, die einfach wiederverwendet werden kann.

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: int n = liesGanzzahl(); //Berechne die Fakultaet f von n: long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); }

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: int n = liesGanzzahl(); //Berechne die Fakultaet f von n: long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } Diese Methoden sind dem Compiler noch nicht bekannt.

Fakultät als Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); }

Fakultät als Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() {

Fakultät als Methode Rückgabewert (hier: eine Ganzzahl) public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { Rückgabewert (hier: eine Ganzzahl)

Fakultät als Methode Name der Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { Name der Methode (Konvention: Beginn mit Kleinbuchstabe)

Fakultät als Methode jede Methode ist in einer Klasse definiert public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { jede Methode ist in einer Klasse definiert

Fakultät als Methode innerhalb der Klasse durch {} abgegrenzt public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { innerhalb der Klasse durch {} abgegrenzt

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { Scanner sc = new Scanner(System.in); int i = sc.nextInt();

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); return i;

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); } //Methode zur Eingabe einer Ganzzahl public static int getGanzzahl() { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); return i; Variable i ist nur innerhalb der Methode getGanzzahl bekannt! Mit return i wird Wert zurückgegeben.

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Berechnung der Fakultaet einer Ganzzahl public static long fakultaet(int arg) {

Fakultät als Methode Methode nimmt eine Zahl vom Typ int entgegen. import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Berechnung der Fakultaet einer Ganzzahl public static long fakultaet(int arg) { Methode nimmt eine Zahl vom Typ int entgegen.

Fakultät als Methode Methode nimmt eine Zahl vom Typ int entgegen. import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Berechnung der Fakultaet einer Ganzzahl public static long fakultaet(int arg) { Methode nimmt eine Zahl vom Typ int entgegen. Methode gibt eine Zahl vom Typ long zurück.

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Berechnung der Fakultaet einer Ganzzahl public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck

Fakultät als Methode 1. Aufruf der Methode mit Parameterübergabe import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); } public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck 1. Aufruf der Methode mit Parameterübergabe

Fakultät als Methode 1. Aufruf der Methode mit Parameterübergabe import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); } public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck 1. Aufruf der Methode mit Parameterübergabe 2. Methode wird ausgeführt

Fakultät als Methode 1. Aufruf der Methode mit Parameterübergabe import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); } public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck 1. Aufruf der Methode mit Parameterübergabe 3. Ergebnis wird zurückgegeben 2. Methode wird ausgeführt

Fakultät als Methode public static long fakultaet(int arg) { for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck System.out.println("Keiner hoert auf mich :-("); }

Fakultät als Methode "Unresolved compilation problem: public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck System.out.println("Keiner hoert auf mich :-("); } "Unresolved compilation problem: Unreachable code"

Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println("Die Fakultaet von " + n + " ist " + f); } public static int liesGanzzahl() { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); return i; public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak;

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]);

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); kann auch Feld oder Klasse sein Rückgabewert void: Es wird nichts zurückgegeben.

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); Wert 0 = 3 Wert 1 = 1 Wert 2 = 4 Wert 3 = 2 Wert 4 = 1

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2;

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; Wert 0 = 6 Wert 1 = 2 Wert 2 = 8 Wert 3 = 4 Wert 4 = 2

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; 3 1 i 4 2 1

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; 3 1 i 4 2 1

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; 3 1 i 4 werte 2 1

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; 6 2 i 8 werte 4 2

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; 6 2 i 8 4 2

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; 6 2 i 8 4 2

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; 6 2 i 8 4 2

Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } 6 2 i 8 4 2 Felder und Objekte werden per Referenz an Methoden übergeben.

Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); }

Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); } Die Methode main gibt nichts zurueck

Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); } Die Methode main gibt nichts zurueck Die Methode main nimmt ein Feld mit Zeichenketten entgegen (vom System, welches das Programm aufruft)

Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); } Die Methode main gibt nichts zurueck Die Methode main nimmt ein Feld mit Zeichenketten entgegen (vom System, welches das Programm aufruft) Was steht da drin?

Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); }

Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); }

Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); }

Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); } LETZTE FOLIE VOR AUFGABEN

Aufgabe Erstellt eine Klasse Flaechenberechnung mit einer Methode public static void main(String[] args). In dieser Methode soll der Nutzer zur Eingabe eines Polygons aufgefordert werden. Ein Objekt der Klasse Polygon hat als einziges Attribut ein Feld punkte, welches Objekte der Klasse Punkt enthält (die Ecken des Polygons). Ein Punkt hat die Attribute x und y (die Koordinaten, beide Typ double). (Es sind also 2 Klassen zu erstellen, auf die x-Koordinate eines Punktes könnt ihr so zugreifen: INSTANZNAME.punkte[i].x) Anschließend soll eine Methode public static double flaeche(Polygon p) aufgerufen werden. Diese Methode soll zu der Klasse Flaechenberechnung gehören und den Flächeninhalt des Polygons p berechnen. Die Methode main soll diesen Flächeninhalt ausgeben.

Aufgabe y x Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

Aufgabe y + x Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

Aufgabe y + x Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

Aufgabe y - x Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

Aufgabe y - x Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

Aufgabe y - x Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)