首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否使用主类中的方法设置对象值?

是否使用主类中的方法设置对象值?
EN

Stack Overflow用户
提问于 2018-10-19 22:31:26
回答 5查看 808关注 0票数 1

我正在尝试用一个方法来设置数组中对象的特定值。

代码语言:javascript
运行
复制
public class BankAccount
{
private String name;

//constructor
public BankAccount(String firstName, String LastName)
{

name = firstName + " " + lastName;

}

public String getName()
{
return name;
}

上面是我的BankAccount类,还有一个名为BankAccountList的类

代码语言:javascript
运行
复制
public class BankAccountList {
    public static void main(String args[]){

    BankAccount bankAccount[] = new BankAccount[2];

    bankAccount[1] = giveName("MR", "Travis");
    }

    public static void giveName (String firstName, lastName){

    }
}

如何使用以下giveName()方法将BankAccount[1]中的对象名称设置为"Mr Travis“?我不知道用给定的参数在giveName中放什么。任何建议都将不胜感激。

EN

Stack Overflow用户

发布于 2018-10-19 22:52:50

这里有几件事值得一提。

首先,你似乎没有完全理解静态和动态之间的区别。这是可以理解的,因为即使我现在也很难解释它,即使我知道它是如何工作的。您的BankAccountList类有一个main方法,它从一个静态的标准main方法开始。您的bankAccount数组是在这个main方法中定义的,这意味着它不存在于整个类中,只存在于正在运行的main方法中。

然后,您需要在列表中指定一个银行帐户的名称。在这里,您创建了另一个静态方法,它对main方法中的内容一无所知,并且它不包含可以将参数提供给的任何对象。换句话说,您现在拥有的empty函数不能为银行帐户设置任何参数,因为该方法中不存在任何银行帐户。

我建议将静态方法设置为动态的(这意味着只需删除giveName关键字),并将该方法移动到BankAccount类。然后,您将有效地拥有name的get和set方法,这些方法是动态的,这意味着它对于类的每个对象实例都是有效的。在此之后,可以首先引用数组中的对象,然后直接对该特定对象调用giveName()方法,该方法将设置名称:

代码语言:javascript
运行
复制
public class BankAccount
{
    private String name;

//constructor
public BankAccount(String firstName, String LastName)
{

    name = firstName + " " + lastName;

}

public String getName()
{
    return name;
}

public void giveName (String firstName, String lastName){
    name = firstName + " " + lastName;
}

和:

代码语言:javascript
运行
复制
public class BankAccountList {
    public static void main(String args[]){

        BankAccount bankAccount[] = new BankAccount[2];

        bankAccount[1].giveName("MR", "Travis");
    }
}

更新:

现在我注意到了另一件事。创建数组的行: BankAccount bankAccount[] = new BankAccount2;

这不会创建填充的数组,它会创建一个空数组。换句话说,您并没有创建一个包含银行帐户的列表,而是创建了一个可以持有银行帐户的列表。您必须先创建一个银行帐户,然后才能为其命名。

代码语言:javascript
运行
复制
BankAccount bankAccount[] = new BankAccount[2];
bankAccount[1] = new BankAccount("MR", "Travis");

现在,您的构造函数已经有了参数,用于在创建帐户时为其命名。因此,现在您并不真正需要giveName方法。除非您想在以后更改它:

代码语言:javascript
运行
复制
bankAccount[1].giveName("MRS", "Davis");
票数 3
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52894500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档