【发布时间】:2014-04-21 21:17:33
【问题描述】:
我不知道为什么我的代码给我的 java.util.date 一个空值。
问题:编写一个测试程序,创建一个 Account 对象,账户 ID 为 1122,余额为 20000,年利率为 4.5%。使用提款方式提取2500美元,使用存款方式存入3000美元,并打印余额,每月利息,以及创建此帐户的日期
这是我的代码:
import java.util.*;
public class Account {
private int ID;
private double Balance;
private double annualInterestRate;
private java.util.Date dateCreated;
public Account(){}
public Account(int ID, double Balance, double annualInterestRate){
this.ID=ID;
this.Balance=Balance;
this.annualInterestRate= annualInterestRate;
}
public void setID(int ID){
this.ID=ID;
}
public void setBalance(double Balance){
this.Balance=Balance;
}
public void setAnnualInterestRate(double annualInterestRate){
this.annualInterestRate= annualInterestRate;
}
public int getID(){
return ID;
}
public double getBalance(){
return Balance;
}
public double getInterestRate(){
return annualInterestRate;
}
public java.util.Date getDateCreated(){
return dateCreated;
}
public double getMonthlyInterestRate(){
return annualInterestRate/12;
}
public void withDraw(double val){
if ((Balance - val) <0)
{
System.out.println("Offensive content removed from this line");
}
else
{
Balance -= val;
}
}
public void dePosits(double value){
Balance += value;
}
public static void main(String [] arges){
Account account = new Account(1122, 20000,.045);
account.withDraw(2500);
account.dePosits(3000);
System.out.println(account.getBalance());
System.out.println(account.getDateCreated());
}
}
【问题讨论】:
-
未来请考虑发布更多最小示例。例如,实际的分配要求是无关紧要的。像
getInterestRate()这样的方法也是如此。在发布问题时缩小问题范围可能会帮助您发现问题。 -
因为这显然是一个家庭作业问题,这里也有一些建议,因为这是一个相当微不足道的问题:你可能想熟悉调试器(我猜你使用 Eclipse 或其他一些 IDE),他们可以通过单步执行程序轻松地向您显示此类错误。此外,您可能还想了解基本的 Java 编程。
-
@dirkk 这是一个相当严厉的评论。 “您可能想阅读有关基本 Java 编程的信息”我认为这很明显,我是初学者,不需要说那些令人反感的话。
-
如果每个人都学会使用调试器,Stack Overflow 上的问题数量就会受到严重影响。
-
@user3558063 这并不是要苛刻,而是要提供有用的建议。由于您犯了一个非常基本的错误,我认为如果您阅读一些基本教程将是一个好主意。这没什么好羞耻的,我们一开始都一无所知,所以我们都从阅读基础知识开始。另外,请注意,SO 是国际性的,我们可能对苛刻的内容存在文化差异(我是德国人,所以作为一种刻板印象,我在交流方面非常直接),但我的评论肯定不是令人反感 .
标签: java