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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

内部类可以访问外部类的局部变量,那么为什么不可以用内部类的形式来:从一个static方法内部发出对非static方法的调用?

2 个回复

倒序浏览
在Java中,方法的局部变量位于栈上,对象位于堆上。因为局部变量的范围被限制在该方法内,当一个方法结束时,栈结构被删除,该变量消失。但是,定义在这个类中的内部类对象仍然存活在堆上,所以内部类对象不能使用局部变量。除非这些局部变量被标识为最终的。
final int i=8;
就可以

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
注意: 当内部类中定义了静态的成员,该内部类必须是static修饰的

       当外部类中的静态方法访问内部类时,该内部类也必须是static修饰的

所以不存在static方法对非static方法的调用

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

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