Java语法学习笔记

嵌套类的学习

当static还有final还有内部类都搅和在一起就蒙了,所以学习之后分享一下自己的笔记。
看过一些大佬写的笔记,感觉还是挺有用的,在此分享一下:

static:

  1. static:加载类的时候,会给static分配一个地址,可以通过类名直接访问
  2. 非static 每创建一个实例就给他分配一次内存。

final:

  1. final可以修饰类,这样的类不能被继承。
  2. final可以修饰方法,可以继承,但是这样的方法不能被重写。

嵌套类有两种类型:静态的和非静态的,静态的嵌套类是应用了static修饰符的嵌套类,因为是静态的,所以只能通过对象访问包含类的非静态成员。也就是说,嵌套类不能直接引用包含类的非静态成员。因为这条限制,所以很少使用静态的嵌套类。

嵌套类最重要的类型是内部类,内部类是非静态的嵌套类,可以访问外部类的所有变量和方法,并且可以直接引用它们,引用方式与外部类的其他非静态成员使用的方式相同。

内部类可以访问外部类的所有成员,但是反过来不可以。内部类的成员只有在内部类的作用域内才是已知的,并且外部类不能使用。内部类中的属性和方法即使是外部类也不能直接访问,相反内部类可以直接访问外部类的属性和方法,即使private。这是因为在创建外部类时,内部类会自动捕获一个外部类的引用,所以内部类可以访问外部类元素。

匿名内部类:

  1. 匿名内部类是没有访问修饰符的。
  2. 匿名内部类必须继承一个抽象类或者实现一个接口
  3. 匿名内部类中不能存在任何静态成员或方法
  4. 匿名内部类是没有构造方法的,因为它没有类名。

静态内部类:

  1. 静态内部类的创建不需要依靠外部类,可以直接创建
  2. 静态内部类只能访问外部类的静态成员变量和方法,不能访问外部类的非静态成员变量和方法
  3. 非静态内部类中可以调用外部类的任何成员,不管是静态的还是非静态的
  4. 在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值