Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu

Hallo,

mit den Grundzügen bin ich soweit durch, muss diese selbtverständlich noch verinnerlichen um das Grundwissen zu festigen.;)
Wahrscheinlich habe ich es auch schon gelesen, aber dennoch habe ich Fragen zu denen ich nicht wirklich Ergebnisse bei Google finde die mir diese beantworten.:confused:
Daher verzeiht mir, wenn diese Fragen tatsächlich in den Grundkenntnissen von Java behandelt werden.

Zum Glück (für euch *lol*:cool:) hat sich auch schon die ein oder andere Frage erledigt.

Muss auch sagen, dass ich des englischen insofern mächtig bin, als dass ich meist verstehe was gemeint ist, wenn ich auf dem Gebiet schon etwas Ahnung habe, sonst kann ich es meist nur übersetzen und zum Teil verstehen bzw. zum Teil damit was anfangen.

In einem der Beispiele (genauer gesagt diesem hier;)) steht folgender Code:
Java:
public class SwitchDemoFallThrough {

    public static void main(String[] args) {
        java.util.ArrayList<String> futureMonths =
            new java.util.ArrayList<String>();

        int month = 8;

        switch (month) {
            case 1:  futureMonths.add("January");
            case 2:  futureMonths.add("February");
            case 3:  futureMonths.add("March");
            case 4:  futureMonths.add("April");
            case 5:  futureMonths.add("May");
            case 6:  futureMonths.add("June");
            case 7:  futureMonths.add("July");
            case 8:  futureMonths.add("August");
            case 9:  futureMonths.add("September");
            case 10: futureMonths.add("October");
            case 11: futureMonths.add("November");
            case 12: futureMonths.add("December");
                     break;
            default: break;
        }

        if (futureMonths.isEmpty()) {
            System.out.println("Invalid month number");
        } else {
            for (String monthName : futureMonths) {
               System.out.println(monthName);
            }
        }
    }
}
Der Output des Codes ist klar (steht ja auf der Webseite).

Kann mir bitte einer sagen was dieses .add macht?
Denke mal es, dass es in jedem Durchgang den Monatsnamen in futureMonths (einer Variablen ?) "packt", was mich gleich zur nächsten Frage bringt, was ist denn der richtige Ausdruck für dieses "futureMonths.add" gesamt?
Ist futureMonth eine Variable (?) in welcher in jedem Durchgang, bzw. bis zu jenem zutreffenden Fall ("case"), der obige integer Wert ("8") aus der obige Variable(?) "month" ein neuer Wert hinzugefügt (deshalb "add") wird?

Was ich auch verstanden habe ist, dass man das (erste) "break;" hätte weglassen können, da dann ja alles, nach dem zutreffenden Wert (des "case") ausgegeben werden würde.

Um das zu verdeutlichen folgender Beispielcode (auf selbiger verlinkter Seite):
Java:
public class SwitchDemo {
    public static void main(String[] args) {

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}
Der beim weglassen der "break's" auch alles ausgeben würde was mit und nach dem "case 8" folgt.
Also August, September, Oktober...
 
Bezüglich was das 'add' macht: Dokumentation zu ArrayList.add(T)
`futureMonths` ist eine lokale Variable (eben jene ArrayList), deklariert in dieser Methode.
`futureMonths.add(...)` ist technisch gesehen ein "Expression Statement", also eine Aussage die gleichzeitig ein Ausdruck ist, da die Methode add() auch einen nicht-void Rückgabetyp hat. Noch genauer ist es ein Methodenaufruf mit `futureMonths` als Ausdruck, der das Objekt zurückliefert, auf dem die Methode `add` aufgerufen werden soll.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben