内部类

什么是内部类

顾名思义就是把类放在某个范围的内部

  • 类可以放在包中
  • 类可以放在文件中,.java文件
  • 类可以放在类中(类里套类) (内部类)
  • 类可以放在方法中(方法中套类) (内部类)

类中放置内部类

  • 要使用内部类就需要在外部类中实例化内部类的对象,然后用对象打点调用内部类中的方法(可以在外部类中,调用内部类的私有属性和方法)

  • 通过内部类里的方法来操作内部类的数据

  • 在内部类中可以直接使用外部类中的所有属性和方法

  • 要使用内部类可以在外部类的外面实例化内部类的对象
    然后通过对象打点调用内部类的非私有的方法(同一个包内)

方法里套类:

  • 要使用方法中的内部类就必须在方法中,内部类定义的下面实例化内部类的对象,然后通过内部类的对象打点调用内部类中的方法和属性(包含私有的)
  • 内部类的作用域仅限于当前方法
  • 从内部类定义开始到结束,内部类的作用域就消失了
  • 在内部类中可以直接使用外部类中的属性和当前方法中的局部变量
  • 在外部类的外部不能使用外部类的方法中的内部类

InnerClass cannot be resolved to a tyoe
InnerClass 没有被定义

匿名内部类:(以上两种内部类的变种)

是内部类,没有类名,但有 {属性和方法}

比如

//Person 接口
//匿名内部类有对象名
Person p=new Person(){
	public void study(){
		//方法体
	}
	public void eat(){
		//方法体
	}
};
p.study();
p.eat();



//匿名内部类但没有对象名
new Person(){
	public void study(){
		//方法体
	}
	public void eat(){
		//方法体
	}
}.study();

匿名内部类的特点

  • 当前匿名内部类中实现的方法只能实现一次
  • 如果还想要其他的实现,就必须用匿名内部类重新new实现
  • 匿名内部类更适合提供长辈方法的实现
  • 而且实现只需要实现一次即可

匿名内部类和有名内部类的区别

  • 匿名内部类的方法只能实现一次,对象也只有一个
  • 而有名内部类也是实现一次,但可以new很多的对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值