• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Java]: innere Klasse greift auf Objekt von eigenem Typ in äusserer Klasse zurück

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Ich habe hier einen neuen Kollegen und dieser hat sich zwar schon eingearbeitet, aber ab und zu kommt noch mal ne Frage. Nunja heute fragte er mich wegen etwas und dann zeigte er mir ein stückerl code... und das verwirrt mich bis jetzt.

Was mir totales Kopfzerbrechen bereitet ist diese Stückerl Code.
(Also das ganze ist nur ein "Prototyp" von dem was ich zu sehen bekam. Mir geht es nur um das "Konzept")

Code:
public class Lebewesen {
 
     private Mensch ernie = null;
     
     class Mensch() {
         
       public boolean ernieIsNull() {
             return ernie==null;
         }
     }
}

Ich bin eh kein Fan vom "inner Class" Konzept.. aber das hat mich dann total verwirrt.... oder bin ich nur übernächtigt?
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Das Konzept ist mir schon klar.. und wie gesagt, ich mag es nicht bzw finde es alles andere als elegant.

Was ich so strange finde ist, dass ein objekt in sich selbst prüft, ob es eine bestimmte instanz von sich selbst gibt.
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Was ich so strange finde ist, dass ein objekt in sich selbst prüft, ob es eine bestimmte instanz von sich selbst gibt.
Das hat dann aber gar nichts mit den verschachtelten Klassen zu tun, oder?

Das reine Pruefen auf die Existenz einer bestimmten Instanz (und ggf. ihre Erstellung) find' ich jedenfalls wenig erstaunlich. In Cocoa/Objective-C macht man das oft in Controller-Klassen, von denen man nur eine "shared instance" haben will. Und auch anderswo, hier ein paar Beispiele:

[NSApplication sharedApplication]
[NSFileManager defaultManager]
[NSWorkspace sharedWorkspace]

etc.

Oder hab' ich noch nicht verstanden, was Dich an diesem Codeschnipsel stoert?

Zusatzfrage, die dann doch wieder mit den verschachtelten Klassen zu tun hat: Waer's nicht sinnvoller, wenn in Deinem Beispiel "ernie" innerhalb der "Mensch"-Klasse deklariert wuerde? Oder stellt "Lebewesen" auch noch irgendwas mit "ernie" an -- ausserhalb Deines moeglichst einfachen Prototyp-Codes?
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Mit dem dem Cooca/Obj-C haste schon recht. Ich glaube ich hab das alles zu stark vereinfacht... also das was ich gestern gesehen habe war halt echt sinnlos. Wurde mittlerweile wohl auch korrigiert.