实例化和更新多个对象

时间:2013-06-10 00:04:46

标签: java java.util.scanner

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

实例化make,model和year。然后,一旦我写了司机课,我开始的方式是:

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类来实际获取用户输入并以这种方式更新它,因为我也想学习它吗?

1 个答案:

答案 0 :(得分: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());
    }
}
相关问题