Java 内部类

来源:互联网 发布:自学漫画绘画基础软件 编辑:程序博客网 时间:2024/06/07 05:07

一个类可以声明包含另一个类,被包含的类成为内部类,直接包含内部类的类成为外部类,在内部类之外而且不包含内部类的类称为外围类

在外部类中调用内部类:

public class Outer{private static int i=1;private int j=10;private int k=20;public static void outer_f1(){}public void outer_f2(){}class Inner{                              //实例成员内部类中,可以访问外部类的所有成员//static int inner_i=100;             //实例成员内部类中不允许定义静态变量int j=10;int inner_i=i;void inner_f1(){int j=20;System.out.println(i);System.out.println(this.j);System.out.println(Outer.this.j); //在内部类中访问外部类与内部类同名的System.out.println(k);            //实例变量用外部类名.this.变量名outer_f1();outer_f2();}}public void outer_f3(){               //在外部类中调用内部类,可直接创建内部类的对象。Inner inner=new Inner();inner.inner_f1();}public static void outer_f4(){Outer out=new Outer();Inner inner=out.new Inner();        inner.inner_f1();        }public static void main(String[] args){outer_f4();}}

在外围类中调用内部类:

class Outer{private int i=10;class Inner{private int i=20;void print(){int i=30;System.out.println(i);System.out.println(this.i);System.out.println(Outer.this.i);}}Inner getInner(){return new Inner();}}public class Test{public static void main(String[] args){Outer out=new Outer();Outer.Inner inner=out.getInner();  //Inner是Outer的内部类,所以在类Testinner.print();                     //中必须用属性引用符来标识出内部类}}



原创粉丝点击