我的gaol是使用类的实例作为另一个类的参数。我将以一个例子来描述我的问题。
public class Color {
public String color;
public Color (String color) {
this.color = color;
}
public Color grey = new Color("grey");
}
我的目标是构建另一个使用我的拳头类的实例作为参数的构造函数(例如汽车):
public class car {
int PS;
Color color;
public Auto (int PS, Color color) {
this.PS = PS;
this.color = color;
}
public static void main (String args[]) {
car myCar = new car(80, grey);
}
我收到错误“Java找不到符号”。我尝试了很多,但无法让它运行,我不完全理解我猜的类的概念。
答案 0 :(得分:2)
您的构造函数名称和类名应该相同。 Auto
与car
不同。只需改变其中一个。此外,grey
未定义。我相信你想使用Color.grey
,这意味着将其定义为static
。
public class Color {
public String color;
public Color (String color) {
this.color = color;
}
public static Color grey = new Color("grey");
}
public class car {
int PS;
Color color;
public car (int PS, Color color) {
this.PS = PS;
this.color = color;
}
public static void main (String args[]) {
car myCar = new car(80, Color.grey);
}
}
答案 1 :(得分:0)
cannot find symbol
错误通常意味着范围存在问题 - 也就是说,哪些位在哪里可见。在您的情况下,grey
已在类Color
上定义,但您尝试在Car
中使用它。如果您尝试构建一组可重复使用的Color
对象,请grey
static final
(static
表示它属于整个班级{{1} 而不是特定的颜色),并将其命名为Color
以符合惯例。
然后,从您的main方法中,您仍然看不到GREY
,因为它在另一个范围内。您可以通过调用GREY
来告诉Java在何处找到它。