„Hallo, Amigo!“
„Ein weiteres kleines Thema sind lokale Klassen .“
„Wie Sie gesehen haben, können Sie Klassen nicht nur in separaten Dateien, sondern auch innerhalb anderer Klassen erstellen. Aber das ist noch nicht alles. Klassen können auch innerhalb von Methoden erstellt werden. Diese Klassen werden lokale Klassen genannt. Sie funktionieren wie gewöhnliche innere Klassen, aber Sie können innerhalb der Methoden verwendet werden, in denen sie deklariert sind.“
"Schau auf den Bildschirm:"
class Car
{
public ArrayListcreatePoliceCars(int count)
{
ArrayList result = new ArrayList();
class PoliceCar extends Car
{
int policeNumber;
PoliceCar(int policeNumber)
{
this.policeNumber = policeNumber;
}
}
for(int i = 0; i < count; i++)
result.add(new PoliceCar(i));
return result;
}
}
„Und warum brauchen wir solche Kurse?“
„Wenn man eine Klasse mit all ihren Konstruktoren und Methoden in eine Methode einfügt, entsteht kein sehr gut lesbarer Code, finden Sie nicht?“
„Genau. Du hast vollkommen recht.“
„Sie können auch anonyme innere Klassen innerhalb von Methoden verwenden. Diese Klassen haben jedoch einen kleinen Vorteil und werden daher recht häufig innerhalb von Methoden verwendet.“
„Eine innerhalb einer Methode deklarierte Klasse kann die lokalen Variablen dieser Methode verwenden:“
class Car
{
public ArrayListcreatePoliceCars(int count)
{
ArrayList result = new ArrayList();
for(int i = 0; i < count; i++)
{
final int number = i;
result.add(new Car()
{
int policeNumber = number;
});
}
return result;
}
}
„Aber es gibt eine Einschränkung: Die Variablen sind „schreibgeschützt“ – sie können nicht geändert werden.“
„Hier ist der Grund, warum diese Einschränkung besteht:“
„Innerhalb einer Methode deklarierte Klassen können nur auf die Variablen einer Methode zugreifen, die mit dem Schlüsselwort final deklariert sind. Im obigen Beispiel können Sie sehen, dass ich den Wert von i nicht sofort PoliceNumber zuweisen kann. Stattdessen speichere ich ihn zunächst im letzte Variablennummer.“
„Die Möglichkeit, die Variablen einer Methode verwenden zu können, ist super cool. Ich hoffe, dass ich das richtig zu schätzen weiß. Es ist aber schade, dass man Variablen nicht ändern kann.“
„Ellie wird dir heute erklären, warum du sie nicht ändern kannst. In der Zwischenzeit werde ich etwa eine Stunde lang ein Nickerchen machen.“
„Gute Nacht, Kim. Danke für die interessante Lektion.“
GO TO FULL VERSION