> Java > java지도 시간 > 본문

자바 내부 클래스, 익명 내부 클래스

高洛峰
풀어 주다: 2016-12-15 12:51:58
원래의
1547명이 탐색했습니다.

Java 내부 클래스는 4가지 유형으로 구분됩니다.

1) 정적 내부 클래스: 정적 클래스를 클래스 내부에 넣는 것을 정적 클래스라고 합니다.

특징: 외부 세계에 접근 가능: 정적 메서드/정적 속성, 인스턴스 리소스에 접근 불가

사례:

import inner.Foo.Koo;//반드시 import the Koo 정적 내부 클래스

public class Demo9 {

public static void main(String[] args) {

Koo koo = new Koo();

koo.add ();

}

}

class Foo{

int a = 12;//인스턴스 변수

static int aa =16;

public static void show(){ System.out.println("static method");}

//static 내부 클래스

static class Koo {

public void add(){

// System.out.println(a) 정적 내부 클래스는 인스턴스 리소스(변수)에 액세스할 수 없습니다.

System .out.println(aa);

show();//정적 내부 클래스는 외부 세계의 정적 속성과 메서드에 액세스할 수 있습니다

}

}

}

2) 멤버 내부 클래스: 클래스 내부에는 정적 수정 없이 클래스를 직접 정의합니다. 멤버 내부 클래스 객체 생성 시 외부 클래스를 먼저 생성해야 합니다.

특징: 멤버 내부 클래스, 외부 속성 및 메소드에 접근 가능

사례:

import inner.Foo1.Koo1;

public class Demo10 {

public static void main(String[] args) {

//Koo1 koo1 = new Koo1(); 멤버 내부 클래스를 생성하려면 먼저 외부 클래스 객체를 생성해야 합니다

Foo1 foo1 = new Foo1();

//기억하기(필기시험)

Koo1 koo1 = foo1.new Koo1();

koo1.show( );

}

}

class Foo1{

int a =12;

static int aa = 16;

class Koo1{

void show(){

System.out.println(a+" , "+aa);

}

}

}

3) 부분 ​​내부 클래스: 거의 사용되지 않음, 메소드 내에서 클래스를 정의하는 것이 특징(엔터프라이즈 개발에서는 거의 사용되지 않음)

특징: 로컬 내부용 클래스, 외부 변수를 참조할 때 변수는 final

으로 수정해야 합니다. 사례:

public class Demo11 {

public static void main(String[ ] args) {

final int a = 12;

final int b = 13;

class Foo2{

int c = 16;

public int add(){

//로컬 내부 클래스에서 외부 변수가 참조되는 경우 해당 변수는 final

return a+b+c;

}

}

Foo2 foo2 = new Foo2();

System.out.println(foo2.add());

}

}

4) 익명 내부 클래스: 원래 클래스의 상속

특징: 인터페이스/추상 클래스와 조합하여 사용

예: 새 클래스 이름/인터페이스 이름 {

재정의 방법

};

케이스:


public class Demo1 {

public static void main(String[] args) {

Koo koo = new Koo(){

// 메소드를 재정의할 수 있습니다

public String toString() {

return "Koo 객체가 생성되었습니다";

}

// 익명 내부 클래스에서는 새 메서드를 생성할 수 없습니다

/ / public void show(){

// System.out.println("liu");

// }

};

시스템 .out.println(koo);

// koo.show();

}

}

class Koo{

}



더 많은 Java 내부 클래스, 익명 내부 클래스 관련 글을 보시려면 PHP 중국어 홈페이지를 주목해주세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!