gpt4 book ai didi

java - Java 中的静态属性

转载 作者:行者123 更新时间:2023-11-29 07:50:52 26 4
gpt4 key购买 nike

public class Ride {
public static String name;
public static int ticketsRequired;
public static float heightRequirement;

public Ride(String name, int ticketsRequired, float heightRequirement) {
this.name = name;
this.ticketsRequired = ticketsRequired;
this.heightRequirement = heightRequirement;
}

public static void main(String args[]) {
Ride coaster, tosser;
coaster = new Ride("Roller Coaster", 6, 4.25f);
tosser = new Ride("Tummy Tosser", 7, 4.9f);
}
}

不管我叫什么,它只取最后一个实例的值,即“tosser”,这是为什么呢?我弄乱了属性吗?

最佳答案

您的类变量是static,这意味着整个类的每个变量只有一次副本。您正在用您创建的每个新对象覆盖构造函数中的值。

每个对象要有不同的值,它们不能是static:

public String name;
public int ticketsRequired;
public float heightRequirement;

它们是 public 的事实意味着它们可以从任何其他类访问。​​

但这也表明您的类未正确封装。您可以使您的字段可访问,即使它们是 private,但定义 public 访问器方法,例如getName().

示例,其中一个变量:

private String name;

public String getName() { return name; }

关于java - Java 中的静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21387240/

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