java如何在main()中访问私有静态实例变量
public class test
{
private static int a;
public static void main(string[] args)
{
modify(a);
system.out.print(a);
}
public static void modify(int a)
{
a++;
}
}
我想知道如何在main()方法中直接访问私有静态变量。 虽然可以直接从静态方法访问静态变量,但该变量是私有的,方法是main()。。请解释
# 1 楼答案
私有成员变量对该类的任何方法都是可见的,无论是静态的还是非静态的。静态方法的功能有限制,但这些限制与可见性规则是分开的
# 2 楼答案
因为main在同一个类中,所以可以访问私有变量
# 3 楼答案
但是 公开课考试 { 私人INTA; 公共静态void main(字符串[]args) { 系统出来印刷品(a); }
}
无法直接在main()中访问实例变量“a”。。。它会显示它是私人的。。。。。。但它如何访问私有静态
# 4 楼答案
你不介意
modif()
可以访问属性a
?那么main()
就完全一样了关于
main()
唯一特别的一点是,这个方法被用作应用程序的入口点。这种特殊性与main()
是静态的这一事实并不冲突顺便说一句,你的
modif()
方法并没有真正访问静态a
字段,因为它被参数a
隐藏另一件事,
a++
不会做任何事情,因为您只是在修改方法内参数a
的值int
是一个原语,是按值传递的,因此代码不会在方法范围之外更改a
的值我想你想要这样的东西:
# 5 楼答案
是的,它是静态的,但由于它与main方法位于同一个类中,所以可以通过类(包括main)中的静态方法访问它。。。实际上也是通过同一类中的常规方法
# 6 楼答案
如果将成员变量声明为private,这意味着只能从同一类中的方法访问它。您的
main()
方法实际上是同一类中的静态方法,因此它可以访问任何私有变量