Java 访问对象中对象的设置器
假设我有两门课:Java 访问对象中对象的设置器,java,class,object,Java,Class,Object,假设我有两门课: public class Customer { private String name; private Car car; public Customer() {} public Customer(String name, Car car) { this.name = name; this.car = car; } public void setName(String name) {this.
public class Customer {
private String name;
private Car car;
public Customer() {}
public Customer(String name, Car car) {
this.name = name;
this.car = car;
}
public void setName(String name) {this.name = name;}
public String getName() {return this.name;}
public Car getCar() {return this.car;}
}
及
从Martin Konecny在中的回答中,我了解到,为了从
客户
访问汽车
的getters,我会这样做:
Customer c = new Customer("Lefrost", "BMW");
String brand = c.getCar().getBrand();
但是我应该如何从
客户
访问汽车
的设置程序
我尝试了以下方法,效果很好:
// adding setter for 'car' in Customer class
public void setCar(Car car) {this.car = car;}
然后将Car
的数据字段内容更改如下:
c.setCar(new Car("Honda"));
但是这需要我创建一个新的Car
对象,它实际上并没有在Car
类中使用setter
我如何从
客户
访问汽车
的设定器?
如果没有好方法,是否有更好的方法从
Customer
更改Car
的数据字段内容?只需调用getCar
,然后在返回的对象上调用setBrand
方法:
c.getCar().setBrand("Honda");
由getCar()
返回的Car
将是存储在Customer
中的Car
,因此没有什么能阻止您直接在返回的对象上设置品牌
如果汽车
是不可变的,那么您的尝试:
c.setCar(new Car("Honda"));
是实现这一点的唯一方法。只需调用
getCar
,然后在返回的对象上调用setBrand
方法:
c.getCar().setBrand("Honda");
由getCar()
返回的Car
将是存储在Customer
中的Car
,因此没有什么能阻止您直接在返回的对象上设置品牌
如果汽车
是不可变的,那么您的尝试:
c.setCar(new Car("Honda"));
是实现这一点的唯一方法。如果brand字段不是final,您可以执行
c.getCar().setBrand(“本田”)
如果brand字段不是final,您可以执行c.getCar().setBrand(“本田”)
您需要获取Car对象,然后在其中设置属性:
c.setCar(new Car());
c.getCar().setBrand("Honda");
您需要获取汽车对象,然后在其中设置属性:
c.setCar(new Car());
c.getCar().setBrand("Honda");