如何使用另一个类的变量

时间:2012-04-13 15:50:43

标签: static-variables

我有一个课程概述,我试图保存一个客户。 现在我想在另一个班级中使用该客户。现在我使用公共静态值,但我的老师说使用静态变量并不好。你能解决这个吗?

public class OverView {
  public static Customer CurrentCustomer;

  CurrentCustomer = new Customer("Tom",23);
}

public class removeCustomer{

  Customer removeCustomer = OverView.CurrentCustomer;
}

3 个答案:

答案 0 :(得分:1)

你的老师是对的,不要直接与静态变量接口,实现getter / setter方法

有关详细信息,请参阅http://en.wikipedia.org/wiki/Mutator_method

答案 1 :(得分:0)

您需要概览实例才能访问其非静态成员。尝试:

public class OverView {
  public Customer CurrentCustomer = new Customer("Tom",23);
}

Public class removeCustomer{

  OverView ov = new OverView();
  Customer removeCustomer = ov.CurrentCustomer;
}

也建议不要将CurrentCustomer声明为public,并实现公共get / set方法来访问它

答案 2 :(得分:0)

更好的是:在您的示例中,您根本不需要触摸客户实例。 "删除"功能应该是Customer类的成员方法。我甚至不确定你是否需要currentCustomer是静态的,但我保持静态。

public class Customer {

    //Customer constructor, etc.

    * * * 

    public void remove() {
        //remove the customer, whatever that entails
    }

}

public class OverView {

    private static Customer currentCustomer;

    public static void someMethod() {
        currentCustomer = new Customer("Tom",23);

        * * *

        //all done with this customer
        currentCustomer.remove();

        //but notice that the currentCustomer object still exists
    }
}