1. 내부 클래스의 역할
1. 내부 클래스는 더 나은 캡슐화를 제공하며 동일한 패키지에 있는 다른 클래스가 내부 클래스에 액세스하는 것을 허용하지 않습니다.
2. 내부 클래스의 메서드는 외부 클래스의 모든 데이터에 직접 액세스할 수 있습니다.
3. 더욱 편리해졌습니다.
2. 내부 클래스 분류:
1. 멤버 내부 클래스(외부 클래스의 멤버)
2. 정적 내부 클래스
3. 메소드 내부 클래스(내부 클래스는 외부 클래스의 메소드 내부에 있음)
4. 익명 내부 클래스
3. 내부 클래스 사용
1. 내부 클래스 사용법:
<span style="font-family:Microsoft YaHei;font-size:18px;">package com.bluesky; public class Outer { private int a =99; //定义外部类的数据成员 public class Inner{ //该内部类作为外部类的一个成员 int b =88; //内部类的数据成员 public void test(){ System.out.println("访问外部类的a:"+a); //访问外部类的数据成员 System.out.println("访问内部类的b:"+b); //访问内部列的数据成员 } } public static void main(String[] args) { Outer o = new Outer(); //先生成一个外部类的对象实例 Inner in = o.new Inner(); //产生一个内部类的对象实例 in.test(); //调用内部类的方法 } }</span>
실행 결과:
2. 정적 내부 클래스 사용
package com.bluesky; public class MethodOuter { public void test(){ final int a=12; int b=100; class Inner{ //该内部类定义在外部类的方法的内部 public void print(){ int v=56; System.out.println("访问外部类中的常量a:"+a); System.out.println("访问外部类中的b:"+b); System.out.println("访问内部类中的c:"+v); } } Inner in = new Inner(); //在方法体里面先产生内部类的对象实例 in.print(); //在外部类的方法里面调用内部类的方法 } public static void main(String[] args) { MethodOuter mo = new MethodOuter(); //产生外部类的对象实例 mo.test(); //调用外部类的方法 } }
실행 결과:
3. 정적 내부 클래스 사용:
package com.bluesky; public class StaticOuter { private static int a=99; static int b =78; public static class Inner{ //定义静态内部类 static int a=2; public void test(){ System.out.println("访问外部类的b:"+b); System.out.println("访问外部类的a:"+StaticOuter.a); System.out.println("访问内部类的a:"+a); } } public static void main(String[] args) { Inner in = new Inner(); //因为是静态的,所有可以直接产生对象实例 in.test(); //调用静态内部类的方法 } }
실행 결과:
익명 내부 클래스는 나중에 배치됩니다. . 계속 지켜봐 주시기 바랍니다!
위 내용은 Java에서 내부 클래스를 사용하는 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!