Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Zusammenfassung Vorwoche

Ähnliche Präsentationen


Präsentation zum Thema: "Zusammenfassung Vorwoche"—  Präsentation transkript:

1 Zusammenfassung Vorwoche
Weitere Konstrukte: for-Schleife if-else-Anweisung Weitere Typen: boolean byte, short, long, float, double char

2 Typumwandlung Aus der letzten Vorlesung Umwandlung von Zeichen
zu und aus int implizit: int i = 'a'; i=97, Unicode-Position von a char c = 97+1; c='b', Zeichen 98 in Unicode char c = 'a'+2; c='c', Zeichen 99 in Unicode Geht, weil passende Größe des zugewiesen Wertes garantiert ist: Alle zugewiesenen Werte sind Konstanten => Compiler berechnet Wert und bestimmt das zuzuweisende Zeichen

3 Typumwandlung Aus der letzten Vorlesung Umwandlung von Zeichen Aber:
int i = 97; i=97 (Unicode-Position von a) char c = i+1; i ist Variable => der Compiler kann nicht im Voraus rechnen, sondern vermutet Unheil Lösung: char c = (char)(i+1); Type Cast

4 Zuweisungsoperatoren
Sind Kurzformen für häufige Formen der Zuweisung. Bieten nichts, was nicht auch anders geht! statt kurz summe = summe + zähler; summe += zähler; produkt = produkt * zähler; produkt*=zähler; Analog: -= /= %= Vorsicht: Der Berechnungsoperator wird gerne übersehen!

5 Zuweisungsoperatoren
Mit etwas komplexerer Semantik! statt kurz zähler = zähler + 1; zähler++; oder ++zähler; aber: zähler++ und ++zähler ändern zähler in gleicher Weise, liefern aber als Operator unterschiedliche Ergebnisse Analog: --zähler und zähler--

6 Zuweisungsoperatoren
i++ erhöht i um 1 und liefert den Wert von i vor der Erhöhung ++i erhöht i um 1 und liefert den Wert von i nach der Erhöhung Beispiel: int i=1, j=1; System.out.println(i++); druckt 1 System.out.println(++j); druckt 2 System.out.println(i + “ “ + j); druckt 2 2 Daher unbedingt vermeiden: i = --i - ++i + i++; Was ergibt diese Zeile für int i=5;?

7 Sichtbarkeit von Variablen
Variablen sind immer sichtbar nach ihrer Vereinbarung, in dem Block, in dem sie vereinbart wurden, in allen darin geschachtelten Blöcken, in der for-Schleife, in deren Kopf sie vereinbart wurden. Variablen können in ihrem Sichtbarkeitsbereich nicht erneut vereinbart werden!

8 Methoden (Motivation)
Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit Gleichheit aller Vorkommen Änderungsfreundlichkeit Programmverkürzung

9 Methoden (Motivation)
Beispiel Ausgabe eines Rechnungsbetrags in folgender Form: Gesamtbetrag Eurocent 2235 (enthält 16% MwSt.: Eurocent 304) Fester Anteil (Text): Variabler Anteil (zwei ganzzahlige Werte): Gesamtbetrag Euro 2235 (enthält 16% MwSt.: Euro 304)

10 Methoden (Motivation)
Gesamtbetrag Eurocent 2235 (enthält 16% MwSt.: Eurocent 304) Programmcode für festen Anteil: System.out.println(“Gesamtbetrag“); System.out.print(“Eurocent “); // Ausgabe Betrag System.out.print(“ (enthält 16% MwSt.: Eurocent “); // Ausgabe Betrag der MwSt. System.out.println(“)“);

11 Methoden (Motivation)
Gesamtbetrag Eurocent 2235 (enthält 16% MwSt.: Eurocent 304) Programmcode für variablen Anteil: int betrag = ???? System.out.println(“Gesamtbetrag“); System.out.print(“Eurocent “); System.out.print(betrag); System.out.print(“ (enthält 16% MwSt.: Eurocent “); System.out.print(betrag/116*16); System.out.println(“)“);

12 Methoden (Beispiel) Und nun als Methode:
public static void rechnung(int betrag) { System.out.println(“Gesamtbetrag“); System.out.print(“Eurocent “); System.out.print(betrag); System.out.print( “ (enthält 16% MwSt.: Eurocent “); System.out.print(betrag/116*16); System.out.println(“)“); }

13 Methoden (Beispiel) Bisher bekannt von main:
public static void rechnung(int betrag) { System.out.println(“Gesamtbetrag“); System.out.print(“Eurocent “); System.out.print(betrag); System.out.print( “ (enthält 16% MwSt.: Eurocent “); System.out.print(betrag/116*16); System.out.println(“)“); } Also: main ist auch eine Methode!

14 Methoden (Beispiel) Neu ist der selbst gewählte Parameter:
public static void rechnung(int betrag) { System.out.println(“Gesamtbetrag“); System.out.print(“Eurocent “); System.out.print(betrag); System.out.print( “ (enthält 16% MwSt.: Eurocent “); System.out.print(betrag/116*16); System.out.println(“)“); }

15 Methoden (Beispiel) public static void rechnung(int betrag) { … }
Zusammenfassung: Die Vereinbarung einer Methode besteht aus - einem Kopf mit - Schlüsselwörtern, - einem Namen und - einer Parameterliste und aus einem Rumpf mit Programmtext in einem Block, in dem die Parameter verwendet werden können.

16 Methoden (Vereinbarung)
Methoden werden direkt in Klassen vereinbart! Also zum Beispiel: public class testRechnung { public static void rechnung(int betrag) { } public static void main(String[] args) {

17 Methoden (Aufruf) Methoden werden in Methoden aufgerufen!
Also zum Beispiel druckt folgendes Programm 6 Zeilen: public class testRechnung { public static void rechnung(int betrag) { } public static void main(String[] args) { rechnung(7580); rechnung(5699); rechnung(10250); } }

18 Methoden (Aufruf) Beim Aufruf einer Methode wird dem Parameter mit ein Wert übergeben! rechnung(7580); ist im Prinzip vergleichbar mit: betrag = 7580; System.out.print(betrag); … System.out.print(betrag/116*16); Parameter sind Variable, die nur in der Methode sichtbar sind, aber über den Aufruf gesetzt werden können.

19 Methoden (weitere Beispiele)
2 Parameter (Parameterliste) public static void rechMitNr(int betrag,int nr) { System.out.println(“Gesamtbetrag für “ + nr); System.out.print(“Eurocent “); System.out.print(betrag); System.out.print( “ (enthält 16% MwSt.: Eurocent “); System.out.print(betrag/116*16); System.out.println(“)“); }

20 Methoden (weitere Beispiele)
ohne Parameter (leere Parameterliste) public static void rechnungKonto() { System.out.print(“Bitte überweisen Sie den “); System.out.print(“ Betrag auf das Konto: “); System.out.println(“ “); }

21 Methoden (Wertrückgabe)
Methoden für Programm bisher ein Schwarzes Loch Parameter verschwinden, aber nichts kommt zurück Jetzt: Methode liefert genau einen Wert zurück in das Programm! Beispiel: Berechnung der MwSt. aus Endbetrag public static int mwstVonBetrag(int betrag) { return betrag/116*16; }

22 Methoden (Wertrückgabe)
public static int mwstVonBetrag(int betrag) { return betrag/116*16; } Typangabe vor dem Namen bestimmt den Typ des zurückgegebenen Wertes Es ist nur eine Typangabe erlaubt! Sprechweisen: Rückgabetyp, Rückgabewert

23 Methoden (Wertrückgabe)
public static int mwstVonBetrag(int betrag) { return betrag/116*16; } Das Schlüsselwort return bestimmt den zurückgegebenen Wert. Der zurückgegebene Wert muss zum Typangabe passen! Nach der Ausführung der return-Anweisung wird die Ausführung der Methode abgebrochen. Mehrere return-Anweisungen sind daher möglich.

24 Methoden (weitere Beispiele)
public static int prozVonBetrag(int betrag, int p) { return betrag/(100+p)*p; } Und neu vereinbart: public static int mwstVonBetrag(int betrag) { return prozVonBetrag(betrag,16); } Ganz wichtig: Jede der beiden Methoden hat ihre eigene Variable mit dem Namen betrag!

25 Methoden (weitere Beispiele)
Und als Abschluss: public static void rechnung(int betrag) { System.out.println(“Gesamtbetrag“); System.out.print(“Eurocent “); System.out.print(betrag); System.out.print( “ (enthält 16% MwSt.: Eurocent “); System.out.print(mwstVonBetrag(betrag)); System.out.println(“)“); } Übrigens: print und println sind auch Methoden!


Herunterladen ppt "Zusammenfassung Vorwoche"

Ähnliche Präsentationen


Google-Anzeigen