是否可以访问私有静态变量和方法?
Posted
技术标签:
【中文标题】是否可以访问私有静态变量和方法?【英文标题】:Is it possible to access a private static variable and method? 【发布时间】:2021-11-24 02:09:25 【问题描述】:我们可以通过编写 className.propertyName 来访问一个类的静态属性,但是如果该属性(方法/变量)是私有的,那么是否可以访问该属性?
例如,
class A
static int a = 50;
public class HelloWorld
public static void main(String []args)
System.out.print("A.a = ");
A obj = new A();
System.out.println(A.a);
这将打印 A.a = 50
但是,如果我将 static int a = 50;
更改为 private static int a = 50;
,那么我可以通过何种方式访问该变量吗?
【问题讨论】:
只能通过getter方法。private
表示您将无法从外部访问它。
【参考方案1】:
private
关键字意味着它只在类中可见。因此,在您的示例中,这意味着您无法像A.a
那样访问它。您可以做的是创建一个返回 a
的 public
方法。
private static int a = 5;
public static int getA ()
return a;
然后您可以静态调用此方法并检索private static
字段。
// ...
System.out.println(A.getA());
但通常private static
字段很少使用。
我还想补充一点,这里一般使用static
。
当您实际创建类 A
的实例时,static
修饰符是多余的。
【讨论】:
以上是关于是否可以访问私有静态变量和方法?的主要内容,如果未能解决你的问题,请参考以下文章