繁体   English   中英

如何创建使用另一个类中的变量的Java对象?

[英]How do you create a java object that uses a variable from another class?

如何创建使用另一个类中的变量的Java对象,或调用整个构造函数?

例如,accountNumber,firstName,lastName,phone都是在地址中传递的变量,它们由街道,城市,州和邮政编码组成,并且已经创建:

Address address = new Address(street, city, state, zip);

数据仅包含兆字节,并且已经创建:

Data data = new Data(megabytes);

这是我为客户对象准备的:

Customer customer = new Customer(accountNumber, firstName, lastName, address, phone, data);

这应该是“重载的构造函数”,但是我不明白这是什么意思。

这是我到目前为止的构造函数:

public Customer(String accountNumber, String firstName, String lastName, Address address, int phone, Data megabytes)
{
    this.accountNumber = accountNumber;
    this.firstName = firstName; 
    this.lastName = lastName;
    this.address = address; 
    this.phone = phone; 
    this.megabytes= megabytes; 
}

我得到错误:

The constructor Customer(String, String, String, Address, int, Data) is undefined

一切看起来一目了然。 我希望您在编译之前先保存文件。

由于您提到您不了解重载的构造函数是什么,因此我将尽力说明这一点。

重载的构造函数具有相同的构造函数名称,但在以下方面与其他构造函数不同:

  1. 它有不同数量的形式论证
  2. 构造函数的形式参数类型的顺序不同

这是一个例子-

public class Customer {
    private String firstName;
    private String lastName;
    private int phoneNumber;

    public Customer() {
        // default constructor
    }

    public Customer(String firstName) {
        this.firstName = firstName;
    }

    public Customer(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public Customer(String firstName, String lastName, int phoneNumber) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.phoneNumber = phoneNumber;
    }

    public Customer(int phoneNumber, String firstName, String lastName) {
        this.phoneNumber = phoneNumber;  
        this.firstName = firstName;
        this.lastName = lastName;
    }

// This is not an overloaded constructor as there is already a constructor of type
// Customer(String, String)

//    public Customer(String lastName, String firstName) {
//        this.lastName = lastName;
//        this.firstName = firstName;
//    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM