java内部类=成员+类

在Java中有一种特殊的类,既具有一个完整类的特点,又是另一个类(外部类)的成员,这样的类叫做内部类。本文从两个方面来讲解内部类,1 内部类是外部类的(类)成员;2 内部类是一个具备普通类所有特点的类,并把这两点叫做内部类的 “二象性” (参考初中物理中 “光的波粒二象性”)

 

类象

代码1

public class Outer{

	private class Inner{
		void innerPrint(){
			System.out.println("inner");
		}
	}

	private Inner inner = new Inner();
	
	public void outerPrint(){
		inner.innerPrint();
	}
}

启动代码1的main方法

public class Main{
		public static void main(String[] args){
			Outer outer = new Outer();
			outer.outerPrint();
		}
}

代码1 中Outer类的 outPrint方法在访问 Inner类的 innerPrint 方法时必须首先创建Inner类的对象,说明 Inner 在这里的 “象” 更倾向于一个类。因为如果把上述 Inner 独立出来再访问 print 方法的话,同样需要先创建 Inner 类对象。

 

成员象

 

代码2

public class Outer{
	
	Inner inner = new Inner();
	
	public class Inner{
		void innerPrint(){
			outerPrint();
		}
	}
	
    private void outerPrint(){
            System.out.println("outer");
    }
}

启动代码2的mian方法

public class Main{
		public static void main(String[] args){
			Outer outer = new Outer();
			outer.inner.innerPrint();
		}
}

代码2 与代码1的调用方向刚好相反。代码2 说明 Inner 类的 “象” 更倾向于 Outer 类的成员。Inner类以Outer 类成员的身份调用了Outer类的另一个成员outerPrint,如果 Inner类在这里不充当Outer类的成员,则无法实现对Outer类成员outerPrint的调用。

二象性的解释

内部类的二象性与内部类密不可分,只要一个内部类存在,它的二象性就与之相伴。我们能从一段代码或一个角度分析出某一象,是因为在这段代码中相应的象体现的明显些,另一象好像没有出现实际上它一直存在。

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值