您的位置:首页 > 编程语言 > Java开发

java 基础(内部类详解)

2015-11-26 23:56 495 查看
</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">

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: