我的null
值为instrumentRented
我跑的时候
public class RentalAgreement
{
private MusicalInstrument instrumentRented;
public RentalAgreement(Customer renter,
RentalDate dateRented,
MusicalInstrument instrumentRented){
customer = renter;
rentalDate = dateRented;
instrumentRented = instrumentRented;
如何在MusicalInstrument
中初始化RentalAgreement
引用?
答案 0 :(得分:0)
使用this.instrumentRented = instrumentRented;
由于参数与field属性的名称相同,因此需要使用显式this
作为前缀来指定范围。
答案 1 :(得分:0)
您必须使用new运算符实例化一个类。
所以你的代码中必须有一些
instrumentRented = new MusicalInstrument();
>之前 访问它。完成此操作后,您可以执行该类中的函数。
instrumentRented.doSomething();
在上面的代码中,您似乎在构造函数中传递了它,因此这意味着调用者必须实例化它。
但是,我建议采用一种命名约定,您可以在其中查看变量是类成员还是局部变量。在上面的代码中,局部变量与参数具有相同的名称,因此不会将其设置为成员变量,而是将其分配给自身。根据环境的不同,你可能会收到关于这个的警告(不确定这个但是Eclipse肯定警告这样的一些东西)。这称为阴影,所以你需要做的是:
this.instrumentRented = instrumentRented;