내부 클래스 소개
다른 클래스에 정의된 클래스를 내부 클래스라고 합니다
멤버 내부 클래스
1..new 먼저 멤버 내부를 만들어야 합니다. class 외부 클래스의 인스턴스를 생성한 후 .new 를 통해 내부 클래스의 객체를 생성합니다.
2..this 클래스 이름을 통해 외부 클래스의 모든 속성과 메서드에 접근할 수 있습니다. 외부 클래스.이것.
public class Test1 { String name = "asnd"; public static void main(String[] args) { Test1 test1 = new Test1(); Inner mInner = test1.new Inner(); mInner.print(); } void show() { System.out.println("show"); } public class Inner { String name = "123"; private void print(){ show(); System.out.println(name);//打印的是123 System.out.println(Test1.this.name);//打印的是asnd } } }
익명 내부 클래스
이름이 없는 클래스입니다. 클래스가 생성되면 객체도 생성됩니다.
한 번만 사용하면 되는 클래스의 경우 익명 내부 클래스를 사용할 수 있습니다
File file = new File("D:/cc.txt") { @Override public boolean delete() { System.out.println("是否删除y/n"); Scanner input = new Scanner(System.in); String str = input.next(); if (str.equals("y")) { return super.delete(); } System.out.println("删除失败"); return false; } }; file.delete(); }
익명 개체
이 개체는 한 번만 액세스하면 됩니다. .
new Thread() { @Override public void run() { System.out.println("线程开始!"); try { Thread.sleep(2000); System.out.println("线程结束!"); } catch (Exception e) { e.printStackTrace(); } super.run(); } }.start();
정적 내부 클래스
1. 정적 내부 클래스는 외부 클래스의 정적 메서드 및 변수에만 액세스할 수 있으며 비정적 클래스에는 액세스할 수 없습니다.
2. 외부 클래스에 대한 참조를 생성하지 않고도 정적 내부 클래스를 직접 생성할 수 있습니다.
다음은 내부 클래스의 구현 기술을 소개합니다
읽어 주셔서 감사합니다. 모든 사람에게 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!
for (int i = 0; i < 5; i++) { final int finali = i; new Thread() { public void run() { System.out.println(finali); }; }.start(); }Java 내부 클래스(익명 클래스, 익명 객체, 정적 내부 클래스) 및 관련 글에 대한 자세한 설명과 예시는 PHP 중국어 홈페이지를 참고해주세요!