调用对象出现问题的方法

时间:2019-01-30 22:01:07

标签: java object

所以,我需要做一部分家庭作业:

在Customer类中创建一个名为hasMoreMoneyThan(Customer c)的方法 如果调用该方法的客户的钱比购买该方法的客户多,则返回true 客户c,否则它将返回false

我希望指出“客户在调用方法”这一行的正确方向

这对我来说很混乱,没有意义,因为我的Customer是一门课。

这是必需的代码:

public class Customer
{ 
    private String name;
    private int age;
    private float money;

    public String getName()
    {
        return name;
    }

    public int getAge()
    {
        return age;
    }


    public Customer(String n, int a, float m)
    {
        name = n;
        age = a;
        money = m;

   }

我开始编写方法:

public boolean hasMoreMoneyThan(Customer c)
{

}

但是我不确定如何使用我的Customer对象(我认为问题是这样)来调用它。

其他相关代码:

public class StoreTestProgram {

    public static void main(String args[]) {
        Customer[]    result;
        Store         walmart;

        walmart = new Store("Walmart off Innes");
        walmart.addCustomer(new Customer("Amie", 14, 100));

    }
}

2 个答案:

答案 0 :(得分:2)

在对象上调用方法时,对象变量在当前作用域内。在这种情况下,“调用方法的客户”是调用该方法的对象(该对象是类的实例)。

因此,如果正在var mongoose = require('mongoose'); require('mongoose-double')(mongoose); var Schema = mongoose.Schema; var SchemaTypes = mongoose.Schema.Types; console.log("coucou"); var PokemonSchema = new Schema({ nom: String, surnom: String, niveau: Number, genre: String, capture: Boolean, identifie: Boolean, prix: SchemaTypes.Double }); 上调用boolean hasMoreMoneyThan(Customer c),那么您应该认为它是在问Customer a

您可以使用Customer a has more money than Customer c?关键字引用当前对象(以帮助读者区别于this)。

因此,在您的Customer c方法中,您可以将hasMoreMoneyThanthis.money进行比较。

要调用此方法,您需要引用当前客户和要与之进行比较的客户。您可以执行以下操作:

c.money

编辑让我们尝试另一个示例。假设您想要一种方法来知道一个客户是否比另一个客户大。该代码可能类似于:

Customer currentCustomer = new Customer(...
Customer customerToCompareWith = new Customer(...

if (currentCustomer.hasMoreMoneyThan(customerToCompareWith)) {
    // do something
}

并调用该方法:

public boolean isOlderThan(Customer c) {
    return this.age > c.age;
}

答案 1 :(得分:1)

this是如何从属于对象成员的方法中引用对象的方法。 this.money ><=? c.money 如果在构造函数中使用public Customer(String name, int age, float money),则应使用this.name= name而不是name= n来消除歧义。