java - 为什么我的构造函数被识别为方法?

标签 java class object constructor

我正在开发一个将银行帐户作为对象的程序。这些账户有利率、余额、ID 和创建日期数据。在我所做的中,据我了解,默认余额、id和利息均为0。默认情况下,利率未定义。我正在学习的书形式表明,无参数构造函数是通过“Circle() { }”完成的。我在帐户类中使用了“account() { }”。当我在 jGRASP 中运行程序时,我的两个构造函数都收到错误“方法声明无效;需要返回类型”。它正在认识到我打算将构造函数作为方法。我需要了解什么才能使我的构造函数不被识别为方法?

运行第一个构造函数时,我知道我们使用默认值创建一个名为 account 的 Account 对象。当我们运行第二个构造函数时,我们将帐户对象的值更改为指定的值

public class Bank{

public static void main(String[] args){

Account account = new Account(1122, 20000);

account.setAnnualInterestRate(4.5);

account.withdraw(2500);

account.deposit(3000);


   System.out.println("Balance is " + account.getBalance());

   System.out.println("Monthly interest is " + account.getMonthlyInterest());

   System.out.println("This account was created at " + account.getDateCreated());

                                     }

                             }


  class Account {

             private int id = 0;

             private double balance = 0;

             private double annualInterestRate = 0;

             private String dateCreated;



              account(){

              }

             account(int newID, double newBalance){

             id = newID;

             balance = newBalance;

             }

        //accessor for ID
        public int getID(){
        return id;
        }
        //acessor for balance
        public double getBalance(){
        return balance;
        }
        //accessor for interest rate
        public double getAnnualInterest(){
        return annualInterestRate;
        }
        //mutator for ID
        public void setID(int IDset){
        id = IDset;
        }
        //mutator for balance
        public void setBalance(int BalanceSet){
        balance = BalanceSet;
        }
        //mutator for annual interest
        public void setAnnualInterestRate(double InterestSet){
        annualInterestRate = InterestSet;
          }
        //accessor for date created
        public String getDateCreated(){
        return dateCreated;
        }
        //method that converts annual interest into monthly interest and returns the value
        public double getMonthlyInterest(){
        double x =  annualInterestRate / 12;
        return x;
          }
       //method that witdraws from account
       public double withdraw(double w){
       balance -= w;
       return balance;
       }
       //method that deposits into account
       public double deposite(double d){
       balance += d;
       return balance;
       }




  }

最佳答案

构造函数名称必须以区分大小写的方式与类名称匹配。在 Account 类中,更改

account(){

Account(){

对于您的其他构造函数也是如此。

关于java - 为什么我的构造函数被识别为方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811266/

相关文章:

java - 我的服务选项卡从 NetBeans 中消失了

class - 同时打字模块和类?

javascript - 如何在 Javascript 中获取动态对象属性?

允许访问行和列的 C++ 容器

JavaScript 数组到对象?

php - 使用 php 将对象存储在数组中

java - 在 Android 浏览器中获取当前 URL

java - H2 数据库 org.h2.Driver ClassNotFoundException

java - 代码创建空数据库...为什么??? :(

java - JNI目录结构c和java