如何将此静态引用修复为非静态方法?

How to fix this static reference to a non-static method?

这是我的问题。当我使用 addCar(carobject) 时,它说我正在对非静态方法进行静态引用。如何调用main方法中的方法?我希望能够在括号中使用我的对象调用方法 addcar()。在我看来它应该可以工作。

    package Lab2;
/*********************************************************************
//Race.java       
//
//Race class defines what the race object is
//and what it can do.
//********************************************************************
*/
public class Race {
    public double distance;
    public String raceType;
    public Car[] carsEntered = new Car[3];
    final int DEFAULTNUMBEROFCARS = 3;
    public static void main(String[] args) {
        int carCount = 0;
        String winner;

        Car myCar = new Car("Chase", 75);
        Car ProfCar = new Car("Prof. Harms", 85);
        Car JeffCar = new Car("Jeff Gordan", 100);
        addCar(myCar);

    }
    /**
     * Changes the distance of the race.
     */
    public void changeDistace(double newDistance) {
        distance = newDistance;
    }

    /**
     * Changes the Type of the race.
     */
    public void changeRaceType(String newRaceType) {
        raceType = newRaceType;
    }

    /**
     * Adds a new car to the Race.
     */
    public void addCar(Car newCar) {
        boolean carPlaced = false;
        for(int i=0; i<DEFAULTNUMBEROFCARS;i++) {
            if(carPlaced == false) {
                if(carsEntered[i] == null) {
                    carsEntered[i] = newCar;
                    carPlaced = true;
                }
            }

        }
    }
    public String getRaceType() {
        return raceType;
    }
    /**
     * Prints the cars in the race.
     */
    public void getCarsEntered() {
        for(int i=0;i<carsEntered.length; i++) {
            System.out.println("Owner: " + carsEntered[i].getOwner());
        }
    }
}

这是因为您在静态的 main 方法中调用 addCaraddCar 不是。

如果你想从你的main中调用一个方法,那么你必须声明这个方法是静态的。

但是,更好的方法是在您的 main 中实例化一个构造函数,然后简单地从该构造函数中调用该方法。静电是邪恶的。