gpt4 book ai didi

java - 在静态方法中访问类的静态成员

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:29 25 4
gpt4 key购买 nike

我在 java 中有这段代码,我是用 netbeans 编写的

class sample
{
public static int x;
public int y;
sample()
{
x=0;
}
}
public class JavaApplication1 {

/**
* @param args the command line arguments
*/
sample cchild=new sample();

public static void main(String[] args) {
// TODO code application logic here
sample.x=0;
cchild.x=9; // here error
}

解释样本:

我对 sample 类进行组合,类 sample 包含静态变量 x ,但是当我尝试访问静态变量时 x 来自静态方法中的实例 cchild 编译器会出错,所以在java中我不能访问静态方法中的对象,即使实例包含静态成员???

最佳答案

您首先需要了解的是 static成员属于 class而不是实例,因此可以直接访问而无需创建对类实例的引用。以下语句访问 static成员(member)x在类里面sample其中 sample是类名,xstatic成员 sample :

sample.x=0;

另一方面,以下语句不起作用,因为引用 cchild不是 static因此是一个实例字段 while mainstatic方法。无法在 static 中访问实例字段不引用类实例的方法。

cchild.x=9

要使上述语句生效,您可以声明 cchild作为staticJavaApplication1或创建 JavaApplication1 的实例在 main如下图:

JavaApplication1 instanceOfJApp = new JavaApplication1();
instanceOfJApp.cchild.x=9;

关于java - 在静态方法中访问类的静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41465310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com