内部类里static的问题

首先内部类分为4种

定义在外部类的方法中的局部位置上

1.局部内部类

2.匿名内部类

定义在外部类的成员位置上

1.成员内部类

2.静态内部类

上面的两种虽然是类,基本上满足类的语法。但是它同时地位等同于局部变量,因为定义在方法中的局部位置。所以它不可以使用访问修饰符(其实也就是public),像是你不能在一个函数里,定义一个局部的public int变量。

也不能使用static,因为static是用在外部类的方法和属性上的。既然局部类地位等同于局部变量了,那这个类不能是static的,同时类里的成员(属性和方法)也就更不能是static了,它们只能用final(因为它的地位是局部变量,局部变量也能用final)和abstract(因为它同时仍然是个类)修饰。

而以下两种  成员位置的类  可以使用static关键字,听起来很奇怪,不是static只能修饰方法和属性吗?但是此时的类正是处于外部类的属性位置上的,它不同于前两种处于外部类的方法中的局部变量的位置。所以其实是这么理解的,static只能用在地位是属性和方法的地方,不能用在地位是局部变量的地方。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值