이렇게 value 필드와 plus 메서드를 하나 가진 Cal이라는 내부 클래스를 만들었습니다. 내부에 있는 Cal 객체를 사용하려면 어떻게 해야 할까요? 사용하려면 반드시 외부에 있는 이너 클래스 InnerExam1이라는 클래스가 먼저 만들어져야 합니다. 독자적으로 만들어질 수는 없습니다.
package javaStudy; public class InnerExam1 { class Cal{ int value = 0; public void plus() { value++; } } public static void main(String[] args) { InnerExam1 t = new InnerExam1(); --- ① t.new Cal(); ---② } }
InnerExam1 클래스를 만들고(①) 이 클래스를 이용해서 Cal 객체를 생성할 수 있습니다(②). 이때 Cal 객체를 사용하려면 인스턴스 변수를 선언해야 합니다. ‘바깥쪽 클래스 타입.내부 타입’으로 타입을 선언합니다.
// 바깥쪽 클래스 타입.내부 타입 InnerExam1.Cal cal = t.new Cal();