JAVA中的对象只能调用成员变量和方法吗?
Java中的对象可以调用局部变量吗?
(新手小白)
这跟作用域有关,比如你在某个花括号{}里定义了一个变量,就可以在这个花括号里的任何地方用它,就是再嵌套几个{}也行,但要是出了这个花括号,抱歉,这个变量,我不认识=.=
这个和作用域有直接关系,成员变量也是局部变量,不同的是它的作用域是相对于整个类而言的;而方法中的成员变量也是局部变量,但是由于 作用域的关系,被限制在这个方法体内,这个局部变量是相对于这个方法体而言的。
因此,Java对象能不能调用局部变量,需要看这个局部变量的作用域范围大小(简单来说就是这个变量直接在谁的{}中,和谁有直接关系)。
局部变量是方法里定义的,在对应的成员方法内可以访问,出了方法不可以。
对象可以调公开的方法和属性(不过按照封装原则,一般对象不会直接调用属性),公开的是用public修饰的,或者子类调用父类protected修饰的变量或方法。如果不用修饰符则表示是同一个包下面可以调用的。而private修饰的属性和方法无法通过对象直接调用,但可以使用反射进行调用。
公开的就能掉,不公开的自己内部玩