Also eigentlich dachte ich, ich wäre mir über innere Klassen völlig im Klaren, aber da habe ich mich getäuscht.
Was ich erwartet hatte:
Zeile 18, OK.
Zeile 20, OK.
Zeile 22, Fehler.
Zeile 24, OK.
Was Fakt ist:
Zeile 18, OK.
Zeile 20, Fehler.
Zeile 22, OK.
Zeile 24, Fehler.
Wozu ist dann überhapt static bei inneren Klassen gut? Und wieso kann ich ohne Object von MyUpperClass ein Objekt von (der nicht statischen) MyInnerClass erzeugen?
Code:
class MyUpperClass
{
public class MyInnerClass
{}
public static class MyStaticInnerClass
{}
}
class MyClass
{
public MyClass()
{
MyUpperClass tUCObject = new MyUpperClass();
MyUpperClass.MyStaticInnerClass tISCObject1 = new MyUpperClass.MyStaticInnerClass();
tUCObject.MyStaticInnerClass tISCObject2 = new tUCObject.MyStaticInnerClass();
MyUpperClass.MyInnerClass tICObject1 = new MyUpperClass.MyInnerClass();
tUCObject.MyInnerClass tICObject2 = new tUCObject.MyInnerClass();
}
}
Zeile 18, OK.
Zeile 20, OK.
Zeile 22, Fehler.
Zeile 24, OK.
Was Fakt ist:
Zeile 18, OK.
Zeile 20, Fehler.
Zeile 22, OK.
Zeile 24, Fehler.
Wozu ist dann überhapt static bei inneren Klassen gut? Und wieso kann ich ohne Object von MyUpperClass ein Objekt von (der nicht statischen) MyInnerClass erzeugen?