【发布时间】:2024-01-17 17:36:01
【问题描述】:
abstract class Coin{
String name;
String currency;
class EUR extends Coin{
EUR() {
super("EUR", "€");
}
}
class USD extends Coin{
USD() {
super("USD", "$");
}
}
private Coin (String name, String currency){
this.name = name
this.currency = currency}
}
class Person{
///variables
Coin coin;
Person(//Variables, Coin coin){
//Other assignments
this.coin = coin
}
}
基本上我想初始化一个将欧元作为硬币传递的人,而不创建新的欧元。 类似的东西
static final EUR euro = EUR
然后:
Person person = new Person(... , euro);
我不需要数百万欧元的实例,所以我不想每次都创建一个新的欧元
我知道我可以使用常量字符串来做这样的事情,但我实际上想传递一个 Coin 对象
我也尝试像这样在 Coin 类中初始化 EUR
static EUR euro = new EUR();
但 IDE 警告我这可能会导致线程死锁
【问题讨论】:
-
试试枚举而不是类?
-
你需要使用枚举
-
或者你可以定义
public static final Coin EUR = new Coin("EUR", "€");