java 基础(内部类详解)

来源:互联网 发布:高铁票ps软件 编辑:程序博客网 时间:2024/05/05 22:23

</pre><pre name="code" class="java">/* 内部类:定义在累一个类中的类 内部类的访问规则: 1.内部类可以直接访问外部类中的成员,包括私有;格式:外部类.this 2.外部类要访问内部类必须建立对象; 静态内部类: 访问格式: 1.当内部类定义在外部类的成员位置上时,而非私有,可以在外部其他类中, 直接建立内部类对象;格式:内部类名 变量=外部类对象.内部类对象-(Inner Inner2=new Outer.Inner();); 2.当内部类在成员位置上,就可以被成员修饰符修饰 例如: private:封装 static:具备static特性: 1.当被Static修饰时,内部类只能访问外部类中的静态成员; 2.在外部类中直接访问static内部类的非静态成员(new.Outer.Inner().f();); 访问静态成员(Outer.Inner.f()); 注意:当内部类定义了静态成员,该类必须是静态的; 当外部类中有静态方法访问内部类时,内部类也必须是静态的; 内部类定义规则: 当描述事物时,事物的内部还有事物,该事物用内部类来描述。 class Body { private class heart {public void show() { new heart(); } }*/class Outer{private int x=3; static class Inner//封装(private)、静态内部类{int x=4;static void f(){int x=5;System.out.println(x);//x打印5;this.x打印4;Outer.this.x打印3}}void m()//访问内部类成员的暴露模块{Inner in =new Inner();in.f();}class Inner3{void show(){Inner in= new Inner();System.out.println("int3");}}}/*匿名内部类: 匿名内部类其实就是内部类的简写;  定义匿名内部类的前提: 内部类必须是继承一个类或者实现接口 */class Ni{int y=0;void t(final int l)//不能访问变量{int k=0;class Inner{void f(){System.out.println(l);}}new Inner().f();}}class MI{public static void main(String[] args){//Outer.Inner.f();//访问静态类的静态成员//new Outer.Inner().f();访问非静态类的静态成员//Outer out= new Outer();//out.m();通过m方法访问内部类//Outer.Inner in=new Outer().new Inner();//直接访问内部类中成员(不常用,一般将内部类封装(即私有化)}}

</pre><pre name="code" class="java"> 


0 0
原创粉丝点击