2017-08-20 10 views
-4

これはNodeクラスを非静的クラスにするとmainメソッドがそれをアクセスできるかどうかです。javaのmain()メソッドからnon-staticクラスにアクセスできますか?

class LinkedList 
{ 
    Node head; 


static class Node { 
    int data; 
    Node next; 
    Node(int d) { data = d; next=null; } // Constructor 
} 


public static void main(String[] args) 
{ ..............} 
} 
+5

はい。 ** **あなたが 'LinkedList'のインスタンスを持っている場合。 –

+0

'LinkedList.Node n = new LinkedList();新しいノード();' – 4castle

+1

副次的な問題:キーのコアクラスとの名前の衝突を避けるため、LinkedListクラスに別の名前を付けます。 –

答えて

0

はい、クラスからオブジェクトをインスタンス化すると、メインメソッドからNodeクラスにアクセスできます。あなたはそのようにそれを行うことができますあなたの場合は

class LinkedList { 

    Node head; 

    class Node { 
     int data; 
     Node next; 
     Node(int d) { data = d; next=null; } // Constructor 
    } 


    public static void main(String[] args) { 
     //Instantiate your object 
     LinkedList.Node node = new LinkedList().new Node(0); 
    } 
} 
0

Nodeは外部クラスLinkedListの内部クラスです。彼らは別の味で来る。

非静的として

    • 静的差は、非静的クラスは、外部クラスのメンバーへのアクセスを有することです。そのため、非静的クラスは外部クラスへの暗黙の参照を持ちます。

      あなたのケースでは、静的でない内部クラスを使用すると、異なるNodeインスタンスが異なるLinkedListを参照する可能性があるため、混乱を招きます。学問は狂ってしまう

  • 関連する問題