내부 수업 소개
다른 클래스에 정의 된 클래스는 내부 클래스라고합니다.
회원 내부 클래스
1 .. 멤버의 내부 클래스를 생성하려면 먼저 외부 클래스의 인스턴스를 작성한 다음 .New를 통해 내부 클래스의 객체를 만들어야합니다.
2.. 클래스 이름을 통해 외부 클래스의 모든 속성과 방법에 액세스 할 수 있습니다.
공개 클래스 test1 {문자열 이름 = "asnd"; public static void main (String [] args) {test1 test1 = new test1 (); 내부 Minner = test1.new 내부 (); minner.print (); } void show () {System.out.println ( "show"); } 공개 클래스 내부 {문자열 이름 = "123"; private void print () {show (); System.out.println (이름); // print 123 system.out.println (test1.this.name); // print asnd}}}익명의 내부 클래스
이름이없는 클래스는 클래스를 만드는 동안 객체를 만듭니다.
익명의 내부 클래스를 사용하려면 클래스를 한 번만 사용하면됩니다.
파일 = 새 파일 ( "d : /cc.txt") {@override public boolean delete () {system.out.println ( "y/n 삭제하지 않음"); 스캐너 입력 = 새 스캐너 (System.In); 문자열 str = input.next (); if (str.equals ( "y")) {return super.delete (); } system.out.println ( "삭제 실패"); 거짓을 반환합니다. }}; file.delete (); }익명 대상
객체는 한 번만 액세스하면됩니다.
새 스레드 () {@override public void run () {System.out.println ( "스레드 시작!"); try {thread.sleep (2000); System.out.println ( "스레드 엔드!"); } catch (예외 e) {e.printstacktrace (); } super.run (); } }.시작();정적 내부 클래스
1. 정적 내부 클래스는 외부 클래스의 정적 메소드 및 변수에만 액세스 할 수 있으며 비 정적에 액세스 할 수 없습니다.
2. 정적 내부 클래스는 외부 클래스에 대한 참조를 작성하지 않고 직접 만들 수 있습니다.
익명의 내부 클래스 액세스 로컬 변수에 액세스합니다
내부 클래스 액세스 로컬 변수는 최종적이어야합니다. 추가되지 않으면 JDK1.8이 기본적으로 추가됩니다. 사용 된 변수가 변경되면 다음 방법을 사용할 수 있거나 다음 방법을 처음에는 정적으로 설정할 수 있습니다.
for (int i = 0; i <5; i ++) {final int finali = i; 새 스레드 () {public void Run () {System.out.println (finali); }; }.시작(); }다음은 내부 클래스의 구현 기술에 대한 소개입니다.
public static void main (String [] args) {lam mlam = new lam (); // 구현의 첫 번째 구현 방법 mlam.to (new light () {@override public void shin () {System.out.println ( "On 's First Method");}}); // 구현 클래스의 두 번째 방법 Mylam은 Light를 구현합니다. }} mlam.to (New Mylam ()); }} interface light {void shin ();} class lam {public void to (ligh ligh) {ligh.shin (); System.out.println ( "on"); }}읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!