- 匿名
- public class TestAnonymousInner{
- public static void main(String... args){
- Tool t = new Tool();
- IA ia = t.getIA();
- t.m(new IA(){
- public void print(int i){
- for(int i=0; i<a; i++){
- System.out.print('*');
- }
- System.out.println();
- }
- });
- }
- }
- interface IA{
- void print(int i);
- }
- class Tool{
- public IA getIA(){
- return new IA(){
- public void print(int i){
- System.out.println(i);
- }
- };
- }
- public void m(IA ia){
- ia.print(20);
- }
- }
- 局部(方法内)
- public class TestLocalInner{
- public static void main(String... args){
- Outer outer = new Outer();
- outer.method(5);
- }
- }
- class Outer{
- private int c = 30;
- public void method(final int i){
- final int a = 10;
- class Inner{
- public Inner(){
- System.out.println("construct Inner..");
- }
- void print(){
- System.out.println("Inner.print()");
- System.out.println(a);
- System.out.println(i);
- System.out.println(c);
- }
- }
- Inner in = new Inner();
- in.print();
- }
- }
- 成员(方法外)
- public class TestLocalInner{
- public static void main(String... args){
- Outer outer = new Outer();
- outer.method(5);
- }
- }
- class Outer{
- private int c = 30;
- public void method(final int i){
- final int a = 10;
- class Inner{
- public Inner(){
- System.out.println("construct Inner..");
- }
- void print(){
- System.out.println("Inner.print()");
- System.out.println(a);
- System.out.println(i);
- System.out.println(c);
- }
- }
- Inner in = new Inner();
- in.print();
- }
- }
- 静态(成员特例)
- public class TestStaticInner{
- public static void main(String... args){
- Outer.Inner in = new Outer.Inner();
- //in.print();
- in.print(100);
- System.out.println(Outer.Inner.c);
- }
- }
- class Outer{
- private int a = 10;
- private static int b = 20;
- public static class Inner{
- private int b = 30;
- public static int c = 200;
- public Inner(){
- System.out.println("construct Inner ...");
- }
- public void print(){
- //System.out.println(a); //Error,必须使用静态属性或方法
- System.out.println(b);
- }
- public void print(int b){
- System.out.println(b);
- System.out.println(this.b);
- System.out.println(Outer.b);
- }
- }
- }
内部类innerClass
最新推荐文章于 2025-02-05 08:15:04 发布