Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs2006/Tag 1/Vorlesung 2

Methoden

static int countOfCharactersInMyName(String name) {
    return name.length();
}

Man schreibt:

  1. zuerst static - aus Gründen, die wir morgen erklären werden.
  2. dann den Rückgabetyp: int, double, boolean, String oder void (für nichts).
  3. danach den Methodennamen. Dabei schreibt man mehrereWorteSoZusammen, so dass dasErsteWortKlein ist und alle darauffolgendenGroß! (auch CamelCase genannt)
  4. danach die Argumente der Methode in Klammern (String erstesArgument, int zweitesArgument) und so weiter. Auch hier gilt die Namenskonvention wie bei den Methoden.
  5. Dann in geschweiften Klammern {} der eigentliche Programmcode der Methode, den man mit return wert; oder nur return; (für void Methoden) beendet.

Arrays

int [] vieleInteger = new int [1000];
double [] wenigGleitkommazahlen;
wenigGleitkommazahlen = new double[10];
int anzahl = 42;
String [] antwort = new String[anzahl];

antwort[3] = "Arthur Dent";
String name = antwort[3];

Arrays sind eine Möglichkeit, viele Werte vom gleichen Typ zu haben. Man schreibt:

  • zuerst den Typ der einzelnen Werte: int, double, boolean oder String
  • dann ein paar eckige Klammern []
  • dann den Namen des Arrays, wobei wieder die normale Namenskonvention, CamelCase mit erstem Buchstaben klein, gilt.

Initialisieren kann man diese Variablen entweder gleich oder später - je nachdem was besser passt. Dazu

  • weist man mit = den Wert zu, den man von new zurückbekommt.
  • new verwendet man so, dass man immer dahinter den Typ der Variablen wiederholt, allerdings schreibt man jetzt in die eckigen Klammern hinein, wie viel Elemente man benötigt - das kann aber auch eine Variable vom Typ int sein.

Zugreifen kann man auf die Elemente eines Arrays mit der [] Syntax mit einArray[nummer] kann man auf die einzelnen Werte sowohl zugreifen als auch ihnen Werte zuweisen.

Schleifen

while(bedingungDieTrueErgibt()) {
    tuEtwas();
}
int [] zahlen = new int[100]; // Indizes des Arrays sind 0 bis 99 !
for(int i = 0; i < zahlen.length; i = i + 1) {
    zahlen[i] = i;
}

Es gibt zwei Arten von Schleifen, die while-Schleife, die hervorragend geeignet ist, wenn man etwas so lange wiederholen möchte bis eine Bedingung zutrifft, und die for-Schleife, mit der man hervorragend alle Werte in einem Array durchgehen kann.

while-Schleifen schreibt man so:

  • zuerst while und in runden Klammern dahinter die Bedingung. Das kann ein Ausdruck wie i < 10 sein, oder eine Methode wie problemGelösst() oder nochAnDerArbeit()
  • Danach in geschweiften Klammern der Inhalt (Body) der Schleife.

for-Schleifen schreibt man so:

  • zuerst for, dann in runden Klammern drei Anweisungen, jeweils mit Semikolon getrennt: Variablen-Initialisierung, Schleifenbedingung und Weitersetzung der Schleifenvariablen. Sehr oft sieht das sehr ähnlich zu dem Beispiel oben aus.
  • danach auch wieder in geschweiften Klammern die Anweisungen, die wiederholt werden sollen.

Fehler finden / Debugging

Eine einfache Technik, den Fehler in einem Programm zu finden ist es, an verschiedenen Stellen auszugeben, welchen Wert eine Variable hat. Das geht so:

System.out.println("Die Variable a hat den Wert: " + a);
// oder kürzer
System.out.println("a: " + a);

Auch sehr gut ist, ein Problem in einer Methode zusammenzufassen und diese dann zu testen, indem man die Methode mit bestimmten Parametern aufruft und das Ergebnis wieder mit System.out.println() ausgibt. Etwa so:

System.out.println("parameter: 3: " + methodeDieIchTeste(3));
System.out.println("parameter: 4: " + methodeDieIchTeste(4));
System.out.println("parameter: 23: " + methodeDieIchTeste(23));
System.out.println("parameter: 42: " + methodeDieIchTeste(42));

Damit kann man an den Ausgaben sehr gut sehen, was man verbockt hat.