Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将一个变量设置为在所有创建的相同类型对象中都相同?_Java - Fatal编程技术网

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方法@埃利克巴赫曼:这并不重要。您甚至可以在类的第一个实例之前编写和读取
静态
变量。