Как я могу связать класс A с классом B и вернуть ссылку на класс B из метода, расположенного в классе A? - PullRequest
0 голосов
/ 06 февраля 2020

Класс A

    public class Customer {

// Add instance varables
private String lName;
private String fName;
private String address;
private String zip;

//    A constructor that initializes the last name, first name, address, and zip code.
public Customer(String lN, String fN, String addr, String zi) {
    lName = lN;
    fName = fN;
    address = addr;
    zip = zi;
}


//    setAccount(Account a) - Sets the Account for this customer


}

//    getAccount() - Returns a reference to the Account object associated with this customer
public Account getAccount(){
    return();
}

}

Я не знаю, как "ссылаться" на объект из другого класса. Я не могу создать объект, потому что я хочу, чтобы все было универсальным и могло быть создано позже и чтобы два класса были правильно связаны друг с другом.

Класс B

    public class Account {

// Add instance variables
private String accountNumber;
private double balance;
private Customer customer;


// A constructor that initializes the account number and Customer, and sets the blance to zero.
public Account(String aN, Customer c) {
    accountNumber = aN;
    balance = 0.00;
    customer = c;
}

Итак Я не могу понять, как создать установленную учетную запись и получить методы учетной записи в классе A

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Это проблема курицы и курицы. Один объект должен быть создан в первую очередь. Неважно, кто это, но нужно быть им. Если клиент и учетная запись навсегда связаны друг с другом, я настоятельно рекомендую сделать поля 'окончательными'.

class Customer {

    private final Account account;

    public Customer() {
        account = new Account(this);
    }

    public Account getAccount() {
        return account;
    }

}

class Account {

    private final Customer customer;

    public Account(Customer customer) {
        this.customer = customer;
    }

    public Customer getCustomer() {
        return customer;
    }

}
0 голосов
/ 06 февраля 2020

Если у Клиента одна учетная запись, добавьте от Клиента:

private Account account;

public void setAccount( Account account ){ this.account = account; }

public Account getAccount(  ){ return account; }

и удалите все, что связано с Клиентом, из учетной записи. Затем вы можете использовать getAccount () от A (Customer), чтобы вернуть ссылку на B (Account)

Если вы хотите другой способ (Учетные записи имеют клиентов):

public class Account {

// Add instance variables
private String accountNumber;
private double balance;
private Customer customer;


public Account(String aN) {
    accountNumber = aN;
    balance = 0.00;
}

public Customer getCustomer(){ return customer;}
public void setCustomer(Customer customer){ this.customer = customer;}

}

.. . затем вы можете использовать getCustomer () из A (Account), чтобы получить ссылку на B (Customer)

Какой класс имеет ссылку на другой, полностью зависит от дизайна вашего решения.

...