Java 如何将一个变量设置为在所有创建的相同类型对象中都相同?
假设我有一门课叫Java 如何将一个变量设置为在所有创建的相同类型对象中都相同?,java,Java,假设我有一门课叫Car。在这个类中有方法和其他变量。我有一个名为make的变量,尽管它在所有Car对象中必须始终相同。唯一的问题是我想知道在初始化Car对象之前,make是什么。我尝试过使用静态方法,但我肯定对静态方法和静态变量的功能有误解。我尝试调用一个设置静态变量的静态方法,但当我创建一个Car对象时,它不起作用 示例:Car.setMake(“丰田”) 其中,静态方法setMake()设置静态变量make。 然后我将创建一辆新车(),并期望所有汽车对象都是制造的丰田。这不起作用。关于静态变
Car
。在这个类中有方法和其他变量。我有一个名为make
的变量,尽管它在所有Car
对象中必须始终相同。唯一的问题是我想知道在初始化Car
对象之前,make是什么。我尝试过使用静态方法,但我肯定对静态方法和静态变量的功能有误解。我尝试调用一个设置静态变量的静态方法,但当我创建一个Car
对象时,它不起作用
示例:Car.setMake(“丰田”)
其中,静态方法setMake()
设置静态变量make
。
然后我将创建一辆
新车()
,并期望所有汽车
对象都是制造的
丰田。这不起作用。关于静态变量,您是对的。再检查一遍<代码>静态
变量和方法扩展到类
本身,并且类
的所有实例都具有相同的值。
静态
方法只能访问静态
变量和方法,但非静态
方法可以访问静态
和非静态
变量和方法
public static void main(String... args) {
Car audi = new Car();
Car bmw = new Car();
System.out.println(Car.getMake()); // null
Car.setMake("Toyota");
System.out.println(Car.getMake()); // Toyota
System.out.println(audi.getMake()); // Toyota
System.out.println(bmw.getMake()); // Toyota
}
class Car {
private static String make;
public static void setMake(String make) {
Car.make = make;
}
public static String getMake() {
return make;
}
}
请编辑问题并显示有关如何使用static的代码。实例化工厂似乎更有意义。@OldProgrammer没有,oleg找到了答案。啊,我知道我在实例化
Car
对象之前调用了static方法@埃利克巴赫曼:这并不重要。您甚至可以在类的第一个实例之前编写和读取静态变量。