Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
War ja nur Spaß, und ist in dem Mini-Beispiel auch egal.
Aber generell begegnet mir hier im Forum viel zuviel Code mit falscher Groß/Kleinschreibung. Es gibt gute Gründe für die diesbezüglichen Konventionen, und wenn ich Prof wäre, gäbe es für falsche Groß/Kleinschreibung Punktabzug.
Aber um noch was zum Thema beizutragen: Es gibt insgesamt 4 (in Worten VIER) verschiedene Arten von "eingebetteten" Klassen (manche Leute nennen alle Arten "innere" Klassen, was aber verwirrend ist). Man sollte auf jeden Fall den Unterschied zwischen Inneren und Statischen (oder "Statischen Inneren") Klassen kennen (und immere letztere verwenden, wenn möglich).
Code:
class OuterClass {
Object anonymousInnerClass = new Object(){
{System.out.println("Ich will anonym bleiben");}
};
class InnerClass {}
static class StaticInnerClass {}
void f() {
class LocalInnerClass(){}
LocalInnerClass localInnerClass = new LocalInnerClass();
}
}
@FArt
hast du in meinem beitrag sonstwo einen GROSSBUCHSTABEN entdeckt?
nur zum verständnis. ich habe als "organisations-programmierer" seit 1988 viele jahre c, vfp und delphi programmiert und mich oft über miserablen programmierstil von schulabgängern gewundert. in der schule wurden aufgrund meiner erfahrung erstmals namenskonventionen und richtlinien eingeführt. was ich jetzt in der weiterbildung als regel oder richtlinie in java erkenne, setze ich natürlich um. vor allem, wenn ich etwas an andere weiter gebe, aber nicht unbedingt, wenn ich frage. :wink:
@landei
siehste, genau das ist das, was ich brauche. super!
@tfa
das alles wurde uns als "lokale klassen" angeboten: verschachtelte klassen, innere klasse, inner class und nested class.
:wink:
Aber um noch was zum Thema beizutragen: Es gibt insgesamt 4 (in Worten VIER) verschiedene Arten von "eingebetteten" Klassen (manche Leute nennen alle Arten "innere" Klassen, was aber verwirrend ist). Man sollte auf jeden Fall den Unterschied zwischen Inneren und Statischen (oder "Statischen Inneren") Klassen kennen (und immere letztere verwenden, wenn möglich).
Das ist besser für die Kapselung und auch die Performance. Wenn das Objekt der eingebetteten Klasse keinen Zugriff auf das umschließende benötigt, sollte man auch keinen bereitstellen. In inner Classes wird immer eine this$0 Variable mitgeschleppt, die auf das äußere Objekt verweist.
rbest, wenn die Meister sagen, dass die Klassennamen mit großen Buchstaben anfangen sollen, dann musst du sagen "Aha, wieder was neues gelernt. Vielen Dank!" und nicht labern und komische Argumente finden. Es mag ja sein, dass dein Code trotzdem funktioniert. Aber Klassennamen entsprechen auch Datentypen in Java und die beginnen mit GROßEN Buchstaben! So kannst du unterscheiden, ob "blabla" ein Klassenname oder ein Variablenname ist (Blabla --> Klasse; blabla --> Variable) und wenn du 20000 Zeilen Quellcode hast, musst du nicht nach Deklaration dieses Ausdrucks suchen, ob es eine Klasse oder eine billige member Varible ist.
@FArt
in der schule wurden aufgrund meiner erfahrung erstmals namenskonventionen und richtlinien eingeführt. was ich jetzt in der weiterbildung als regel oder richtlinie in java erkenne, setze ich natürlich um. vor allem, wenn ich etwas an andere weiter gebe, aber nicht unbedingt, wenn ich frage.
Nun, vielleicht kommen ja dann Schüler mal die Idee auch dieses Forum zu besuchen und stoßen auf den Eintrag ihres Lehrers, was ja nicht schwer isr, denn auf der Verlinkten Internetseite prangt ja dein Bild...
Ich bin halt der Meinung, wenn man etwas lehrt, dann sollte man sich an das gelehrte auch halten. (Vorbildfunktion oder so ähnlich...??)
@tfa: Danke für die Antwort, die this$0 ist mir beim debuggen schon des öfteren untergekommen, jetzt weiß ich auch warum... .
Nun da hab ich mir jetzt richtig Arbeit eingeheimst, weil ich jetzt nach und nach meinen Code entsprechend anpassen werde.