5. 내부 클래스

내부 클래스

예를 들면 :

    class A {                   //外部类
        class B {  }            //内部类
}

상기 클래스 컴파일러는 두 개의 카테고리를 생성 한 후 : A.class US $ B.class
내부 클래스는 외부 클래스의 전용 부재를 액세스 할

내부 클래스에 초점 :
  1. 내부 반원 : 클래스, 예를 들어, 상술 한 예는 한 클래스가
    내부 클래스 객체를 만들려면 외부 물체를 만드는이 후는이 새로 만들기를 () = (내부 클래스 객체를 생성 , AB, B = a.new B ()를 ;)

  2. 정적 내부 클래스 : 내부 클래스는 정적 개질제 인
    특징 : 직접적인 내부 클래스 객체를 생성 할 수 ① ② 클래스 외부 액세스 만 고정 부재 수있는
    내부 클래스 객체 만들 : AB B = 새로운 AB를 () ;
  3. 지역 내부 클래스 : 클래스 이외의 방법의 구성원있는 클래스의 정의
    범위 : 코드 블록 끝 위치를 정의와 시작은,로
    기능 : ① 방법에 기록 된 객체 문을 만들 수, 지역 내부 클래스의 생성 ② 지방 당신은 클래스의 메소드 외부를 호출 할 때 내부 클래스는 외부 클래스의뿐만 아니라 멤버에 액세스 할 수 있습니다뿐만 아니라, 외부 클래스의 지역 변수에 액세스 할 수 있지만 최종 (상수)와 결합되어야한다 (1.8 이상 쓸 수 없습니다 플러스 코드를 기반으로 가상 머신을 기본)
main:A a = new A(); 
a.method();  //注意,应将局部类的创建在方法内
class A { 
public void method() {
    class B {   }
}
}
  1. 익명 내부 클래스 : 내부의 특별한 유형
    조건 : 클래스 때이 클래스의 객체를 생성하는 경우에만 인터페이스 또는 상속을 ② 구현 ①
    IA 인터페이스를 하나의 주요 기능을 달성하기 위해 : 같은이 :
IA a = new IA(){     //直接实现该几口,没有要实现该接口的类名
        @Override
        public void method() { }//实现该接口的方法

추천

출처www.cnblogs.com/linanana/p/12075387.html