java中的内部类初识
定义:将AClass类的定义放在BClass类的定义内部,那么AClass就是内部类,而BClass就是对应的外部类。
内部类的使用与普通类一样。但是,如果想从外部类的非静态方法之外的任意位置创建内部类的对象,那么必须像在main方法中那样,具体地指明这个对象的类型:格式为:OuterClassName.InnerClassName
举例说明:
public class TestInnerClass {
class InnerClass {
private int i;
public InnerClass() {
this.i = 5;//这里的this代表的是InnerClass
}
public int getI() {
return i;
}
}
private static TestInnerClass _instance;
private TestInnerClass() {
}
/**
* 在静态方法中创建内部类对象
* 在创建内部类对象之前,必须实例化外部类
* @return
*/
public static TestInnerClass getInstance() {
if (null == _instance) {
_instance = new TestInnerClass();
}
return _instance;
}
public static InnerClass getInnerClass()
{
return _instance.new InnerClass();
}
/**
* 在非静态方法中创建内部类对象
* 直接使用内部类名称即可创建内部类对象
* @return
*/
public InnerClass getSecInnerClass()
{
return new InnerClass();
}
/**
* @param args
*/
public static void main(String[] args) {
//实例化内部类的方法
TestInnerClass ti = new TestInnerClass();
TestInnerClass.InnerClass inn = ti.new InnerClass();
System.out.println(inn.getI());
}
}