java에서 내부 클래스 사용에 대한 상세한 설명
2883 단어 java 내부 클래스
• 내부 클래스는 외부 클래스의 구성원을 직접 방문할 수 있으며, 사유를 포함한다.액세스 형식: 외부 클래스 이름.this • 외부 클래스가 내부 클래스에 접근하려면 내부 클래스 대상을 만들어야 합니다.내부 클래스는 구성원의 위치에서 구성원의 수식자에 의해 수식될 수 있다..
public class InnerClassDemo1 {
public static void main(String[] args){
Outer ou =new Outer();
ou.method();// 4 3
Outer.Inner oi =new Outer().new Inner();
oi.function2();
}
}
class Outer{
private int x=3;
class Inner{
int x=4;
void function1(){
System.out.println(x);
System.out.println(Outer.this.x);
}
void function2(){
Outer.this.method();
}
}
public void method(){
Inner in =new Inner();
in.function1();
}
}
정적 내부 클래스• 내부류는 정적 구성원을 정의하고 내부류는 정적이어야 한다..
/*
: , 。
*/
class InnerClassDemo2
{
public static void main(String[] args)
{
new Outer.Inner().function();//
}
}
class Outer
{
private static int x=5;
static class Inner//
{
void function()
{
System.out.println("inner:"+x);
}
}
}
부분 내부류• 내부 클래스가 국부적으로 정의되어 있을 때 외부 클래스의 구성원에게 직접 접근할 수 있다.국부 변수에 접근하려면final로 수식되어야 합니다.
/*
: , 。
, final
*/
class InnerClassDemo3
{
public static void main(String[] args)
{
Outer out =new Outer();
out.method(7);
}
}
class Outer
{
int x=3;
public void method(final int a)
{
class Inner
{
void function()
{
System.out.println(a);
}
}
new Inner().function();
}
}
익명 내부 클래스• 익명 내부 클래스는 내부 클래스의 약자 형식이다.익명 내부 클래스의 전제: 내부 클래스는 하나의 클래스를 계승하거나 인터페이스를 실현해야 한다.익명 내부 클래스는 구조 함수를 만들 수 없습니다
/*
1.
2. 。
3. :new (){ }
*/
class InnerClassDemo4
{
public static void main(String[] args)
{
Demo d=new Demo()
{
void show()
{
System.out.println(" show ");
}
void method()
{
System.out.println(" method ");
}
}.show();
d.method();
}
}
abstract class Demo
{
abstract void show();
}