JAVA - Warum static ?

Hallo,

habe folgendes Problem mit JBuilder2:
Wenn ich eine Klasse wie folgt aufbaue

public class myclass
{
public static void main(String[] args)
{
Klasse class = new Klasse(„Test“);
}

class Klasse
{
String Test;

Klasse(String test)
{
Test = test;
}
}
}

erhalte ich die Fehlermeldung:
Aus einem statischen Kontext heraus kann myclass.this nicht referenziert werden.
Da die main-Methode immer static ist würde das ja bedeuten,daß alle Klassen als Static deklariert sein müssen, damit man eine
Instanz bilden kann.

Kann mir jemand erklären, was ich falsch mache?

Danke, Chris

Klasse class = new Klasse(„Test“);

Habs nicht ausprobiert, aber vielleicht solltest Du diese Variable nicht class nennen.

erhalte ich die Fehlermeldung:
Aus einem statischen Kontext heraus kann
myclass.this nicht referenziert werden.
Da die main-Methode immer static ist
würde das ja bedeuten,daß alle Klassen
als Static deklariert sein müssen, damit
man eine Instanz bilden kann.

Hat nix damit zu tun, normalerweise bedeutet diese Fehlermeldung, dass Du in einer statischen Methode eine Eigenschaft einer Klasse veraenderst. Das ist hier aber - soviel ich sehe - nicht der Fall.

Hoppla- das war nur in meinem kleinen Beispielprogramm so. Im (recht langen) Orginal heißt die Instanz nicht class!

Klasse Instanz1 = new Klasse(„Test“);

Chris

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Chris,

da Deine zweite Klasse(class Klasse) innerhalb der ersten definiert ist , handelt es sich um eine innere Klasse. Um eine Instanz einer inneren Klasse zu erzeugen , brauchst Du jedoch erst eine Instanz der äußeren Klasse.Also so:

public class outerClass {
 public static void main(String args[]) {
 outerClass o=new outerClass();
 innerClass i=o.new innerClass("test");
 }
 class innerClass {
 String Test;
 innerClass(String test) {
 Test = test;
 }
 }
} 

mfg,
Frédéric

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]