【发布时间】:2014-09-26 03:04:42
【问题描述】:
只想问一下我在下面创建的类是否正确,或者是否由于使用了静态对象列表而出现问题,以及我的封装实现是否正确,因为我需要限制对我的静态变量的访问。
public class Car {
private String carName, carPlateNumber;
private static List<Car> carList;
public Car(String carName, String carPlateNumber) {
super();
this.carName = carName;
this.carPlateNumber = carPlateNumber;
}
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public String getCarPlateNumber() {
return carPlateNumber;
}
public void setCarPlateNumber(String carPlateNumber) {
this.carPlateNumber = carPlateNumber;
}
public static void createCarList() {
carList = new ArrayList<Car>();
}
public static void addCarToList(Car car) {
carList.add(car);
}
public static Car getCarAt(int location) {
return carList.get(location);
}
public static void clearCarList() {
carList.clear();
}
public static List<Car> getCarList() {
return carList;
}
}
然后像这样使用这个类
Car.createCarList();
Car.addCarToList(new Car("Mustang","CA-12343"));
. . .
. . .
等等……
【问题讨论】:
-
为什么在
Car?感觉很奇怪,您正在使用的 bean 有自己和其他实例的缓存。 -
为什么不改用
enum? -
你能给我另一个例子来正确实现它吗?因为我很困惑我如何才能拥有一个供其他班级使用的汽车列表实例。
-
您必须将 bean 字段和缓存分开,bean 必须由其元素 Car(platnumber 、 model 、 name 等)组成,汽车列表应该/以某种方式必须是主要的。另外,如果您使用的是静态字段,则无需封装它(getter/setter),您应该直接访问它,
-
@agbinfo 您能否详细说明“为什么不改用
enum?”的意思?您如何以及为什么要使用enum?