包含了非静态内部类和使用内部类,有以下知识点:
1.非静态内部类访问外部类成员、
2.外部类访问内部类的实例属性
3.在外部类以外的地方来定义内部类
4.在外部类以外的地方创建非静态内部类实例

看Outer.java源代码
[code lang="java"]
package com.daozhao;

public class Outer {
public int outProp=9;
class Inner{
private int inProp=5;
public void accessOutProp(){
//非静态成员访问外部类的成员
System.out.println("外部类成员是" + Outer.this.outProp);
}
}
public void accessInnerProp(){
//外部糊涂不能直接访问非静态内部类的实例属性
//System.out.println(inProp);
//如需访问,得显式创建内部类对象
System.out.println("内部类的成员是" + new Inner().inProp);
}

public void showOut(){
System.out.println("外部类的成员是" +outProp);
}

public static void main(String[] args){
//执行下面的代码,只创建了外部对象,还未创建内部对象
new Outer().accessInnerProp();

//添加showOut方法输出外类成员
new Outer().showOut();
//在外部类以外使用非静态内部类
Outer.Inner i=new Outer().new Inner();
i.accessOutProp();
}
}
[/code]


发表评论