前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 的嵌套类(内部类和静态嵌套类)

Java 的嵌套类(内部类和静态嵌套类)

作者头像
用户7886150
修改2021-04-26 17:42:36
8600
修改2021-04-26 17:42:36
举报
文章被收录于专栏:bit哲学院

参考链接: Java嵌套静态类

嵌套类 

 Java允许在一个类定义另一个类,称为嵌套类 (Nested Classes),类似下面的形式 

 class OuterClass {

    ...

   class NestedClass {

       ...

   }

}

复制代码

 内部类与静态嵌套类 

  嵌套类有静态和非静态两种,其中静态的称为静态嵌套类(static nested classes),非静态的称为内部类(Inner Classes)  一个嵌套类是包含它的外部类的一个成员,内部类能够访问外部类的其他成员,而静态嵌套类没有访问外部类的权限  作为外部类的成员,嵌套类能被声明为private, public, protected或者包内访问的访问权限。 

   静态嵌套类 

 静态嵌套类与静态类里面的方法类似,一个静态嵌套类不能直接调用外部类里面的实例变量或者方法,它只能通过对象引用访问他们。

 Java官方文档的解释: 

  Note: A static nested class interacts with the instance members of its outer class (and other classes) just like any other top-level class. In effect, a static nested class is behaviorally a top-level class that has been nested in another top-level class for packaging convenience. 

  一个静态嵌套类与其他任何 top-level class 一样和他的外部类的其他成员相互作用。实际上,为了封装的便利性,一个静态嵌套类的作用机制和其他被封装的 top-level class相同。 

 由于静态嵌套类是通过外部类名来访问的: 

 OuterClass.StaticNestedClass 

 所以可以通过以下的语法来创建静态嵌套类的对象: 

 OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); 

 至于内部类,因为它有权限访问外部类的成员,所以必须依赖一个外部类的实体对象,内部类自身又依赖于实例对象,所以内部类自身不能包含任何静态成员变量 (static)。但是内部类可以包含静态常量 static final 类型的成员。 

转载于:https://juejin.im/post/5c56b4c1f265da2daa3129bd

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档