Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';我不能让我的Java类工作_Java_Class_Constructor - Fatal编程技术网

Can';我不能让我的Java类工作

Can';我不能让我的Java类工作,java,class,constructor,Java,Class,Constructor,我应该创建一个类和一个tester类,允许客户输入他的姓名和当前金额,以及他想进行的任何存款或取款。可能有不正确的代码,但我想知道我在代码上做错了什么。问题之一是它说getBalance是一个无效的方法声明 这是包含构造函数的类 public class BankAccount{ public String name; public double Balance, Withdrawal, Deposit; public BankAccount(double bal, S

我应该创建一个类和一个tester类,允许客户输入他的姓名和当前金额,以及他想进行的任何存款或取款。可能有不正确的代码,但我想知道我在代码上做错了什么。问题之一是它说getBalance是一个无效的方法声明

这是包含构造函数的类

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;
    }
}
这是tester类

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());

    }
}

你介意告诉我我做错了什么并解释一下吗?

你的
getBalance()
方法需要一个返回类型。将声明更改为
public double getBalance()
。作为旁注,Java约定要求不要将变量名的第一个字母大写。以下约定使您的代码更容易被其他人阅读,这将导致更多更好的响应。

缺少
getBalance()
方法的返回类型,而您返回的变量类型为double。声明如下:-

public double getBalance(){   // add double as the return-type here
    return Balance;
}
另外,正如Drew Kennedy所提到的---通过添加BankAccount类和a1来声明BankAccount类的对象。你哪里都没提过

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

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

Java的标准做法是,类使用大写字母,变量使用小写字母。这将使您的代码更易于其他Java开发人员阅读这不应该写为:
银行账户a1=新银行账户()?在你的
BankAccountTester
类中,我没有看到
a1
被声明。我认为这个问题不值得负面评价。是的,解决方案可能很简单,但问题经过深思熟虑,代码简洁易读。与95%的问题相比,这个问题值得热烈的掌声。@DrewKennedy即使是我也对这个问题投了更高的票,因为它非常清晰,并且对代码有着适当的投入。真值得鼓掌!