在BlueJ中,如何正确地将在一个构造函数中创建的变量调用到另一个类中的构造函数中?

问题描述:

我有这样的代码:在BlueJ中,如何正确地将在一个构造函数中创建的变量调用到另一个类中的构造函数中?

public class Address 
{ 
// instance variables 
private String postcode; 
private String street; 
private String town; 


/** 
* Constructor for objects of class Address 
*/ 
public Address(String street, String town, String postcode) 
{ 
    // initialise instance variables 
    this.street = street; 
    this.town = town; 
    this.postcode = postcode; 
} 



public String getPostcode() 
{ 
    return postcode; 
} 

public String getStreet() 
{ 
    return street; 
} 

public String getTown() 
{ 
    return town; 
} 

public void printAddress() 
{ 
    System.out.println(street); 
    System.out.println(town); 
    System.out.println(postcode); 
} 

public void setFullAddress(String street, String town, String postcode) 
{ 
    this.street = street; 
    this.town = town; 
    this.postcode = postcode; 
} 

public void setPostcode(String postcode) 
{ 
    this.postcode = postcode; 
} 

public void setStreet(String street) 
{ 
    this.street = street; 
} 

我需要调用构造函数中的变量邮编,镇,街道,另一类是:

private String firstName; 
private String lastName; 
private String libraryNumber; 
private int noOfBooks; 
private Address address; 


/** 
* this constructor creates a borrower and sets the number of books on loan to one. 
* 
* @param in order for the borrower to be created the fName, lName and lNumber must be provided 
*/ 
public Borrower(String fName ,String lName ,String lNumber, String town, String street, String postcode) 
{ 
    firstName = fName; 
    lastName = lName; 
    libraryNumber = lNumber; 
    noOfBooks = 1; 
} 

我曾尝试在几个方面这样做然而,还没有找到一种方法来正确调用它们,所以当创建对象借用者时,它会从地址类中抓取邮政编码,城镇和街道。任何帮助表示赞赏。

+0

将地址传递给构造函数,并将实例字段“address”设置为等于它。使用get方法,你可以访问它的所有变量......? –

您可以使用:

address.setFullAddress(street,town,postcode); 

之后,你可以使用get address类的方法,无论你想。

一种方法是直接与类Address的对象调用构造函数:

public Borrower(String fName ,String lName ,String lNumber, Address addr) 
{ 
... 
    address = addr; 
} 

其他方式将是创建在构造函数中的对象:

public Borrower(String fName ,String lName ,String lNumber, String town, String street, String postcode) 
{ 
... 
    address = new Address(town, street, postcode); 
} 

在的的construtor第二类只传递Address类的引用。

Public Borrower(Address address){ 
this.address=address; 
} 

现在添加Address的getter方法,然后你可以访问Address类的所有实例变量。