0

我有一个班级概述,我尝试在其中保存客户。现在我想在另一个类中使用该客户。现在我使用的是Public Static值,但是我的老师说使用静态变量不好。你能解决这个问题吗

public class OverView {
  public static Customer CurrentCustomer;

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

public class removeCustomer{

  Customer removeCustomer = OverView.CurrentCustomer;
}
4

3 回答 3

1

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

请参阅http://en.wikipedia.org/wiki/Mutator_method了解更多信息!

于 2012-04-13T15:54:16.957 回答
0

更好的是:在您的示例中,您根本不需要触摸 Customer 的实例。“删除”功能应该是 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
    }
}
于 2012-04-13T16:13:53.377 回答
0

您需要一个 Overview 实例来访问其非静态成员。尝试:

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

Public class removeCustomer{

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

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

于 2012-04-13T15:53:55.313 回答