Java 为什么我的构造函数被认为是方法?
我正在开发一个将银行账户作为对象的程序。这些账户有利率、余额、ID和创建日期数据。根据我的理解,默认余额、id和利息为0。默认情况下,利率未定义。我正在学习的书表单显示,无参数构造函数是用“Circle(){}”完成的。我在account类中使用了“account(){}”。当我在jGRASP中运行程序时,我的两个构造函数都出现了错误“方法声明无效;返回类型必需”。这就是认识到我打算作为方法的构造函数。我需要了解什么才能使我的构造函数不被识别为方法 当运行第一个构造函数时,我知道我们创建了一个名为Account的Account对象,并使用默认值。当我们运行第二个构造函数时,我们正在将account对象的值更改为具有指定值的值Java 为什么我的构造函数被认为是方法?,java,class,object,constructor,Java,Class,Object,Constructor,我正在开发一个将银行账户作为对象的程序。这些账户有利率、余额、ID和创建日期数据。根据我的理解,默认余额、id和利息为0。默认情况下,利率未定义。我正在学习的书表单显示,无参数构造函数是用“Circle(){}”完成的。我在account类中使用了“account(){}”。当我在jGRASP中运行程序时,我的两个构造函数都出现了错误“方法声明无效;返回类型必需”。这就是认识到我打算作为方法的构造函数。我需要了解什么才能使我的构造函数不被识别为方法 当运行第一个构造函数时,我知道我们创建了一个名
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(){
到
对于其他构造函数也是如此。您需要在两个构造函数中大写a。Java区分大小写
Account(){
}
Account(int newID, double newBalance){
id = newID;
balance = newBalance;
}
否则,Java将其视为没有返回类型的方法。请记住,构造函数没有或需要返回类型 构造函数应该进行camellize(作为惯例,与类名相同),并且它只返回自身的类型 参见我的示例:)
编辑:构造函数不能有返回类型
Account(){
}
Account(int newID, double newBalance){
id = newID;
balance = newBalance;
}
Account() {
return;
}