본문 바로가기

IT/자바

static 내부 클래스

package study;


public class StaticInner {


int a=10;

private int b=100;

static int c=200;

static class Inner {

//어쩔 수 없이 내부 클래스를 static으로 선언해야 할 경우가 있다.

//그건 바로 내부 클래스의 멤보들 중 하나라도 static 멤버가 있을 때다.

static int d=1000; // static 멤버

public void printData() {

// StaticInner s = new StaticInner();

// System.out.println("int a : " + s.a);

// System.out.println("int a : " + a); // 오류

// System.out.println("private int b : " + b); // 오류

System.out.println("static int c : " + c);

System.err.println("static int d : " + d);

}

}

public static void main(String[] args) {

// 또 다른 독립된 객체에서 static 내부 클래스 생성할 때

StaticInner.Inner inner = new StaticInner.Inner();

inner.printData();

// StaticInner라는 외부 클래스 내에서 생성 할 때

//Inner inner = new Inner();

//inner.printData();

}

}


========================

package study;

public class StaticTest2_1 {

String s1 = "static";
static String s2 = "STATIC";

public static String getString() {
// return s1;
StaticTest2_1 s = new StaticTest2_1();
return s2 + s.s1;
}

public static void main(String[] args) {
System.out.println("s2 : " + StaticTest2_1.getString());
}
}