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.
was meinst du mit beliebig viel speicher? dass es beliebig viel von den 4-8 byte belegt?
das heisst es macht keinen unterschied nur zu deklarieren falls ich nicht weiss ob ich das Objekt zur Laufzeit benutze oder?
Ein Unterschied besteht immer nur zwischen ZWEI Dingen. Vielleicht willst du auf sowas wie "Lazy Initialization" hinaus?
Code:
class Main
{
private Typ typ;
void foo()
{
if (bla)
{
typ.doSomething();
}
if (blub)
{
typ.doSomethingDifferent();
}
if (blimp)
{
typ.doSomethingElse();
}
}
}
in diesem Fall bräuchte man das "Typ"-Objekt ja NUR, wenn eine der drei Bedinungen erfüllt ist. Jetzt könnte man z.B. gleich am Anfang diese 3 Bedinungen überprüfen, und das Objekt ggf. erstellen, aber u.U. ist das nicht nötig oder möglich... In so einem Fall KANN es sinnvoll sein, das in dieser Form (mit "Lazy Initialization") zu lösen:
Code:
class Main
{
private Typ typ;
private Typ getTyp() // Zugriff auf "typ" NUR über diese Methode
{
if (typ==null) // Falls typ noch nicht erstellt wurde,
{
typ = new Typ(); // wird es jetzt erstellt
}
return typ; // Andernfalls einfach das schon erstellte zurückgegeben
}
void foo()
{
if (bla)
{
getTyp().doSomething(); // Typ wird automatisch erstellt, fals nötig
}
if (blub)
{
getTyp().doSomethingDifferent(); // Typ wird automatisch erstellt, fals nötig
}
if (blimp)
{
getTyp().doSomethingElse(); // Typ wird automatisch erstellt, fals nötig
}
}
}
Aber das ist jetzt nur das, was meine Kristallkugel mir zu der Intention deiner Frage gesagt hat ... kann auch falsch sein...