我遇到了一个家庭作业的麻烦,创建一个调用另一个类的方法的类。给我们下一课:
/**
A bank account has a balance that can be changed by
deposits and withdrawals.
*/
public class BankAccount
{
private double balance;
/**
Constructs a bank account with a zero balance.
*/
public BankAccount()
{
balance = 0;
}
/**
Constructs a bank account with a given balance.
@param initialBalance the initial balance
*/
public BankAccount(double initialBalance)
{
balance = initialBalance;
}
/**
Deposits money into this account.
@param amount the amount to deposit
*/
public void deposit(double amount)
{
balance = balance + amount;
}
/**
Makes a withdrawal from this account, or charges a penalty if
sufficient funds are not available.
@param amount the amount of the withdrawal
*/
public void withdraw(double amount)
{
final double PENALTY = 10;
if (amount > balance)
{
balance = balance - PENALTY;
}
else
{
balance = balance - amount;
}
}
/**
Adds interest to this account.
@param rate the interest rate in percent
*/
public void addInterest(double rate)
{
double amount = balance * rate / 100;
balance = balance + amount;
}
/**
Gets the current balance of this account.
@return the current balance
*/
public double getBalance()
{
return balance;
}
}
然后给出以下提示:
实现一个类Portfolio。这个类有两个对象,checking和savings,类型为BankAccount。实现四种方法:
这里的帐户字符串是“s”或“c”。对于存款或取款,它表示哪个帐户受到影响。对于转账,它表示取钱的帐户;这笔钱会自动转到另一个账户。“
下面是我所做的:
public class Portfolio
{
BankAccount checking;
BankAccount savings;
public void deposit(double x, String y)
{
if (y.equals("C"))
{
checking.deposit(x);
}
else if (y.equals("S"))
{
savings.deposit(x);
}
}
public void withdraw(double x, String y)
{
if (y.equals("C"))
{
checking.withdraw(x);
}
else if (y.equals("S"))
{
savings.withdraw(x);
}
}
//public void transfer(double amount, String account)
//{
// add later
//}
public double getBalance(String account)
{
if (account.equals("C"))
{
return checking.getBalance();
}
else
{
return savings.getBalance();
}
}
}
但这样我就连存款的方法都用不上了。当我运行这个程序时...
public class PortfolioTester
{
public static void main(String [] args)
{
Portfolio money = new Portfolio();
money.deposit(700, "S");
}
}
我得到这个错误:
线程“main”java.lang.NullPointerException在Portfolio.deposite(Portfolio.java:14)在PortfolioTester.main(PortfolioTester.java:6)
我想我有点误会了类是怎么工作。谁能给我指出正确的方向吗?
您之所以会出现这些错误,是因为您必须初始化存款
方法中使用的BankAccount
类。我建议在portfolio
类中放置一个构造函数(类通常应该有初始化类属性的构造函数)。在组合
构造函数中,可以初始化银行帐户
类“检查
”和“储蓄
”。
记住对于非静态方法,您必须有一个类的实例才能调用它的方法。
问题内容: Java 8的Java语言规范在“示例4.11-1。类型的用法”中提供了一个带有类型实参的方法调用示例: 在该示例中,提供的类型实参是有意义的,但显然用于方法调用的类型实参也可以是多余的,并且完全没有意义,并且甚至不需要涉及泛型。例如: 我有几个问题: 谁能提出Java允许这些冗余类型参数的正当理由?接受它们无害后,在我看来,编译器仍然可以并且应该抓住它们。 仅当带有类型实参的方法调用
但是,当我使用命令行中的ndk-build命令编译它时,会出现以下错误: Android NDK:APP_PLATFORM未设置。默认为最小支持版本Android-16。[arm64-v8a]编译:com_celik_abdullah_imageprocessingpart_processors_NativeImageProcessor<=com_celik_Abdullah_ImageProce
用户连接RADIUS客户端; RADIUS客户端又连接到RADIUS服务器。如果客户端似乎无法与服务器连接,请首先检查以下内容: FreeRADIUS知道这个客户吗?检查FreeRADIUS日志文件中的以下行: Wed May 18 17:53:57 2012 : Error: Ignoring request to authentication address * port 1812 from
问题内容: 我有一个代码, 我使用运行时锁定-解锁,因为我不希望例程1的打印与例程2混合使用。但是,执行上述代码后,其输出与没有锁定- 解锁的输出相同(意味着打印输出混合在一起)。谁能帮助我为什么这件事发生以及如何迫使这件事发生。 注意:我举了一个打印示例,但是有很多打印和发送事件。 问题答案: 如果您要 序列化 “打印某物”,例如,每个“打印某物”应自动执行,则只需对其进行 序列化即可 。 您可
资源结构 webcontent/resources/img/logo.png
问题内容: 我看到了这个问题, 所以我对此问题有一个疑问:在以下查询中,在相同日期我得到的结果是不同的。 按列输出: 请帮助我,在此先谢谢。 编辑 我写了一个简单的过程,通过它可以找到下面给出的日期: EXEC simple_test(sysdate); EXEC simple_test(‘01 -JAN-2013’); 为什么会这样? 问题答案: 我想解释一下为什么您会得到不同的结果。 看到这个