java 내부 클래스(익명 클래스, 익명 대상, 정적 내부 클래스) 상세 및 실례
다른 클래스에 정의된 클래스를 내부 클래스라고 합니다.
구성원 내부 클래스
일..new 구성원 내부 클래스를 만들려면 외부 클래스의 실례를 먼저 만들고 통과해야 합니다.new 내부 클래스 만들기 대상
이..this는 외부 클래스의 클래스를 통해 사용할 수 있습니다.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. 정적 내부 클래스는 외부 클래스의 인용을 만들지 않고 직접 만들 수 있다.
익명 내부 클래스 접근 국부 변수
내부 클래스 접근 국부 변수는final이어야 합니다. 추가하지 않으면 jdk1.8이 기본적으로 추가됩니다.
사용하는 변수는 변할 때 아래의 방법을 사용할 수도 있고, 아래의 i를 시작할 때 정적으로 정할 수도 있다
for (int i = 0; i < 5; i++) {
final int finali = i;
new Thread() {
public void run() {
System.out.println(finali);
};
}.start();
}
다음은 내부류의 실현 기교를 소개합니다
public static void main(String[] args) {
Lam mLam = new Lam();
//
mLam.to(new Ligh() {
@Override
public void shin() {
System.out.println("on ");
}
});
//
class MyLam implements Ligh{
@Override
public void shin() {
System.out.println(" ");
}}
mLam.to(new MyLam());
}
}
interface Ligh {
void shin();
}
class Lam {
public void to(Ligh ligh) {
ligh.shin();
System.out.println("on");
}
}
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.