错误:在参数结束前期待“)”

时间:2014-03-04 17:06:19

标签: java

所以我正在尝试为一个更大的任务创建一个名为“Move”的类。在这个类中,有一个2“Move”构造函数:一个只接受行和列的变化(2个参数)并调用移动“Move”,一个接受移动名称,行中的变化,以及列的变化(3个参数)。

但是当我尝试编译我的.java文件时,它告诉我它在构造函数完成之前需要一个“)”来定义它需要的参数。

public class Move {

    private String moveName;
    private int rowDelta;
    private int colDelta;

    public Move(int rowDelta, int colDelta) {
        this("Move", rowDelta, colDelta);
    }

    public Move(String moveName; int rowDelta; int colDelta) {
        this.moveName = moveName;
        this.rowDelta = rowDelta;
        this.colDelta = colDelta;
    }

    public int getRowDelta() {
        return rowDelta;
    }

    public int getColDelta() {
        return colDelta;
    }

    public String toString() {
        return moveName;
    }

}

它给我的错误如下:

Move.java:11: error: ')' expected
    public Move(String moveName; int rowDelta; int colDelta) {
                               ^
Move.java:11: error: ';' expected
    public Move(String moveName; int rowDelta; int colDelta) {
                                                           ^
2 errors

5 个答案:

答案 0 :(得分:4)

;用于结束陈述。因此,您不应该使用它们来分隔参数:

public Move(String moveName; int rowDelta; int colDelta)

改为使用,

public Move(String moveName, int rowDelta, int colDelta)

答案 1 :(得分:4)

学习Java语法,您应该使用逗号而不是分号。替换这个:

Move(String moveName; int rowDelta; int colDelta)

使用

Move(String moveName, int rowDelta, int colDelta)

答案 2 :(得分:2)

更改此

public Move(String moveName; int rowDelta; int colDelta) {

public Move(String moveName, int rowDelta, int colDelta) {

我认为你对for循环感到困惑。这些不是statements最后有分号。它们只是parameters方法的一部分,应由,

分隔

答案 3 :(得分:2)

使用逗号分隔在函数内传递的值。

你可以用“;”仅在for循环中分离参数

答案 4 :(得分:1)

public Move(String moveName; int rowDelta; int colDelta)错误,您需要

public Move(String moveName, int rowDelta, int colDelta) // comma, not semi-colon