Java 实例化和更新多个对象

Java 实例化和更新多个对象,java,java.util.scanner,Java,Java.util.scanner,目前我正在自学Java,但我遇到了一个简单的问题,但没有人可以问。在其中一个练习中,我编写了一个类和一个驱动程序类,用于实例化和更新多个对象。我被“实例化和更新几个对象”弄糊涂了。我的意思是:这是我的类: public class PP43Car { private String make = ""; private String model = ""; private int year; public PP43Car(String ma, String m,

目前我正在自学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();
    }

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


如果上面的代码是正确的,那么有谁能告诉我如何使用Scanner类来实际获取用户输入并以这种方式更新它,因为我也想了解这一点吗?

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

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());
    }
}

请尽量解释清楚你想做什么?你想让用户插入
make
model
year
的值吗?@MikO对于我编写的最后一段代码,我只想知道这是否是“实例化和更新对象”的意思。对。这是我有点困惑的地方,修改它。这是我在主方法PP43Car car1中尝试的;然后我做了同样的事情,然后你把你的答案贴成car1.setMake(马自达);但我犯了个错误。有什么想法吗?@hjghhjgb,你添加了
car1.setMake(马自达)就在
car1=new PP43Car(…)
行之后,它抛出了一个错误??它不应该这样做,你得到了什么样的例外?@MikeO我不知道。我玩了一会儿,但不记得我做了什么,导致了异常。但目前正试图让品牌、型号和年份更新成为可能,但却一事无成。我在驾驶课上做错了什么吗?@MikeO我现在明白我的错误了。@hjghhjgb,我很高兴它帮了我的忙!让我提醒你,如果你觉得我的答案有用的话,你可以对它投赞成票……;)
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());
    }
}