JAVA-两个对象之间的关系

标签 java class object

我对 OOP 和 Java 还很陌生,有一个可能很微不足道的问题,但我在网上找不到答案。

我正在用Java做标准银行账户程序——一个有客户的程序,每个客户都有银行账户(一个客户可能有多个银行账户!),我可以存款或取款。每个银行帐户都有一个唯一的编号(即使某人拥有多个银行帐户,每个银行帐户都有其唯一的编号)

我的代码已编译,存款和取款操作正常。

问题如下 - 我无法将多个银行帐户归因于一位客户,在我的程序中,客户只能拥有一个银行且不能超过一个银行帐户。

我有 3 个类 - Account、Client、BankMain。您可以在下面看到它们

public class Account {
    private int balance;
    private String NumAccount; // each bank account has a unique number

    public Account(int money, String num) {
        balance = money;
        NumAccount = num;
    }

    public String printAccountNumber() {
        return NumAccount;
    }
    // below are the methods for withdraw,deposit- they are working properly
}

类客户端

public class Client {
    private String name;// name of the client
    private Account account;

    // the account associated to the client. Probably I should change sth
    // here
    // but I don't know what
    public Client(String nom, Compte c) {
        name = nom;
        account = c;
    }

    public void printName() {
        System.out.println(
                "Name: " + name 
                + "\nAccount number: " + account.printAccountNumber() 
                + "\nSolde: " + account.printBalance() + "\n"
        );
    }
}

和 BankMain

public class BankMain {

    public static void main(String[] args) {
        Account account1 = new Account(1000, "11223A");
        Account account2 = new Account(10000, "11111A");
        Client client1 = new Client("George", account1);
        Client client2 = new Client("Oliver", account2);
        // now this is working correctly
        client1.printName();
        client2.ptintName();
        /*
         * The problem is that I don't know what to do if I want account1
         * and account2 to belong both to client1. I tried Client client1 =
         * new Client("George",account1); Client client1 = new
         * Client("Oliver", account2); but got compilation error
         */
    }
}

你知道我该如何解决这个问题吗?我应该怎么做才能将多个银行帐户关联到同一客户?

提前致谢 乔治

最佳答案

查看此代码:

//Account

public class Account
{
    private int balance;
    private String accNo;

    public Account(int money,String num) {
    balance = money;
    accNo = num;
}

public int getBalance() {
        return balance;
    }

public void setBalance(int balance) {
    this.balance = balance;
}

public String getAccNo() {
    return accNo;
}

public void setAccNo(String accNo) {
    this.accNo = accNo;
}

}

//Client 

import java.util.ArrayList;
import java.util.Collection;

public class Client 
{
    private String clientName;
    private HashSet<Account> accounts;
public Client(String name)
{
    this.clientName = name;
    this.accounts = new HashSet<Account>();
}

public void addAccount(Account account) {

    accounts.add(account);
}

public String getClientName() {
    return clientName;
}

public void setClientName(String clientName) {
    this.clientName = clientName;
}

public Collection<Account> getAccounts() {
    return accounts;
}

public void setAccounts(HashSet<Account> accounts) {
    this.accounts = accounts;
}

public void printAccountDetails() {

    System.out.println("Account details :");
    int counter= 0;
    for(Account acc : accounts) {
        counter ++;
        System.out.println("Account details for Account '"+counter+"' :\n");
        System.out.println("Account Number : "+ acc.getAccNo() +" Balance :" + acc.getBalance() );
    }
}

}

// Bank class


 public class BankMain {

    public static void main(String[] args) 
    {

        Account account1 = new Account(1000,"11223A");
        Account account2 = new Account(10000,"11111A");
        Client client = new Client("George");

        client.addAccount(account1);
        client.addAccount(account2);

        client.printAccountDetails();
    }

}

在这里您可以添加任意数量的帐户。

关于JAVA-两个对象之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28382260/

相关文章:

Python 类、实例变量和访问器方法

javascript - 在javascript中实现一个将对象转换为字符串的递归函数

java - 如何检查类文件版本 50.0 (Java 6) 是否已经过预验证?

java - 桌面客户端 Web 服务器通信

c++ - 在 CMake 项目中链接静态库 - 未定义的引用

java - 找不到类 cygwin,错误的解释器

java - 将数组作为对象的参数传递问题

c# - 通过两个属性比较两个对象

java - Apache Mina SSHD 1.0.0 设置用户目录和映射

java - 如何添加日期,然后将其与 Hibernate 中的当前日期进行比较?