1. Die Rolle innerer Klassen
1. Innere Klassen können innere Klassen in äußeren Klassen verbergen und nicht zulassen, dass andere Klassen im selben Paket darauf zugreifen.
2. Die Methoden der inneren Klasse können direkt auf alle Daten der äußeren Klasse zugreifen.
3. Bequemer zu bedienen.
2. Klassifizierung interner Klassen:
1. Mitglied interne Klasse (als Mitglied der externen Klasse)
2 3. Methode innere Klasse (die innere Klasse ist innerhalb einer Methode der äußeren Klasse)
4. Anonyme innere Klasse
1 Verwendung innerer Klassen:
Laufergebnis:
<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>
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(); //调用外部类的方法 } }
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(); //调用静态内部类的方法 } }