유블로그

[Java] 내부 클래스 본문

Java

[Java] 내부 클래스

yujeong kang 2020. 8. 12. 12:35

내부 클래스 : 클래스 안에 선언된 클래스

선언되는 위치와 방법에 따라서 4가지로 구분된다.

class Top {
  // 멤버변수
  class InnerMember {}			// 1
  static class StaticMember {}	// 2 - 알고에서 좌표..

  메서드 () {
    // 지역변수
    class NamedLocal { }		// 3 -> 쓸 일 거의 없음
    // 익명 클래스(Anonymous)
    new 부모() {}					// 4 -> 가장 많이 사용, 이벤트 처리
  }
}
public class Test01 {
	String data = "Test01의 멤버 데이터";
	static String data2 = "TopClass01 data2";
	
	// 1
	class InnerMember {
//		static int v = 100;	// 에러 발생 : static 아닌 클래스에서 static 변수 선언 x
		int v = 100;
		
		void call() {	// 내부 클래스는 자기를 감싼 외부클래스의 변수들을 자유롭게 사용 가능
			System.out.println(data);
			System.out.println(data2);
		}
	}
	
	// 2
	static class StaticMember {
		static int v = 100;	// static class 라서 static 변수 가능
		int v2 = 100;		// 가능
		
		void call() {
//			System.out.println(data);	// 에러 발생 : static class 에서는 같은 static 만 접근 가능(1과 다른 점)
			System.out.println(data2);
		}
		
		static void print() {	}		// static method 정의 가능
	}
}

'Java' 카테고리의 다른 글

[Java] XML  (0) 2020.08.13
[Java] Java IO  (0) 2020.08.13
[Java] final  (0) 2020.08.12
[Java] Abstract, Interface  (0) 2020.08.12
[Java] 예외(Exception)  (0) 2020.08.11