2017-09-24 2 views

Antwort

0

Test Klasse ist eine innere Klasse von TestClass Klasse. Um ein Objekt der Klasse Test zu erstellen, müssen Sie daher ein Objekt der umschließenden Klasse TestClass anlegen.

Sie diesen Fehler, indem Test Klasse außerhalb TestClass beheben können:

class Test { 
    //attributes 
    String attribute; 
} 

class TestClass { 
    public static void main(String[] args) { 
     Test x = new Test(); 
    } 
} 

oder indem sie eine verschachtelte (statisch) Klasse (die keine umgebende Instanz benötigt):

class TestClass { 
    public static void main(String[] args) { 
     Test x = new Test(); 
    } 

    static class Test { 
     //attributes 
     String attribute; 
    } 
} 

Wenn Sie darauf bestehen, Test eine innere Klasse zu halten, können Sie schreiben:

class TestClass { 
    public static void main(String[] args) { 
     TestClass.Test x = new TestClass().new Test(); 
    } 

    class Test { 
     //attributes 
     String attribute; 
    } 
} 
0

Da Test eine nicht statische Klasse ist und versucht, aus einem statischen Kontext darauf zuzugreifen (d. H. von der main() - Methode, die statisch ist), was bedeutet, dass Sie zuerst die Instanz/das Objekt der Klasse TestClass erstellen müssen.

Test x = new Test(); 

Es sollte

TestClass.Test x = new TestClass().new Test(); 

Oder erklären Test als statisch sein.

static class Test { 
    //attributes 
    String attribute; 
} 
Verwandte Themen