Java - 在构造函数中将对象作为参数传递
Java - pass object as parameter in constructor
我的任务是使用一个 class 的实例作为另一个 class 的参数。我将用一个例子来描述我的问题。
public class Color {
public String color;
public Color (String color) {
this.color = color;
}
public Color grey = new Color("grey");
}
我的目标是构建另一个使用我的拳头 class 实例作为参数(例如汽车)的构造函数:
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 cannot find symbol"。我尝试了很多但都做不到 运行 而且我不完全理解 class 我猜的概念。
您的构造函数名称和您的 class 名称应该相同。 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);
}
}
A cannot find symbol
错误通常意味着它是 scope 的问题——也就是说,哪些位在哪里可见。在您的例子中,grey
是在 class Color
上定义的 ,但您正试图从 Car
使用它。如果您正在尝试构建一组可重用的 Color
对象,请制作 grey
static final
(static
表示它属于 整个 class Color
而不是特定的颜色),并将其命名为 GREY
以符合约定。
然后,从您的主要方法中,您仍然看不到 GREY
,因为它在另一个范围内。您可以通过调用 Color.GREY
.
来告诉 Java 在哪里可以找到它
我的任务是使用一个 class 的实例作为另一个 class 的参数。我将用一个例子来描述我的问题。
public class Color {
public String color;
public Color (String color) {
this.color = color;
}
public Color grey = new Color("grey");
}
我的目标是构建另一个使用我的拳头 class 实例作为参数(例如汽车)的构造函数:
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 cannot find symbol"。我尝试了很多但都做不到 运行 而且我不完全理解 class 我猜的概念。
您的构造函数名称和您的 class 名称应该相同。 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);
}
}
A cannot find symbol
错误通常意味着它是 scope 的问题——也就是说,哪些位在哪里可见。在您的例子中,grey
是在 class Color
上定义的 ,但您正试图从 Car
使用它。如果您正在尝试构建一组可重用的 Color
对象,请制作 grey
static final
(static
表示它属于 整个 class Color
而不是特定的颜色),并将其命名为 GREY
以符合约定。
然后,从您的主要方法中,您仍然看不到 GREY
,因为它在另一个范围内。您可以通过调用 Color.GREY
.