目前我正在自学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类来实际获取用户输入并以这种方式更新它,因为我也想学习它吗?
答案 0 :(得分:0)
好吧,在您的最后一段代码中,您确实正在实例化一个对象,因为您正在执行:
car1 = new PP43Car("Millenia", "Mazda", 2011);
当您创建new
对象时,您正在创建该类的新实例,所以是的,您正在实例化一个对象。
但是你没有在任何地方更新它,因为我认为这里更新意味着修改对象,但你只创建对象,而不是修改它......
这样的事情就是更新:
car1.setYear(2013);
由于您要为对象的属性设置不同的值,因此您正在更新它...
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());
}
}