자바 내부 클래스 와 정적 클래스
                                            
 3173 단어  자바
                    
자바 내부 클래스 와 정적 클래스 는 일반적으로 자주 사용 하지 않 습 니 다. 응용 프로그램 프레임 워 크 에서 자주 사용 되 고 내부 클래스 를 이용 하여 리 셋 을 실현 할 수 있 습 니 다. 그 중에서 비교적 중요 한 것 은
내부 류 는 다 중 계승 을 실현 할 수 있다. 내부 류 는 여러 개의 비 인터페이스 유형, 즉 유형 과 추상 류 를 계승 할 수 있 기 때문이다.
정상 적 인 상황 에서 인터페이스 에는 어떠한 코드 도 쓸 수 없 지만 인터페이스 에서 정적 내부 류 를 실현 한 다음 에 공공 코드 를 쓸 수 있다.
내부 류
1: 내부 클래스 는 일반 클래스 의 모든 특성 을 가지 고 있 으 며, 클래스 구성원 변수의 특성 도 가지 고 있 습 니 다.
2: 내부 클래스 는 외부 클래스 의 구성원 변수, 속성, 방법, 기타 내부 클래스 에 접근 할 수 있 습 니 다.
정적 클래스
1: 내부 클래스 만 static 로 설명 할 수 있 고 정적 내부 클래스 라 고 할 수 있 습 니 다.
2: 정적 내부 클래스 만 정적 구성원 을 가 질 수 있 고 일반 내부 클래스 는 일반 구성원 만 정의 할 수 있 습 니 다.
3: 정적 클래스 는 정적 방법 과 마찬가지 로 외부 클래스 의 정적 구성원 에 게 만 접근 할 수 있 습 니 다.
4: 외부 클래스 의 정적 방법 에서 내부 클래스 에 접근 하면 정적 내부 클래스 에 만 접근 할 수 있 습 니 다.
/**
 *    ,      static
 * 
 * @author zhanqi
 * 
 */
public class OuterClass {
    private int ab = 1;
    private static int sab = 2;
    /**
     *      
     */
    public class NormalInnerClass {
        // private static int age = 22;
        private int age = 22; //      static
        public NormalInnerClass() {
            //                
            System.out.println(ab);
            System.out.println(sab);
        }
    }
    /**
     *      
     */
    public static class StaticInnerClass {
        //                
        private static int age = 22;
        private int age2 = 22;
        private void echo() {
            // System.out.println(ab);
            System.out.println(sab);//             
        }
    }
}  내부 류 의 실례 화
1: 내부 클래스 에 접근 하려 면 외부 클래스, 내부 클래스, OutClass. InnerClass 를 사용 해 야 합 니 다.
2: 일반 내부 클래스 는 외부 클래스 의 인 스 턴 스 에 연결 해 야 합 니 다.
3: 정적 내부 클래스 는 직접 new
/**
 *         
 */
public class OuterClass {
    /**
     *     
     */
    public void method() {
        StaticInnerClass sic = new StaticInnerClass();
        NormalInnerClass nic = new NormalInnerClass();
    }
    /**
     * Main
     */
    public static void main(String[] args) {
        //       ,        ,     
        // NormalInnerClass nic = new NormalInnerClass();
        StaticInnerClass sic = new StaticInnerClass();
    }
}
/**
 *         
 */
class Test {
    public static void main(String[] args) {
        /**
         * 1:        ,    :   .   ,OutClass.InnerClass
         * 2:                  
         * 3:          new
         */
        OuterClass.StaticInnerClass sic = new OuterClass.StaticInnerClass();
        // OuterClass.NormalInnerClass n = new OuterClass.NormalInnerClass();
        OuterClass oc = new OuterClass();
        OuterClass.NormalInnerClass nic = oc.new NormalInnerClass();
    }
}  이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.