使用下面的代码,创建三个具有相同名称的对象。我怎样才能打电话给其中一个人打印出它的价值?
import java.util.Scanner;
class ProcessPurchases {
public static void main(String args[]) {
Scanner myScanner = new Scanner(System.in);
Purchase aPurchase;
for (int count = 0; count < 3; count++){
aPurchase = new Purchase();
aPurchase.amount = myScanner.nextDouble();
aPurchase.quantity = myScanner.nextInt();
}
}
}
答案 0 :(得分:1)
是的,你正在制作3个Purchase类的实例,但是你只是一次存储对其中一个的引用,因为你要三次覆盖引用。你可能想要这样的东西
import java.util.Scanner;
class ProcessPurchasses {
public static void main(String args[]) {
Scanner myScanner = new Scanner(System.in);
Purchase[] aPurchase = new Purchase[3];
for (int count = 0; count < 3; count++){
aPurchase[count] = new Purchase();
aPurchase[count].amount = myScanner.nextDouble();
aPurchase[count].quantity = myScanner.nextInt();
}
}
}
然后你可以做类似的事情 aPurchase [0]。数量以获取第一个购买实例的金额等。
答案 1 :(得分:0)
对象的字段与对象本身之间存在差异,在以下代码段中:
for (int count = 0; count < 3; count++){
aPurchase = new Purchase();
aPurchase.amount = myScanner.nextDouble();
aPurchase.quantity = myScanner.nextInt();
}
每次初始化对象时,您应该注意到amount
和quantity
是分配的字段(属于该类的变量)。
因此,如果您仔细研究代码,您会发现有类似的内容:
class Purchase{
//these are called the fields of the class
double amount;
int quantity;
....
}
为了更好地理解,在OOP旅程开始时,假设一个对象为(实现)一个实体,如 Box 以及字段作为其属性,如宽度,高度,颜色等。