달력

2

« 2025/2 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
2017. 7. 2. 21:41

중첩 클래스 C. Java2017. 7. 2. 21:41

중첩 클래스

: 클래스 안에 클래스를 가짐으로 클래스의 관리의 효율을 높인것 (안쪽 클래스에서는
  static 사용 불가
), 중첩클래스안에서는 바깥쪽 클래스의 메소드 및 필드를 바로 사용할수 있다.
 
  중첩클래스의 생성파일:
  ex) class Outer{ ... class inner1{..} }   -> Outer.class, Outer$inner1.class
 
 
중첩클래스의 객체 생성방법
: 바깥쪽 클래스의 객체를 먼저 생성후 다시 안쪽 클래스의 객체를 생성해야한다.
 
 
ex) 
 
class Outer
{
    private int x=100;           //필드
    private static int y=200;
 
    public Outer(){}             //생성자
 
    public void disp(){ System.out.println("x+y=" + (x+y)); }        //메소드
 
 
 //중첩클래스
    class Inner1{
  
        private int a=200;       //필드
        //private static int b=100; -> 중첩클래스 안에서 static사용 불가
 
        public Inner1(){}        //생성자
  
        punlic void disp_in(){                         //메소드
            System.out.println("a=" + a);
            System.out.println("x=" + x);       // -> 바깥쪽 클래스의 멤버필드를 사용할수 있다.
            disp();                                          // -> 바깥쪽 클래스의 메소드를 사용할수 있다.
        } 
 
        class Outer_Inner{ }      //그안의 중첩클래스
    } 
}
 
 
 
public calss Exam{
    public static void main(String[] ar){
        Outer ot       = new Outer();                              //중첩클래스 객체생성시.. 바깥쪽 클래스 먼저 생성후
        Outer.Inner oi = ot.new Inner();                           //그것을 이용해서 안쪽 클래스 객체를 생성해야한다.
        Outer.Inner.Outer_Inner oio = oi.new Outer_Inner();   
 
        oi.disp_in();

 }
}
 


'C. Java' 카테고리의 다른 글

지역 중첩 클래스  (0) 2017.07.02
정적 중첩 클래스  (0) 2017.07.02
java 자바 인터페이스  (0) 2017.07.02
아스키 코드표  (0) 2017.07.02
JVM (java virtual machine) 구조  (0) 2017.07.02
:
Posted by sfeg