클래스에서 static 제한자를 사용한다.
내부 클래스를 독립된 클래스 처럼 사용한다
외부에서 주로 내부 클래스의 객체 생성을 할 경우에 주로 사용한다.
두 클래스 모두 Outer 클래스와 밀접한 관계가 있을 때 사용되며 외부 클래스에서 사용이 필요한 경우 static을 붙혀 사용하면 된다.
package inner02_static;
public class Inner02 {
//정적 내부 클래스
//static 키워드를 사용
//외부 클래스에서 객체를 생성한다.
public static class Cal{
int value =0;
public void plus() {
value++;
}
}
public static void main(String[] args) {
// 객체 생성
Inner02.Cal cal = new Inner02.Cal();
cal.plus();
System.out.println(cal.value);
}
}
package inner02_static.myproduct;
public class MyProduct {
private String prodNo;
private String prodName;
private String prodPrice; //prod_price
//정적 내부 클래스
public static class TableInfo {
public final static String[] HEADER_INFO = {"품번","품명","단가" };
public final static int [] WIDTH_INFO= {100,400,100};
}
}
package inner02_static.myproduct;
import java.util.Arrays;
public class MyProductExam {
public static void main(String[] args) {
// 객체 생성
// public static class TableInfo {
// public final static String[] HEADER_INFO = {"품번","품명","단가" };
// public final static int [] WIDTH_INFO= {100,400,100};
//
// }
// static 접근
String[] HEADER_INFO = MyProduct.TableInfo.HEADER_INFO;
int[] WIDTH_INFO = MyProduct.TableInfo.WIDTH_INFO;
// 테이블 정보 출력
System.out.println("헤더정보"+Arrays.toString(HEADER_INFO));
System.out.println("바디정보"+Arrays.toString(WIDTH_INFO));
}
}