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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄云南 中级黑马   /  2012-3-11 02:46  /  1911 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当内部类定义在方法中时就不能在该内部类中有static修饰的方法成员,为什么?

3 个回复

倒序浏览
非静态内部类不能声明本类的static成员, 成员内部类实例化的时候必须先实例化他的外围类才能实例化成员内部类。只有一个静态的内部类,才可以声明一个static成员,,静态内部类可以访问外围类的静态方法、成员(包括private static的成员).静态内部类实例化的时候不必先实例化外围类,可以直接实例化内部类。

回复 使用道具 举报
静态只能修饰成员! 你的内部了都放在局部上了  不可以使用静态修饰的啊 哥们 你的内部类都放在局部上了  内部类的方法不可能是静态的啊 仔细看看视频
回复 使用道具 举报
首先我们要知道“static”是成员修饰符,如果一个成员内部类中定义了静态的成员。那么这个内部类也必须是静态的。但是如果这个内部类定义在了函数里,那么这个内部类就变成了局部内部类了,我们知道static是修饰成员的。不能修饰局部成员。所以局部内部类不可以用static修饰。如果我们在局部内部类中定义一个static,那么内部类也必须是static的。所以,这样就矛盾了,所以局部内部类中不能定义static成员。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马