[英]Having trouble returning a variable java
public class Account
{
static int accountNum;
static int nextAccountNum = 112200;
static double balance;
public static void main(String args[])
{
Account checkingAccount = new Account(1500.00);
Account savingAccount = new Account(1000.00);
Account moneyMarketAccount = new Account(500.00);
checkingAccount.getAccountNumber();
savingAccount.getAccountNumber();
moneyMarketAccount.getAccountNumber();
}
public Account(double bal)
{
balance = bal;
accountNum = nextAccountNum;
nextAccountNum++;
}
}
Every time I run it, I don't get any return variables. 每次运行它,我都没有得到任何返回变量。 All I see is the process completed text.
我所看到的只是过程完成的文本。 Looking for help
寻求帮助
You didn't output anything. 你没有输出任何东西。 Use
System.out.println
to output the account balances, eg 使用
System.out.println
输出帐户余额,例如
System.out.println(checkingAccount.getAccountNumber());
Also, make your accountNum
and your balance
variables non- static
, or else the balance and account numbers will get overwritten with each new instance. 此外,使您的
accountNum
和您的balance
变量非static
,否则每个新实例都会覆盖余额和帐号。
It's often good practice to separate the main function from an class which will have several instances. 将main函数与将具有多个实例的类分开通常是一种很好的做法。 Getters and setters methods are used for proper encapsulation of class variables, as an account probably should have.
getters和setters方法用于正确封装类变量,因为帐户可能应该具有。 An example is below.
一个例子如下。
Main.java Main.java
public class Main {
public static void main(String args[])
{
Account checkingAccount = new Account(1,1500.00);
Account savingAccount = new Account(2,1000.00);
Account moneyMarketAccount = new Account(3,500.00);
System.out.println("Account " + checkingAccount.getAccountNumber()
+ " has balance of: " + checkingAccount.getBalance());
System.out.println("Account " + savingAccount.getAccountNumber()
+ " has balance of: " + savingAccount.getBalance());
System.out.println("Account " + moneyMarketAccount.getAccountNumber()
+ " has balance of: " + moneyMarketAccount.getBalance());
}
}
Account.java Account.java
public class Account
{
private int accountNum;
private int nextAccountNum = 112200;
private double balance;
public Account(int accountNum, double balance)
{
this.balance = balance;
this.accountNum = accountNum;
}
public int getAccountNumber() {
return accountNum;
}
public double getBalance() {
return balance;
}
public void setBalance(int balance) {
// check if balance variable is a correct value
// before setting it to the class variable
this.balance = balance;
}
}
One problem is that accountNum
and balance
are declared static
. 一个问题是
accountNum
和balance
被声明为static
。 You need them to be instance fields so each instance of Account
has its own values. 您需要它们作为实例字段,因此
Account
每个实例都有自己的值。
The reason you get no output is that your main()
method creates several Account
objects but doesn't do anything with them. 没有输出的原因是你的
main()
方法创建了几个Account
对象,但没有对它们做任何事情。
public class Account
{
static int nextAccountNum = 112200;
int accountNum;
double balance;
public static void main(String args[])
{
Account checkingAccount = new Account(1500.00);
Account savingAccount = new Account(1000.00);
Account moneyMarketAccount = new Account(500.00);
checkingAccount.getAccountNumber();
savingAccount.getAccountNumber();
moneyMarketAccount.getAccountNumber();
System.out.println("Checking: " + checkingAccount.toString());
System.out.println("Savings: " + savingAccount.toString());
System.out.println("Money market: " + moneyMarketAccount.toString());
}
public Account(double bal)
{
balance = bal;
accountNum = nextAccountNum;
nextAccountNum++;
}
@Override
public String toString() {
return "Account " + accountNum + ": balance=" + balance;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.