Hallo,
Warum kann ich mit dieser Syntax die static Klasse Hund instanziieren?
Tier.Hund snoopy = new Tier.Hund();
Beispiel foo.java2: static Nested Class Hund
Das klappt:
Tier.Hund snoopy = new Tier.Hund();
Das klappt nicht:
Tier snoopy = new Tier();
Tier.Hund snoopy2 = snoopy.new Hund();
Und umgekehrt:
Beispiel foo.java: Inner Class Hund
Das klappt nicht:
Tier.Hund snoopy = new Tier.Hund();
Das klappt:
Tier snoopy = new Tier();
Tier.Hund snoopy2 = snoopy.new Hund();
Warum kann ich mit dieser Syntax die static Klasse Hund instanziieren?
Tier.Hund snoopy = new Tier.Hund();
Beispiel foo.java2: static Nested Class Hund
Das klappt:
Tier.Hund snoopy = new Tier.Hund();
Das klappt nicht:
Tier snoopy = new Tier();
Tier.Hund snoopy2 = snoopy.new Hund();
Java:
class Tier
{
static class Hund
{
void sprich()
{
System.out.println("wuff");
}
}
}
public class Foo2
{
public static void main(String[] args)
{
Tier.Hund snoopy = new Tier.Hund();
snoopy.sprich();
}
}
Und umgekehrt:
Beispiel foo.java: Inner Class Hund
Das klappt nicht:
Tier.Hund snoopy = new Tier.Hund();
Das klappt:
Tier snoopy = new Tier();
Tier.Hund snoopy2 = snoopy.new Hund();
Java:
class Tier
{
class Hund
{
void sprich()
{
System.out.println("wuff");
}
}
}
public class Foo
{
public static void main(String[] args)
{
Tier snoopy = new Tier();
Tier.Hund snoopy2 = snoopy.new Hund();
snoopy2.sprich();
// Tier.Hund bello = new Tier.Hund();
}
}