Java 实例化和更新多个对象
目前我正在自学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,
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());
}
}