日期:2014-05-20  浏览次数:20677 次

Java变量的作用域和访问控制
Java变量的作用域或者说生命周期与变量的访问权限控制有什么关系?比如说,类中声明的变量,其作用域应该是声明变量所在的代码块,但类外部的代码也可以访问该变量,这两者有什么关系?此外,类的成员方法中定义的变量需要进行访问控制吗?我的理解是,方法中定义的变量在方法外部是无法访问的,即使使用public修饰也不行,对吗?

------解决方案--------------------
方法中的变量不需要访问控制,作用域是该变量定义所在的代码块。成员变量的作用域是整个实例。
------解决方案--------------------
类、方法、成员变量和局部变量的可用修饰符
------解决方案--------------------
方法中变量的作用域就是这个方法啊,是不能加java的访问限制符的。至于lz说的,类中定义的变量在外面也能够进行访问,是因为设置的访问限制不一样,private的就不能在类的外部进行访问的,protected只能在同一个包和子类中进行访问,默认的能在包中进行访问,然后public的才能随便访问。
类成员变量的生命周期:类变量(static修饰的),是整个类的生命周期,基本上是整个程序的运行时间都在,实例变量的生命周期是和实例的生命周期相同的,当不再有这个实例的引用的时候,你也就无法访问其中的实例变量了。
------解决方案--------------------
方法中定义的局部变量存在于栈中,方法调用结束,局部变量的生命周期就结束了,都弹出栈了,你怎么访问呀