Java 什么';我的二传手和接球手怎么了?

Java 什么';我的二传手和接球手怎么了?,java,getter-setter,Java,Getter Setter,我对java非常陌生,我的代码似乎不起作用。请帮忙。 我有这个班级帐户 public class Account { private String name; private double balance; Account(){ name = null; balance = 0; } Account(String name, double balance){ setName(name); //

我对java非常陌生,我的代码似乎不起作用。请帮忙。
我有这个班级帐户

public class Account {
    private String name;
    private double balance;


    Account(){
        name = null;
        balance = 0;
    }

    Account(String name, double balance){
        setName(name);
//        this.name = name;
        setBalance(balance);
//        this.balance = balance;
        System.out.println(this.name + " " + this.balance);
    }

    private void setName(String name){
        if (name == null){
            System.out.println("Invalid Name");
        }
        else this.name = name;
    }

    private void setBalance(double balance) {
        if (balance < 0){
            System.out.println("Balance should not be negative");
        }
        else this.balance = balance;
    }

    private String getName() {
        return name;
    }

    private double getBalance() {
        return balance;
    }

    public double withdraw(double amount){
        if (amount < this.balance){

     this.balance = balance - amount;
        }
        else if (amount > this.balance) {
            System.out.println("Balance is less than Withdrawal Amount.\nCheck balance and try again");
        }
        else;   
        System.out.println(this.name + " " + this.balance);
        return this.balance; 
        }   
}


为什么它不能打印正确的余额?

输入是什么,错误的输出是什么样子?
else是不必要的。else子句是可选的。对我来说也很好。只是想知道,为什么你的getter是私有的,只有少数情况下它们是私有的,而你肯定不是其中之一。它先打印myName 1000,然后打印这个-余额小于取款金额。请检查余额,然后重试
Account MySavingsAccount = new Account("myName", 1000);
        MySavingsAccount.withdraw(600);