我有两个班,Main.javaCar.java

Main.java

class Main
{
    public static void main(String[] args)
    {
        Car ferrari = new Car(18, 25.43);
        System.out.println(ferrari.efficiency);
    }
}


Car.java

class Car
{
    public Car(double mpg, double initFuel)
    {
        double efficiency = mpg;
        double fuel = initFuel;
    }
}


我显然试图将效率分配给创建对象时传入的第一个构造函数,但这似乎不起作用(即,当我在Main.java中使用println时找不到该变量)。如何为以后要引用的对象分配变量?

最佳答案

您在Car的构造函数中使用局部变量。它们的生命周期限制在您的构造函数中。只需在您的班级中声明您的成员,然后使用getter和setter即可访问它们。

class Car
{
    private double efficiency;
    private double fuel;

    public Car(double mpg, double initFuel)
    {
        this.efficiency = mpg;
        this.fuel = initFuel;
    }

    public void setEfficiency(double efficiency) {
        this.efficiency = efficiency;
    }

    public double getEfficiency() {
        return efficiency;
    }

    // Same thing for fuel...
}


在您的Main中:

class Main
{
    public static void main(String[] args)
    {
        Car ferrari = new Car(18, 25.43);
        System.out.println(ferrari.getEfficiency());
    }
}

关于java - 对象变量— Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57078777/

10-12 00:35
查看更多