티스토리 뷰

배움과 복습

중첩 클래스

뚜비콩 2017. 9. 4. 11:46

1. 중첩 클래스

1) 멤버 클래스

인스턴스 멤버 클래스, 정적 멤버 클래스

2) 로컬 클래스

메소드가 실행될 때만 사용할 수 있는 중첩 클래스 



2. 샘플 코드

package chapter09;

public class Outer {
	String name;
	
	public void prn() {
		
	}
	
	//instance형 내부 클래스
	//클래스 자체가 멤버영역에서 만들어졌기 때문에 멤버형 클래스(or instance형 클래스)
	class InstanceInner{
		public InstanceInner() {
			name = "강동원";
		}
	}

}

package chapter09;

public class Outer2 {
	String name;
	int	kor;
	int 	eng;
	
	//kor과 eng를 더해서 합계를 출력해주고 싶어
	//안 쪽에 클래스를 만들어서!\
	
	public void prn() {
		kor = 100;
		eng = 78;		//임의로 넣어봄
		Inner i = new Inner();
		System.out.println(i.sum());
	}
	
	class Inner{
		public int sum() {
			return kor+eng;
		}
	}

}



package chapter09;

public class OuterTest {

	public static void main(String[] args) {
		Outer o = new Outer();
		Outer.InstanceInner in = o.new InstanceInner();		//사실 이렇게 쓰는 경우는 실무에서 드물다
		
		Outer2 o2 = new Outer2();
		o2.prn();

	}

}




'배움과 복습' 카테고리의 다른 글

제너릭(Generic)  (0) 2017.09.11
멀티 스레드(multi-Thread)  (0) 2017.09.08
java GUI - actionPerformed  (0) 2017.09.04
extends and implements in JAVA  (0) 2017.09.04
abstract class  (0) 2017.09.01
댓글