자바 의 4 가지 유형의 내부 클래스

2517 단어 공부 하 다.Java
자바 에는 4 가지 서로 다른 유형의 내부 클래스 가 사용 할 수 있 습 니 다.다음은 그들의 이름과 예 를 보 여 줍 니 다.
1.정적 끼 워 넣 기 클래스(Static Nested Classes)
class Outer {
	static class Inner {
		void go() {
			System.out.println("Inner class reference is: " + this);
		}
	}
}
 
public class Test {
	public static void main(String[] args) {
		Outer.Inner n = new Outer.Inner();
		n.go();
	}
}

출력:내부 클래스 참 조 는 다음 과 같 습 니 다.Inner@19e7ce87
2.멤버 내부 클래스(Member Inner Class)
구성원 류 는 실례 에 특 정 된 것 이다.모든 방법,필드,외부 클래스 자체 의 참조 에 접근 할 수 있 습 니 다.
public class Outer {
    private int x = 100;
 
    public void makeInner(){
        Inner in = new Inner();
        in.seeOuter();
    }
 
    class Inner{
        public void seeOuter(){
            System.out.println("Outer x is " + x);
            System.out.println("Inner class reference is " + this);
            System.out.println("Outer class reference is " + Outer.this);
        }
    }
 
    public static void main(String [] args){
    	Outer o = new Outer();
        Inner i = o.new Inner();
        i.seeOuter();
    }
}

출력:
Outer x is 100 Inner class reference is Outer$Inner@4dfd9726 Outer class reference is Outer@43ce67ca
3.부분 적 방법 내부 클래스(방법-로 컬 내부 클래스)
public class Outer {
	private String x = "outer";
 
	public void doStuff() {
		class MyInner {
			public void seeOuter() {
				System.out.println("x is " + x);
			}
		}
 
		MyInner i = new MyInner();
		i.seeOuter();
	}
 
	public static void main(String[] args) {
		Outer o = new Outer();
		o.doStuff();
	}
}

출력:x is outer
public class Outer {
	private static String x = "static outer";
 
	public static void doStuff() {
		class MyInner {
			public void seeOuter() {
				System.out.println("x is " + x);
			}
		}
 
		MyInner i = new MyInner();
		i.seeOuter();
	}
 
	public static void main(String[] args) {
		Outer.doStuff();
	}
}

출력:x is static outer
4.익명 내부 클래스(Anonymous Inner Class)
GUI 프로그램 창 위 젯 에 동작 모니터 를 추가 해 야 할 때 익명 내부 클래스 가 자주 사 용 됩 니 다.
button.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e){
         comp.setText("Button has been clicked");
     }
});

당신 도 좋아 할 수 있 습 니 다.
1.What Is Inner Interface in Java?2.Why do we need Generic Types in Java?3.An example problem of Generic types4.Constructors of Sub and Super Classes in Java?자바 내부 클래스 의 4 가지 유형

좋은 웹페이지 즐겨찾기