2014-11-21 72 views
1

我应该创建一个类和一个测试者类,允许客户输入他的名字和当前的金额以及他想要创建的任何存款或取款。有可能是不正确的代码,但我想知道我在做什么错了代码。其中一个问题是它说getBalance是一个无效的方法声明。无法让我的Java类工作

这与构造

public class BankAccount{ 
    public String name; 
    public double Balance, Withdrawal, Deposit; 

    public BankAccount(double bal, String nm){ 
     name = nm; 
     Balance = bal; 
    } 


    public void setName (String nm){ 
     name = nm; 
    } 

    public String getName(){ 
     return name; 
    } 

    public String toString(){ 
     return "Name: " + name + "\n" + 
     "New Balance :  " + getBalance; 
    } 

    public getBalance(){ 
     return Balance; 
    } 

    public double Withdrawal(){ 
     bal = Balance - Withdrawal; 
    } 

    public double Deposit(){ 
     bal = Balance + Deposit; 
    } 
} 

类这是在测试类

import java.util.Scanner; 

public class BankAccountTester{ 
    public static void main(String [] args){ 
     Scanner reader = new Scanner(System.in); 
     a1 = new BankAccount(); 

     String name; 
     int Balance, Withdrawal, Deposit; 

     System.out.println("What is the name of the bank account holder?"); 
     name = reader.nextLine(); 

     System.out.println("What is your current balance?"); 
     Balance = reader.nextInt(); 

     System.out.println("How much do you wish to deposit?"); 
     Deposit = reader.nextInt(); 

     System.out.println("How much do you with to withdraw?"); 
     Withdrawal = reader.nextInt(); 

     System.out.println("\n" + a1.getName()); 

    } 
} 

你介意告诉我什么,我做错了,并解释呢?

+2

在Java中使用大写首字母和小写首字母作为变量的标准做法。这将使您的代码更易于为其他Java开发人员阅读。 – khelwood 2014-11-21 21:29:15

+1

'a1 = new BankAccount();'不应该写成:BankAccount a1 = new BankAccount();'?我没有看到在'BankAccountTester'类的其他地方声明'a1'。 – 2014-11-21 21:31:02

+2

我不认为这个问题值得消极的声誉。是的,解决方案可能很简单,但问题经过深思熟虑,代码简洁易读。与95%的问题相比,这个问题值得一阵掌声。 – 2014-11-21 21:36:15

回答

0

您的getBalance()方法需要返回类型。将声明更改为public double getBalance()。作为一个方面说明,Java约定称不使用变量名的第一个字母。遵循约定使得您的代码更易于被其他人阅读,从而产生更多更好的响应。

2

getBalance()方法的返回类型丢失,而您正在返回一个double类型的变量。声明为: -

public double getBalance(){ // add double as the return-type here 
    return Balance; 
} 

而且,如由Drew肯尼迪提到---通过用A1沿加入BankAccount类声明BankAccount类的对象。你有没有在任何地方提到它...

BankAccount a1 = new BankAccount(); // you're missing class name BankAccount 
0

所以getBalance()方法没有返回类型,但你问它返回一个值。还要尽量遵循Java命名约定,变量名不应以大写字母开头。