![](/img/trans.png)
[英]Can a private member of a new object be accessed from inside a method in the class definition of that object?
[英]Private member of class accessed in main method
假设我们有以下代码:
public class TestScope {
private int a = 1;
public static void main(String[] args) {
TestScope ts = new TestScope();
ts.a = 6;
System.out.println(ts.a);
}
}
为什么在线: ts.a = 6;
我可以访问私有变量a
吗? 我认为私有成员无法在外部访问。 我不会低估这个例子。
静态方法仍被视为声明它们的类的一部分,因此可以访问私有方法/字段。
如果您在另一个类中具有main方法(或任何其他静态方法或实例方法),则实际上将无法访问a。
这是因为a
和main(String[])
都是类TestScope
的定义的TestScope
私有意味着只能在类定义内部访问变量或方法。 a是实例变量的事实并不意味着它不能被同一类中的静态公共方法访问。
如果public static void main(String[])
位于其他类中,则它将无法访问ts
的a
,因为a
被其他类隐藏了。
你不在外面,你在同一堂课。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.