다음 코드에서 알 수 있듯이 RemoveDups_1.LinkedList linkedList = new RemoveDups_1.LinkedList();
이라고 쓰면 정적 클래스 인 RemoveDups_1 내에 정적 클래스 LinkedList의 인스턴스를 가져올 수 있습니다. 정적 클래스이므로, LinkedList
클래스의 인스턴스를 가져 오는 데 new 키워드를 사용해야하는 이유는 무엇입니까?왜 'new'키워드를 사용하여 정적이 아닌 외부 클래스에서 정적 내부 클래스의 참조를 가져올 수 있습니까?
import java.util.*;
public class RemoveDups_1{
public static class LinkedList{
static int i = 5;
class Node{
int data;
Node next;
public Node(int data){
this.data = data;
}
}
Node head;
public void appendToTail(int data){
if(head == null){
head = new Node(data);
}
else{
Node node_to_append = new Node(data);
Node node = head;
while(node.next != null){
node = node.next;
}
node.next = node_to_append;
}
}
}
public static void main(String[] args){
RemoveDups_1 removeDups_1 = new RemoveDups_1();
RemoveDups_1.LinkedList linkedList = new RemoveDups_1.LinkedList();
RemoveDups_1.LinkedList.Node node;
node = linkedList.new Node(3);
System.out.println(RemoveDups_1.LinkedList.i);
}
}
그냥 정적 인 내부 클래스 (또는 심지어 모든 클래스)의 새 인스턴스에 대해 'new'할 필요가 없다고 생각하게 만드는 것이 궁금합니다. –
Java에서 "정적 내부 클래스"라는 정의는 없습니다. –