我正在尝试将对象作为参数传递给构造函数.是否允许以下代码?特别是我进入Toyota和Corolla进入的部分Car car,然后进入String brand和String model.
public class Car {
private String brand, model;
public Car(String brand, String model) {
this.brand = brand;
this.model = model;
}
// getters and setters
}
public class Customer {
private String name;
private Car car;
public Customer(String name, Car car) {
this.name = name;
this.car = car;
}
// getters and setters
}
public class Service {
Customer customer = new Customer("John", "Toyota", "Corolla");
}
Run Code Online (Sandbox Code Playgroud)
Customer没有带3个字符串的构造函数,因此您必须在以下位置传递String和Car对象:
更改
Customer customer = new Customer("John", "Toyota", "Corolla");
Run Code Online (Sandbox Code Playgroud)
至
Customer customer = new Customer("John", new Car("Toyota", "Corolla"));
Run Code Online (Sandbox Code Playgroud)
解决方案2是为Customer提供一个3 String构造函数,并在构造函数中创建一个Car对象.
public Customer(String name, Car car) {
this.name = name;
this.car = car;
}
// and
public Customer(String name, String brand, String model) {
this.name = name;
this.car = new Car(brand, model);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |