多个具有相同名称的对象

时间:2014-04-20 04:35:49

标签: java oop

使用下面的代码,创建三个具有相同名称的对象。我怎样才能打电话给其中一个人打印出它的价值?

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

2 个答案:

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

每次初始化对象时,您应该注意到amountquantity是分配的字段(属于该类的变量)。

因此,如果您仔细研究代码,您会发现有类似的内容:

    class Purchase{
        //these are called the fields of the class
        double amount;
        int quantity;
        ....
    }

为了更好地理解,在OOP旅程开始时,假设一个对象为(实现)一个实体,如 Box 以及字段作为其属性,如宽度高度颜色等。