2014-03-04 35 views
0
年底前

所以我试图创建一个名为“移动”类一个更大的任务。在这一类中,有一个2“移动”构造函数:一个只在行和列(2个参数)的变化需要,并调用移动“移动”,和一个发生在一招名,行的变化,列中的变化(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 
+1

在参数列表分开的元件与','。你为什么在一个地方做而不是另一个呢? –

回答

4

;是结尾的声明。所以,你不应该使用它们分开参数:

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

使用,代替:

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

啊,好的,谢谢。 (显而易见,我是一个java新手?) – OmarMjhd

4

学习Java的语法时才,你应该用逗号而不是分号。替换此:

Move(String moveName; int rowDelta; int colDelta) 

随着

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

public Move(String moveName; int rowDelta; int colDelta)是错误的,你需要

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

更改此

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

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

我觉得你有与for循环混淆。这些都不是statements有在最后一个分号。它们只是parameters的一种方法,应该用,

2

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

您可以使用 “;”仅在for循环单独参数