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());
}
}



原文地址:https://www.cnblogs.com/linxyz/p/2398091.html