0

目前我正在自学 Java,但我遇到了一个简单的问题,但没有人可以问。在其中一个练习中,我编写了一个类并编写了一个驱动程序类来实例化和更新多个对象。我对“实例化和更新几个对象”感到困惑。这就是我的意思:所以这是我的课:

public class PP43Car {

    private String make = "";
    private String model = "";
    private int year;

    public PP43Car(String ma, String m, int y)
    {
        make = ma;
        model = m;
        year = y;
    }

    public void setMake(String ma)
    {
        make = ma;
    }

    public String getMake()
    {
        return make;
    }

    public void setModel(String m)
    {
        model = m;
    }

    public String getModel()
    {
        return model;
    }

    public void setYear(int y)
    {
        year = y;
    }

    public int getYear()
    {
        return year;
    }

    public String toString()
    {
        String result = "Make of the vehicle: " + make +
                        " Model of the vehicle " + model + 
                        " Year of the vehicle: " + year;
        return result;
    }
}

其中实例化了品牌、型号和年份。然后,一旦我编写了驱动程序类,我开始的方式是:

import java.util.Scanner;

public class PP43CarTest {


    public static void main(String[] args) {

        PP43Car car1;

        Scanner scan = new Scanner(System.in);

        System.out.println("Enter the model of the vehicle:");
        car1.getModel();
    }

}

但是这个类会产生错误,这就是我卡住的地方。我是继续这样做还是这就是“实例化和更新多个对象”的意思?

import java.util.Scanner;

public class PP43CarTest {

    static PP43Car car1;

    public static void main(String[] args) {
        //Scanner scan = new Scanner(System.in);
        car1 = new PP43Car("Millenia", "Mazda", 2011);      
    }

}

如果上面的代码是正确的,那么任何人都可以告诉我如何使用 Scanner 类来实际获取用户输入并以这种方式更新它,因为我也想学习它吗?

4

1 回答 1

0

好吧,在您的最后一段代码中,您确实在实例化一个对象,因为您正在执行以下操作:

car1 = new PP43Car("Millenia", "Mazda", 2011);

当您创建一个new对象时,您正在创建该类的一个新实例,所以是的,您正在实例化一个对象。

但是你没有在任何地方更新它,因为我认为这里更新意味着修改对象,但你只创建对象,而不是修改它......

这样的事情将是一个更新:

car1.setYear(2013);

由于您正在为对象的属性设置不同的值,因此您正在更新它......


编辑:试试这段代码,它不会抛出任何异常,它是 Java 基础!希望能解开你的疑惑...

public class PP43CarTest {

    public static void main(String[] args) {

        //Declaring objects
        PP43Car car1;
        PP43Car car2;
        PP43Car car3;

        //Instantiating objects
        car1 = new PP43Car("Millenia", "Mazda", 2011);
        car2 = new PP43Car("Aaaa", "Bbb", 2012);
        car3 = new PP43Car("Ccc", "Ddd", 2012);

        //Updating objects
        car1.setMake("Xxx");
        car1.setMake("Yyy");
        car1.setYear(2013);

        //Printing objects
        System.out.println("CAR 1: " + car1.toString());
        System.out.println("CAR 2: " + car2.toString());
        System.out.println("CAR 3: " + car3.toString());
    }
}
于 2013-06-10T00:17:42.390 回答