1 / 42

Javakurs FSS 2012 Lehrstuhl Stuckenschmidt

Javakurs FSS 2012 Lehrstuhl Stuckenschmidt. Tag 2 – Arrays, Methoden und Rekursion. Arrays. Arrays sind Folgen gleichartiger Variablen: Mathematisch: x 0 , x 1 , x 2 , ..., x n Java: x[0], x[1], x[2], ..., x[n ] Arrays haben eine feste Länge. Deklarieren / Initialisieren.

leroy
Download Presentation

Javakurs FSS 2012 Lehrstuhl Stuckenschmidt

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 2 – Arrays, Methoden und Rekursion

  2. Arrays • Arrays sind Folgen gleichartiger Variablen: • Mathematisch: x0, x1, x2, ..., xn • Java: x[0], x[1], x[2], ..., x[n] • Arrays haben eine feste Länge

  3. Deklarieren / Initialisieren • Deklarieren • Bekannt machen (z.B. einer Variable) • Initialisieren • Zuweisung eines Wertes

  4. Deklarieren eines Arrays • Deklarieren • Bekannt machen (z.B. einer Variable) • zahlen ist eine Folge von ganzen Zahlen • wort ist eine Folge von Zeichen

  5. Initialisieren eines Arrays • Initialisieren mit new • Ausführliche Schreibweise: • Kompakte Schreibweise: Array besteht aus Default Werten Initialisierung über die Länge

  6. Initialisieren eines Arrays • Zuweisen von eigenen Werten • Ähnlich wie bei primitiven Datentypen • Jedes Feld muss separat betrachtet werden

  7. Initialisieren eines Arrays • Geht das nicht schneller? • Ausführliche Schreibweise • Kompakte Schreibweise Keine Angabe der Länge!

  8. Initialisieren eines Arrays • Nicht schnell genug? • Kompakte Schreibweise Vorsicht: Ausführliche Schreibweise existiert nicht!

  9. Länge eines Arrays • Jeder Array hat eine Variable length • Entspricht der Länge des Arrays • int und final • Auslesen der Länge: • Konsolenausgabe: Das letzte Feld eines Arrays ist length-1!!

  10. Aufrufen von Elementen • Zugriff auf die Elemente über den Index • Konsolenausgabe:

  11. Aufrufen von Elementen • Zugriff auf die Elemente über den Index • Konsolenausgabe:

  12. Arrays und for-Schleifen • Perfekt zum Durchlaufen von Arrays • Konsolenausgabe:

  13. Arrays und for-Schleifen • Berechnung der Summe • Konsolenausgabe:

  14. Arrays und for-Schleifen • Erweiterte for-Schleife • Konsolenausgabe:

  15. Arrays und for-Schleifen • Erweiterte for-Schleife • Kurze Schreibweise • Entspricht:

  16. Arrays und for-Schleifen • Typische Suche in einem Array • Konsolenausgabe:

  17. Mehrdimensionale Arrays • Arrays von Arrays • Erste Dimension stellen die Zeilen dar • Zweite Dimension stellen die Spalten dar 2. Array 1. Array 3. Array

  18. Mehrdimensionale Arrays • Nichtrechteckige Arrays • Jede Zeile kann eine eigene Größe haben!

  19. Deklarieren und Initialisieren • Deklarieren • Äquivalent wie beim eindimensionalen Array • Keine Unterschied zwischen rechteckigen und nichtrechteckigen Arrays

  20. Initialisieren eines Arrays • Initialisieren mit new • Rechteckige Arrays: • Nichtrechteckige Arrays

  21. Initialisieren eines Arrays • Zuweisen von eigenen Werten • Ähnlich wie bei eindimensionalen Array • Jedes Feld muss separat betrachtet werden

  22. Initialisieren eines Arrays • Geht das nicht schneller? • Mengenklammern trennen Dimensionen

  23. Hallo Welt

  24. String in Array • toCharArray() • Wandelt einen String in einen Array um

  25. Array Exceptions • Array Index Out Of BoundsException • Index im Array nicht vorhanden • Null Pointer Exception • 2te Dimension noch nicht initialisiert

  26. Methoden • Funktionen einer Klasse/Objektes • Aber warum Methoden? • Zerlegung komplexer Programme in kleine Teile • Wiederkehrende „Programmteile“ schon verfügbar

  27. Aufbau von Methoden • Methoden bestehen aus: • Methodenkopf • Methodenrumpf

  28. Aufbau von Methoden • Methodenkopf • Sichtbarkeit • Methodentyp (Rückgabetyp) • Methodenname • Methodenparameter Parameter der Methode Name der Methode Beschreibt den Typ einer Methode

  29. Aufbau von Methoden • Methodenkopf • Sichtbarkeit • Methodentyp (Rückgabetyp) • Methodenname • Methodenparameter Parameter der Methode Name der Methode Beschreibt den Typ einer Methode

  30. Aufbau von Methoden • Methodenrumpf • Öffnenden Klammer • Folge von Anweisungen • return (optional bei void) • Schließende Klammer

  31. Return • return • Ein Rückgabewert pro Methode • Beendet Methode (vorzeitig)

  32. Methodentypen • void • Verwendung für Methoden ohne Rückgabewerte • Bzw für Methoden die keinen Wert berechnen • return optional ohne Wert

  33. Methodentypen • Datentypen • Verwendung für Methoden mit Rückgabewerte • Benötigt return • Rückgabewert muss der selbe Datentyp sein • int,char, double... aber auch Objekte

  34. Methodenparameter • Parametrisierte Funktion • Übergabe von Werten an eine Methode • Methode kann diese Werte verwenden • Generische Methoden möglich

  35. Methodenparameter • Wertübergabe • Übergabe von Werten an Methode bei Aufruf • Bei gleichem Methodennamen wird mit Parameter zwischen den einzelnen Methoden differenziert • Konsolenausgabe:

  36. Rekursion • „Zurücklaufen“ • Eine Funktion durch sich selbst zu definieren • Problem Binärzahl ist spiegelverkehrt!

  37. Rekursion • „Zurücklaufen“ • Eine Funktion durch sich selbst zu definieren • Problem Binärzahl ist spiegelverkehrt!

  38. Rekursion Wie funktioniert Rekursion? * * * * * * * * * 4 4 4 4 4 * * * 3 3 3 3 * * 2 2 2 fakul(4) = 1 1 fakul(3) fakul(2) fakul(1) fakul(0) 1

  39. Wie funktioniert Rekursion? Rekursion * * * * * * * * * 4 4 4 4 4 * * * 3 3 3 3 * * 2 2 2 24 fakul(4) = 1 1 6 2 1 1

  40. Wechselseitige Rekursion • Zwei oder mehr Funktionen • Wechselseitigen Bezug aufeinander • Problem Binärzahl ist spiegelverkehrt!

  41. Endlose Rekursion • Terminiert nicht (Ähnlich wie bei Schleifen)

  42. Fragen?

More Related