[英]How to call a method by class name
我在作业中遇到了困难。
您应该提供从帐户中提取和存入给定数量的钱的方法,以及提供将一个帐户中给定数量的钱转移到另一个帐户的转账方法。 可以通过使用类名来调用传输方法。
我不太明白最后一句话的意思。 这是我所拥有的;
public class CbtBank {
private double balance;
private String firstName, lastName;
private int accountNumber;
public CbtBank(String firstName, String lastName, int accountNumber, double balance) {
this.balance = balance;
this.firstName = firstName;
this.lastName = lastName;
this.accountNumber = accountNumber;
}
public void transfer(CbtBank from, CbtBank to, double amount){
to.balance += amount;
from.balance -= amount;
}
}
还有我的main.java;
public static void main(String[] args) {
CbtBank person1 = new CbtBank("can", "berk", 3123, 100.0);
CbtBank person2 = new CbtBank("can2", "berk2", 3124, 200.0);
CbtBank.transfer(person1, person2, 50.0);
}
我无法以这种方式工作,但是我什至不确定这是否意味着。 有任何想法吗?
在本节中,我们讨论如何使用static关键字创建属于该类而不是该类实例的字段和方法。
那么您的要求是属于一个类而不是实例的方法。
静态方法可以通过其名称访问,因此使CbtBank#transfer
成为静态方法。
class CbtBank
{
public static void transfer(CbtBank to,CbtBank from,double value)
{
to.balance += amount;
from.balance -= amount;
}
}
static
方法可以通过使用类名来调用。 您可能必须将transfer
方法变为静态方法,以了解其含义。 完成此操作后,您将按以下说明调用transfer
方法:
CbtBank.transfer(person1, person2, 50.0);
我错过了“静态”关键字。 所以正确的版本是;
public static void transfer(CbtBank from, CbtBank to, double amount){
to.balance += amount;
from.balance -= amount;
}
感谢您的回答。
只需将方法static
。 这样,您可以不使用实际对象而是通过使用类本身来调用它。
public static void transfer(CbtBank from, CbtBank to, double amount){
to.balance += amount;
from.balance -= amount;
}
它与static
的概念有关。 这定义了与给定类型的具体实例无关的变量或方法,但与类本身无关。
在这里,转帐不是帐户的特殊事项,而是逻辑,您的CbtBank
对象就是所谓的Plain Old Java Object 。 逻辑应该在其他地方,但是在这种情况下,它位于类中。
可以这样考虑:帐户本身不应该负责交易。 帐户A不应篡改帐户B的余额,因为那是帐户B的私人信息。
如果是我,我会要求该方法在另一个类中,但请坚持您的作业。 将该方法声明为static
方法并进行静态调用:
Account.transfer(CbtBank from, CbtBank to, double amount)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.