gpt4 book ai didi

java - 访问另一个类中的变量返回 null

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

好吧,基本上我有三个类:

  • 主课
  • Apple(两个构造函数)
  • 馅饼

在我的主课中:

Apple apple = new Apple(String one, String two);

然后 Apple 类将它们全局设置:

public Apple()
{
//empty constructor
}
public Apple(String one, String two)
{
this.one = one;
this.two = two;
}

然后在 Pie 类中我做:

Apple apple = new Apple();

然后,如果我尝试从 Pie 类访问变量“一”或“二”,它们将返回 null。有人能帮我吗?

最佳答案

您正在创建两个不同的对象。如果您希望所有 Apple 对象都具有相同的参数,请将它们声明为 static。否则行为是正确的。

更具体地说,您在主类中创建的 apple 将在其参数中具有所需的值。第二个 apple,它是在 Pie 类中创建的(它是一个不同的对象,即 Apple 类的另一个实例),因为它构造时不带任何参数,默认构造函数(即 public Apple())将被调用,并且值将返回 null。

要查看 staticnon-static 变量之间的区别,请执行以下操作:

class Apple {
int var;
}

Apple apple1 = new Apple();
apple1.var = 10;
Apple apple2 = new Apple();
apple2.var = 5;
System.out.println(apple1.var+"\t"+apple2.var);

打印:

10     5

但是如果它是static你会得到

class Apple {
static int var;
}

Apple apple1 = new Apple();
apple1.var = 10;
Apple apple2 = new Apple();
apple2.var = 5;
System.out.println(apple1.var+"\t"+apple2.var);

输出将是:

5     5

有关何时使用 static 或不使用的更多信息,请查看:

Java: when to use static methods

关于java - 访问另一个类中的变量返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14737694/

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