【发布时间】:2020-09-22 08:45:51
【问题描述】:
我正在做一个尝试学习基本 java 的教程。我 99% 确定我正确地遵循了教程,但我收到了一堆错误消息:
C:\Users\krist\IdeaProjects\Hello World\src\Main.java:10:45
java: ')' expected
C:\Users\krist\IdeaProjects\Hello World\src\Main.java:11:28
java: not a statement
C:\Users\krist\IdeaProjects\Hello World\src\Main.java:11:36
java: ';' expected
在教程中,他们不使用此符号,但代码在教程中仍然有效。 会不会是 Java 中的一些更新改变了一些事情,或者我可能缺少一些软件来完成这项工作?
这是 Car.java 的代码:
import java.awt.*;
public class Car {
// Data types:
// int -> 1, 2, 3...
// double -> decimal 34.5, 32.1
// String -> "a1a2" or "Hello World"
// Color -> from awt library
// Boolean -> true/false
double averageMilesPerGallon;
String licencePlate;
Color paintColor;
boolean areTaillightsWorking;
public Car(double inputAverageMPG,
String inputLicencePlate,
Color inputPaintColor,
boolean inputAreTaillightsWorking) {
this.averageMilesPerGallon = inputAverageMPG;
this.licencePlate = inputLicencePlate;
this.paintColor = inputPaintColor;
this.areTaillightsWorking = inputAreTaillightsWorking;
}
public void changePaintColor(Color newPaintColor) {
this.paintColor = newPaintColor;
}
}
这是 main.java 的代码:
import java.awt.*;
import static java.awt.Color.*;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
System.out.println("Markus");
Car myCar = new Car (inputAverageMPG: 25.5,
inputLicencePlate: "1BC32E",
inputColor.BLUE,
inputAreTaillightsWorking: true);
Car sallyCar = new Car (inputAverageMPG: 13.9,
inputLicencePlate: "3D20BN",
inputColor.BLACK,
inputAreTaillightsWorking: false);
System.out.println("My Car's licence plate: " +myCar.licencePlate);
System.out.println("Sally's Car's licence plate: " +sallyCar.licencePlate);
}
}
很抱歉,如果这个问题措辞不佳,我仍然不知道所有的技术术语可以很好地解释这个问题。
【问题讨论】:
-
new Car (inputAverageMPG: 25.5, ...不是有效的 java,应该是new Car (25.5, ... -
new Car (inputAverageMPG: 25.5, inputLicencePlate: "1BC32E", inputColor.BLUE, inputAreTaillightsWorking: true)- 类似的东西不是有效的 Java 语法 - 它甚至意味着什么?inputLicencePlate: 25.5应该做什么? -
您正在使用 Java 类构造函数作为一种 JavaScript。您只需要以这种方式通过构造函数传递参数: Car myCar = new Car(25.5, "1BC32E", BLUE, true);无需传递键值对。
标签: java methods constructor