C. Java
정적 중첩 클래스
sfeg
2017. 7. 2. 21:41
정적 중첩 클래스
=> 중첩클래스 내부에 Static 멤버를 포함할 수 있는 형태( 단, 바깥쪽 클래스의 non-static 멤버
포함은 불가하다 )
정적 중첩 클래스 객체 생성
= > Outer.inner oi = new Outer.Inner();
= > Outer.inner oi = new Outer.Inner();
ex)
class Outer1
{
private int x=100; //필드
private static int y=200;
public Outer1(){} //생성자
public void disp(){ System.out.println("x+y=" + (x+y)); } //메소드
{
private int x=100; //필드
private static int y=200;
public Outer1(){} //생성자
public void disp(){ System.out.println("x+y=" + (x+y)); } //메소드
//정적 중첩 클래스
static class Inner1{
private int a=200; //필드
private static int b= 100; // 정적 중첩클래스는 static멤버를포함할수있다.
public Inner1(){} //생성자
punlic void disp_in(){ //메소드
System.out.println("a+b=" + a+b);
//System.out.println("x=" + x); // -> 바깥쪽 클래스의 non-static 멤버필드를 사용불가
non-static필드가 있는 메소드도 사용불가하다.
static class Inner1{
private int a=200; //필드
private static int b= 100; // 정적 중첩클래스는 static멤버를포함할수있다.
public Inner1(){} //생성자
punlic void disp_in(){ //메소드
System.out.println("a+b=" + a+b);
//System.out.println("x=" + x); // -> 바깥쪽 클래스의 non-static 멤버필드를 사용불가
non-static필드가 있는 메소드도 사용불가하다.
//disp();
System.out.println("y=" + y); // -> 바깥쪽 클래스의 Static 멤버필드만 사용할수 있다.
}
}
}
}
}
public calss Exam{
public static void main(String[] ar){
public static void main(String[] ar){
Outer1.Inner1 oi = new Outer1.Inner1(); // 정적 중첩클래스 객체생성시.. 바깥쪽 클래
스 객체 생성없이 바로 객체 생성한다.
스 객체 생성없이 바로 객체 생성한다.
oi.disp_in();
}
}