첫 번째 형태는 클래스 안에 인스턴스 변수, 즉 필드를 선언하는 위치에 선언하는 경우입니다. 이런 경우를 보통 중첩 클래스 혹은 인스턴스 클래스라고 합니다. 어떤 경우인지 코드를 통해 살펴보겠습니다. 먼저 InnerExam1 클래스를 만듭니다.
package javaStudy; public class InnerExam1 { public static void main(String[] args) { } }
여기서 필드를 선언하는 위치에 클래스를 선언합니다. Cal이라는 클래스를 선언합니다.
package javaStudy; public class InnerExam1 { class Cal{ int value = 0; ---① public void plus() { ---② value++; } } public static void main(String[] args) { } }
클래스를 배울 때 클래스 안에 필드를 선언하거나 메서드를 정의했죠? 지금도 클래스를 선언하는 것이므로 ①과 같이 필드를 선언하거나, ②와 같이 메서드를 정의할 수 있습니다.