提问人:UpAdam 提问时间:7/25/2022 最后编辑:UpAdam 更新时间:7/26/2022 访问量:569
标记“{”上的语法错误,{ 应在此标记 [关闭] 之后
Syntax error on token "{", { expected after this token [closed]
问:
闭。这个问题不可重现或是由错别字引起的。它目前不接受答案。
这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。
去年关闭。
这篇文章是去年编辑并提交审核的,但未能重新打开该帖子:
原始关闭原因未解决
我完全不明白这个语法错误,我对 Java 非常了解,我正在尝试按照作业上的说明进行操作,但我不知道是什么阻止了它们工作
import java.util.Scanner;
public class Point {
private double xCoord;
private double yCoord;
public double getxCoord(){ //accessors
return xCoord;
}
public double getyCoord(){
return yCoord;
}
Point defaultConstructor = new Point(){ // (the error is one this line) default constructor - I have to make a point object in the Main with this
xCoord = 0;
yCoord = 0;
System.out.println("Testing default constructor");
}
Point twoArgConstructor = new Point( 3.2, 4.5){ // (the error is one this line) two-argument constructor
xCoord = 3.2;
yCoord = 4.5;
System.out.println("Testing two-argument constructor");
}
public String toString (){
System.out.println("("+xCoord+", "+yCoord+")");
}
public void defaultConstructor() {
}
public void twoArgConstructor() {
}
}
如果有帮助,这是主类
import java.util.Scanner;
public class FrazierLab9{
public static void main(String args[]){
Point point1 = new Point();
Point point2 = new Point();
point1.defaultConstructor();
point1.toString();
point2.twoArgConstructor();
point2.toString();
}
}
答:
0赞
Yiannis Dermitzakis
7/25/2022
#1
声明 getxCoord 方法时忘记用括号括起来
public double getxCoord({ //accessors
return xCoord;
}
即使您不使用 IDE,编译器也应该为您提供有关问题的更多信息。对于上面的代码,执行
javac Point.java
我得到了
Point.java:7: error: illegal start of type
public double getxCoord({ //accessors
^
Point.java:7: error: ')' expected
public double getxCoord({ //accessors
^
...
这表明在第 7 行开始检测到错误。
OP编辑后
这些不是构造函数。您需要在 Point 类中定义构造函数,然后使用 或在其他地方(例如在主类中)从 Point 类构造 Point 对象。然后,可以从对象中调用所需的任何方法。Point p = new Point()
Point p = new Point(3.4,5.6)
public Point(){
this.xCoord = 0;
this.yCoord = 0;
System.out.println("Testing default constructor");
}
public Point(double x, double y){
this.xCoord = x;
this.yCoord = y;
System.out.println("Testing two-argument constructor");
}
...
评论
0赞
UpAdam
7/26/2022
我的错,我想我打错了什么的。但是我的 getxCoord 有闭括号。我的问题是构造函数 + 第 33 行的最后一个括号上也有一个红色(显示 4 个语法错误 - 语法错误,插入“;”以完成 FieldDeclaration,语法错误,插入“}”以完成 ClassBody,语法错误,插入“;”以完成 FieldDeclaration,语法错误,插入“}”以完成 ClassBody)
0赞
Yiannis Dermitzakis
7/26/2022
您的编辑完全改变了问题。您首先需要了解什么是构造函数,这些构造函数*..构造不是有效的 Java 代码。
评论
getxCoord(
)
getxCoord
getyCoord
)
defaultConstructor
twoArgConstructor
main