Java中的内部类

顾名思义,内部类就是定义在某个类内部的另一个类。

内部类可以声明成public或者private。 当内部类声明成public 或者private时,对其访问的限制与成员变量和成员方法完全相同。

内部类的声明格式:

class Outer{
	private String info = "Hello world!!";
	class Inner{
		public void print(){
			f();                        //直接访问外部的私有方法;   
			System.out.println(info);   //直接访问外部类私有属性;
		}
	}
	
	private void f() {
		System.out.println("private method int outer.");
	}
	
	public void fun() {
		new Inner().print();
	}
}

public class InnerClassDemo01 {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Outer().fun();
	}
}

 内部类的优势在于可以方便的访问外部类的私有属性。 

 

还可以使用static声明内部类。用static声明的内部类变成了外部类,但是用static声明的内部类不能访问非外部类的非static属性。

 

内部类除了可以通过外部类访问,还可以直接在其他类中进行调用,调用格式为:

外部类.内部类 内部类对象 = 外部类实例.new 内部类();

 

 

还可以在方法中定义一个内部类,但是在方法中定义的内部类不能直接访问方法中的参数,如果方法中的参数想要被内部类所访问,则参数前必须加上final关键字。

 

posted on 2015-08-29 15:29  aituming  阅读(188)  评论(0编辑  收藏  举报