java - 错误检查未注册

标签 java eclipse class

我确信对此有一个简单的答案,但是当我将余额设置为负数时,我希望系统打印一个错误,目前,它只是将负数打印到控制台,任何人都可以帮助我了解为什么会发生这种情况。任何答复表示赞赏。

package Assignment1;

public class Customer
{
    private String name;
    private String address;
    private int balance;

    public Customer(String nameParam, String addressParam, int balanceParam)
    {   
        name = nameParam;  
        address = addressParam;
        balance = balanceParam;
    }

    public void setName(String nameParam)
    {
        name = nameParam;
    }

    public String getName()
    {
        return name;
    }

    public void setAddress(String addressParam)
    {
        address = addressParam;
    }

    public String getAddress()
    {
        return address;
    }

    //I want the system to print an error should the balanceParam be less than 0
    public void setBalance(int balanceParam)
    {
        if (balanceParam >= 0)
        {
            balance = balanceParam;
        }
        else
        {
            System.out.println("Error: Invalid balance");
        }

    }


    public int getBalance()
    {
        return balance;
    }



    public static void main(String[] args) 
    {

        Customer customer1 = new Customer("Tom", "High Street", 100);
        Customer customer2 = new Customer("Mary", "Low Street", 110);

            //The balance for customer3 is set to a negative number
        Customer customer3 = new Customer("John", "Middle Street", -10);

        System.out.print(customer1.getName() + "\t");
        System.out.print(customer1.getAddress()+ "\t");
        System.out.println(customer1.getBalance());

        System.out.print(customer2.getName()+ "\t");
        System.out.print(customer2.getAddress()+ "\t");
        System.out.println(customer2.getBalance());

        System.out.print(customer3.getName()+ "\t");
        System.out.print(customer3.getAddress()+ "\t");
        System.out.println(customer3.getBalance());

    }

}

最佳答案

您永远不会调用打印错误的方法setBalence

要在构造 Customer 对象后立即打印错误,请更改构造函数以使用类字段的 setter 方法

public Customer(String nameParam, String addressParam, int balanceParam)
{   
    setName(nameParam);  
    setAddress(addressParam);
    setBalance(balanceParam);
}

此外,您可能希望通过抛出异常来阻止构造此类对象或在现有对象中设置负余额:

public void setBalance(int balanceParam) {
    if (balanceParam < 0) {
        throw new IllegalArgumentException("Error: Invalid balance");
    }
    balance = balanceParam;
}

关于java - 错误检查未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678236/

相关文章:

java - 如何更改加载的 tensorflow 模型中的设备配置

java - 我怎样才能在 java 中克服这个 HTTP GET 404 错误?

java - 将字符串转换为带括号的数组

java - 如何配置代理设置以便 eclipse indigo 可以安装新插件

c++ - 客户端的堆排序 vector ,错误地传递迭代器?

java - 通过脚本引擎的多次调用处理全局环境

java - 从 Java 运行 R 脚本

java - Gradle compileJava 任务警告 : [options] bootstrap class path not set in conjunction with -source 1. 6

html - Bootstrap 按钮悬停继承类

css - joomla 1.5 为每个菜单项提供其别名的类别