假设我有一个ParkingMeter
类和一个ParkingSlip
类。只能从ParkingMeter
类内部创建ParkingSlips,但应通过名为ParkingSlips
的外部类访问Car
(以便您可以检查每辆车是否已支付 parking 费)。
有没有一种方法可以确保只能在ParkingMeter中创建ParkingSlips
,而其他类仍然可以访问它?
最佳答案
如果您不想将ParkingSlip
设为内部类,则将这两个类放在同一包中,并让ParkingSlip
的构造函数package-private。它不会阻止同一程序包中的其他类创建 parking 凭条,但是会阻止其他程序包中的邪恶者。
package parking;
public class ParkingSlip {
ParkingSlip() {
}
}
public class ParkingMeter {
public ParkingSlip getSlip() {
return new ParkingSlip();
}
}