我有一个课程概述,我试图保存一个客户。 现在我想在另一个班级中使用该客户。现在我使用公共静态值,但我的老师说使用静态变量并不好。你能解决这个吗?
public class OverView {
public static Customer CurrentCustomer;
CurrentCustomer = new Customer("Tom",23);
}
public class removeCustomer{
Customer removeCustomer = OverView.CurrentCustomer;
}
答案 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
}
}