社区
Java
帖子详情
Static Nested Class和Inner Class的不同
maoyating111
2011-10-28 01:36:50
我想Static Nested Class和Inner Class的区别,不要太详细,只要能大概区别它们俩就行啦。谢谢咯
...全文
679
2
打赏
收藏
Static Nested Class和Inner Class的不同
我想Static Nested Class和Inner Class的区别,不要太详细,只要能大概区别它们俩就行啦。谢谢咯
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
maoyating111
2011-10-28
打赏
举报
回复
[Quote=引用 1 楼 gavin_ts 的回复:]
Nested Class 一般是C++的说法,Inner Class 一般是JAVA的说法。
Nested class分为静态Static nested class 的和非静态的 inner class,
静态的Static nested class是不可以直接调用它的外部类enclosing class的,但是可以通过外部类的引用来调用,就像你在一个类中写了main方法一样。 ……
[/Quote]谢谢了。不过,你说的太详细了,我只想要归纳几点就ok啦...
我嘞个去
2011-10-28
打赏
举报
回复
Nested Class 一般是C++的说法,Inner Class 一般是JAVA的说法。
Nested class分为静态Static nested class 的和非静态的 inner class,
静态的Static nested class是不可以直接调用它的外部类enclosing class的,但是可以通过外部类的引用来调用,就像你在一个类中写了main方法一样。
非静态类inner class 可以自由的引用外部类的属性和方法,但是它与一个实例绑定在了一起,不可以定义静态的属性、方法 。
Inner Class(内部类)定义在类中的类。
Nested Class(嵌套类)是静态(static)内部类。1. 要创建嵌套类的对象,并不需要其外围类的对象。 2. 不能从嵌套类的对象中访问非静态的外围类对象。
Anonymous Inner Class (匿名内部类)匿名的内部类是没有名字的内部类。
匿名的内部类不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
嵌套类可以作为接口的内部类。正常情况下,你不能在接口内部放置任何代码,但嵌套类可以作为接口的一部分,因为它是static 的。只是将嵌套类置于接口的命名空间内,这并不违反接口的规则。
静态方法是不能继承的,因为它是静态的,所谓静态当然是时间和空间的静止喽.
然后final是java里面定义的,不能被重载的函数。
java里面的函数如果没有特别标识,只要在子类中定义了一个同名的函数,那么父类的函数就被重载掉了。如果new一个子类的对象给父类再调用这个函数,就是调用子类的了。只有new的是父类的调的才是父类的。
java里面没有virtual的说法,因为不是final或static就是virtual的。
abstract是虚函数,自然不可能是final的,同时如上所说,static是不能被重载只能被覆盖的,所以也不可以是abstract的 。
在使用匿名内部类时,要记住以下几个原则:
·匿名内部类不能有构造方法。
·匿名内部类不能定义任何静态成员、方法和类。
·匿名内部类不能是public,protected,private,static。
·只能创建匿名内部类的一个实例。
·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
匿名类和内部类中的中的this :
有时候,我们会用到一些内部类和匿名类。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。 这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。
Static
Nested
Class
和
Inner
Class
的
不同
博客介绍了
Static
Nested
Class
(嵌套类,一般是C++说法)和
Inner
Class
(内部类,一般是JAVA说法)的
不同
。包括能否拥有静态成员、访问外部类成员的区别、创建时的区别,还提到
static
修饰的静态内部类在类加载时会被JVM放到方法区,供本类及实例公用。
C#面:
Static
Nested
Class
和
Inner
Class
有什么
不同
本文详解C#中
Static
Nested
Class
与
Inner
Class
的核心差异:前者用
static
修饰,不持外部类引用,可独立实例化,无法访问外部类非静态成员;后者为非静态,隐式持有外部类引用,必须依托外部类实例创建,能访问所有外部类成员,适用于逻辑紧密耦合场景。
Static
Nested
Class
和
Inner
Class
的
不同
本文详细比较了Java中的内部类和静态内部类,包括实例化方式、对外部类成员的访问、关联性、生命周期以及各自的典型使用场景。,
Java
51,408
社区成员
86,090
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章