• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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.