2017-03-07 4 views
0

Ich sah einen Fehler beim Erstellen meines Objekts mit einer definierten Klasse in Java. Hier ist mein Code:Gibt mir einen Fehler beim Erstellen eines Objekts in Java

public class encapsulation { 

    class Emp 
    { 
     int empId; 
     String empName; 
    } 

    public static void main(String[]args) 
    { 
     Emp e1 = new Emp(); 
    } 
} 

Aber es gibt mir eine Fehlermeldung:

No enclosing instance of type encapsulation is accessible. Must qualify the allocation with an enclosing instance of type encapsulation (e.g. x.new A() where x is an instance of encapsulation).

Hier ist ein Screeshot: Error in object creation using java

Antwort

2

Sie versuchen, ein Objekt aus einer inneren Klasse zu instanziiert. Innere Klasseninstanzen müssen immer einer äußeren Klasseninstanz zugeordnet werden. Versuchen Sie dies -

public static void main(String[]args) 
{ 
    encapsulation en = new encapsulation(); 
    encapsulation.Emp e1 = en.new Emp(); 
} 

Überprüfen Sie the official tutorial für weitere Informationen.

2

Wenn Sie eine innere Klasse Emp in encapsulation haben, jede Instanz von Emp zu einer von encapsulationInstanz gehört. Wenn Sie nicht wollen, dass es eine verschachtelte Klasse machen stattdessen durch Zugabe eines static Modifikator:

public class encapsulation { 
    static class Emp { 
    ...... 

Nun, da Empstatic deklariert wird, gehört es nicht auf eine bestimmte Instanz von encapsulation, so dass Sie don‘ t muss encapsulation instanziieren, um Emp instanziieren.

+0

Danke.Es funktioniert –

+0

@ErPriyatam Froh, um von Nutzen zu sein. – khelwood

Verwandte Themen