Java-将对象作为构造函数中的参数传递
我的目标是使用一个类的实例作为另一个类的参数。我将用一个例子来描述我的问题Java-将对象作为构造函数中的参数传递,java,parameters,constructor,cannot-find-symbol,Java,Parameters,Constructor,Cannot Find Symbol,我的目标是使用一个类的实例作为另一个类的参数。我将用一个例子来描述我的问题 public class Color { public String color; public Color (String color) { this.color = color; } public Color grey = new Color("grey"); } 我的目标是构建另一个构造函数,它使用First类的实例作为参数(例如一辆汽车): 我得到错误“Java
public class Color {
public String color;
public Color (String color) {
this.color = color;
}
public Color grey = new Color("grey");
}
我的目标是构建另一个构造函数,它使用First类的实例作为参数(例如一辆汽车):
我得到错误“Java找不到符号”。我做了很多尝试,但都无法运行,而且我也不完全理解我想的类的概念。您的构造函数名和类名应该是相同的<代码>自动与
汽车
不同。换一个就行了。此外,未定义灰色的
。我相信您希望使用Color.grey
,这意味着将其定义为静态
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);
}
}
找不到符号
错误通常意味着这是范围问题——也就是说,哪些位在哪里可见。在您的情况下,灰色
是在类颜色
上定义的,但您试图从汽车
使用它。如果您试图构建一组可重用的Color
对象,请将gray
static final
(static
表示它属于整个类Color
,而不是特定的颜色),并将其称为grey
,以符合约定
然后,从主方法中,您仍然看不到
灰色
,因为它在另一个范围内。你可以通过调用Color.GREY告诉Java在哪里可以找到它,你可以使用carmycar=newcar(80,newcolor(“GREY”)代码>然后阅读更多教程。公共颜色灰色=新颜色(“灰色”)
将导致堆栈溢出错误
,因为它是颜色
类中的成员变量:要创建颜色
,您需要创建颜色
,这将创建颜色
,这将创建颜色
…这里有多个问题,您应该始终发布整个错误消息——在本例中,它会准确地显示未知符号的位置。谢谢您,chrylis,解释得很好。
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);
}
}