初始化类引用

时间:2013-06-16 08:30:41

标签: string class reference null initialization

我的null值为instrumentRented 我跑的时候

public class RentalAgreement
{
    private MusicalInstrument instrumentRented;

public RentalAgreement(Customer renter, 
    RentalDate dateRented, 
    MusicalInstrument instrumentRented){            
        customer = renter;
        rentalDate = dateRented;
        instrumentRented = instrumentRented;

如何在MusicalInstrument中初始化RentalAgreement引用?

2 个答案:

答案 0 :(得分:0)

使用this.instrumentRented = instrumentRented;

由于参数与field属性的名称相同,因此需要使用显式this作为前缀来指定范围。

答案 1 :(得分:0)

您必须使用new运算符实例化一个类。

所以你的代码中必须有一些

instrumentRented = new MusicalInstrument();
之前 访问它。完成此操作后,您可以执行该类中的函数。

instrumentRented.doSomething();

在上面的代码中,您似乎在构造函数中传递了它,因此这意味着调用者必须实例化它。

但是,我建议采用一种命名约定,您可以在其中查看变量是类成员还是局部变量。在上面的代码中,局部变量与参数具有相同的名称,因此不会将其设置为成员变量,而是将其分配给自身。根据环境的不同,你可能会收到关于这个的警告(不确定这个但是Eclipse肯定警告这样的一些东西)。这称为阴影,所以你需要做的是:

this.instrumentRented = instrumentRented;