A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 graspDN 于 2013-8-11 19:23 编辑

如果Java类需要实例化才能使用这句话正确,求解释静态内部类是怎么回事?实例化了么?过程是怎样的?
求解析,谢谢~

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

5 个回复

倒序浏览
静态内部类是存放在静态共享区中,可以使用外部类名直接引用该类.当然要用该静态内部类中的东西,有时候也要创建该内部类对象的.如果静态内部类中的方法也是静态的,就可以直接引用.如果你使用静态内部类的对象来调用里面的方法.就会实例化到堆中.不然是不会实例化的.存在静态共享区中

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 哥们,你这标点有点小

查看全部评分

回复 使用道具 举报
类的实例化通常是指创建类的实例对象,而类的静态成员不需要实例化也可以访问。比如平时常用的一些工具类,Arrays,Collections,Math之类的,都不用创建对象就能使用,事实上想创建也创建不了~

静态内部类有点相当于外围类的静态成员,普通的内部类想要创建对象是需要通过外围类对象来创建的,并且和外围类对象具有着紧密的联系,其内部包含了一个外围类对象的隐式引用,可直接访问外围类的成员。而静态内部类创建时不需要外围类对象,但于外围类也失去了这种紧密联系。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
静态类不需要创建对象可以直接使用
回复 使用道具 举报
static内部类具备了static的特性,只能直接访问外部类中的static成员,出现了访问局限
在外部其他类如何访问静态(static)内部类的非静态成员呢?
new Outer.Inner().fuction();//通过外部类下的静态类的对象访问内部了的成员
在外部其他类如何访问静态(static)内部类的静态成员呢?
Outer.Inner.fuction();//直接外部类名.内部类名.调用
注意
当内部类中定义了静态成员,那么该内部类必须是static的
当外部类的静态的方法要访问内部类时,内部类也要是静态的
回复 使用道具 举报
谢孔营 发表于 2013-8-10 23:28
静态内部类是存放在静态共享区中,可以使用外部类名直接引用该类.当然要用该静态内部类中的东西,有时候也要 ...

谢啦。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马