java非静态类外部类内部类使用

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注