java中方法中的内部类不能访问该方法的局部变量,有什么道理吗?
3个回答
2013-08-26
展开全部
方法中的内部类不能访问该方法的局部变量是因为:
方法中声明内部类,目的只是由外部类来控制内部类的可见性,
将一个类放到一个方法当中去定义的时候,那么就限定了这个类的使用范围只能在方法的内部,
我们只是代码这样写而已,不要理解成为在这个方法内部有一个类,这个类是方法的一部分,
一调这方法类执行什么什么的.. 不是的,
我们只是代码这样写,目的是为了控制内部类的可见性,编译之后的结果,也会出现 外部类 和 内部类
各自的字节码class文件,这就说明内部类是一个独立的个体,他们就是两个类而已,他们各自都有自己
的成员变量和方法。
那么这个在方法中声明的内部类里面当然不能访问该方法的局部变量了,他们就是各自单独的两个类,
你在一个类里面可以通过该类引用访问他的成员变量或者方法,
但是方法中内部声明的局部变量的作用域只是这个方法内部,你无法访问这个局部变量,根本访问不了。
方法中声明内部类,目的只是由外部类来控制内部类的可见性,
将一个类放到一个方法当中去定义的时候,那么就限定了这个类的使用范围只能在方法的内部,
我们只是代码这样写而已,不要理解成为在这个方法内部有一个类,这个类是方法的一部分,
一调这方法类执行什么什么的.. 不是的,
我们只是代码这样写,目的是为了控制内部类的可见性,编译之后的结果,也会出现 外部类 和 内部类
各自的字节码class文件,这就说明内部类是一个独立的个体,他们就是两个类而已,他们各自都有自己
的成员变量和方法。
那么这个在方法中声明的内部类里面当然不能访问该方法的局部变量了,他们就是各自单独的两个类,
你在一个类里面可以通过该类引用访问他的成员变量或者方法,
但是方法中内部声明的局部变量的作用域只是这个方法内部,你无法访问这个局部变量,根本访问不了。
2013-08-26
展开全部
这相当于大圈套小圈,小圈只能认识他内部的东东,不会认识小圈外的东东,也就是说内部类在定义及实现时根本不知道他的圈外都定义了什么。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-26
展开全部
封装
用了private修饰字样的变量和方法不能被其它包,其它类调用.
用了private修饰字样的变量和方法不能被其它包,其它类调用.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询