【发布时间】:2019-11-06 23:49:48
【问题描述】:
我知道网上有很多东西,过去两个小时我一直在寻找试图修复我的代码。
我正在制作一个名为 Car 的不可变类,我在网上看过很多视频和阅读文章。
就连我在大学时的笔记也谈到了在上课时创建一个 Singleton 课程Immutable(我的笔记和往常一样是垃圾)。
无论如何,下面的代码包含了我在视频中看到和在文章中阅读的所有内容,唯一的区别是我观看和阅读的所有内容是它们的对象没有其他变量。
public final class Car{
private static Car carSingleton = null;
private final String owner;
private final String reg;
private final String make;
private final int kilometres;
private final double price;
private Car() {}
public static Car getInstance()() {
if(carSingleton == null) {
carSingleton = new Car();
}
return carSingleton;
}
public String getOwner(){return owner;}
public String getReg(){return reg;}
public String getMake(){return make;}
public int getKilometres(){return kilometres;}
public double getPrice(){return price;}
}
我在 getInstance() 构造函数中遇到错误 Car() is undefined.
编辑: 这是给我的实际问题
问题 1 下面给出的是一个可变的 Car 类。重写它,让它变得不可变,并编写一个简单的测试程序。
class Car{
private String owner;
private String reg;
private String make;
private int kilometres;
private double price;
public Car(String owner, String reg, String make, int kilometres, double price){
this.owner = owner; this.reg = reg;this.make = make;
this.kilometres = kilometres; this.price = price;
}
public String owner(){return owner;}
public String reg(){return reg;}
public String make(){return make;}
public intkilometres(){return kilometres;}
public double price(){return price;}
public void setPrice(double p){price = p;}
public void setOwner(String ow){owner = ow;}
public void setKil(int k){kilometres = k;}
public void setMake(String m){make = m;}
}
【问题讨论】:
-
getInstancen()返回的 Car 实例应该有什么“所有者”?什么“价格”?简而言之,对这样的类使用单例是没有意义的。 -
你得到那个异常是因为没有零参数构造函数。这必须在编译期间发生?其他值得注意的事情,
getInstancen()如果您在意,可能会稍微拼写错误。 car 的构造函数,如果是单例,则应该是私有的。要解决此问题,请调用 Car 构造函数并传入一些值,它应该可以正常工作(ish)。 -
这能回答你的问题吗? Java Constructor undefined?
-
那么为什么它们是最终的?为什么只有一辆车?