简体   繁体   English

无法返回变量java

[英]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 . 一个问题是accountNumbalance被声明为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM