Java的内部类

什么是内部类

内部类–在java类中再创建一个类。
内部类分三类:普通内部类、匿名内部类与嵌套类
内部类的作用邓嘉怡C++里的“多重继承”。内部类使得一个类可以拥有继承多个具体或抽象类的能力。

普通内部类

普通内部类的创建过程

public class A{
	private int mya=11;
	private int aa=12;
	public int value(){return mya;}
	
	//创建内部类	
	class B{
			private int myb=22;
			public int bvalue(){return myb;}
			public int geta(){return aa;}
	}		
}

在创建的内部类中,内部类自动地就拥有对外围类所有成员的访问权(无论是private 或 public ,方法或字段)。
当某个外围类对象创建一个内部类时,此内部类对象会秘密地捕获一个指向那个外围类对象的引用,然后再访问此外围类对象成员时,就是用那个引用来选择外围类的成员。

普通内部类的作用

1、实现了某类型接口,可以创建并返回对其的引用
2、要解决一个复杂问题,想创建一个类来辅助你的解决方案,但是又不希望这个类是公共可用的

匿名内部类

public class A{
	public Contents contents(){
		return new Contents(){
			private int i=11;
			public int value(){return i;}
		};
	}
}

在例子中,contents()方法将返回值的生成与表示这个返回值的类的定义结合在一起。这样创建一个集成自Contents的匿名类的对象,通过new表达式返回的引用被自动向上转型为对Contents的引用。
也就是说,使用匿名内部类,可以创建一个想要的类的子类。
并且在定义一个匿名内部类时,希望它使用一个再其外部定义的对象,那么他的参数引用就必须为final

嵌套类

在普通内部类中加static关键字,这样把类存放在static区中,就不再依赖外部类了,同时也不可以再访问外围类的成员了。相当于new一个新的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值