我试图在java中使用并学习关键字"this".在我的代码中,我收到了一个错误

pur*_*rme 1 java this

这段代码的主要目标是使用这个关键字并设置全局变量(十,零,二十等于int 10,int 0,int 20.)那么我会调用该方法,它会将它们加在一起. (总价值30)

package javaapplication53;

public class NewClass {

public int ten = 10;
public int zero = 0;
public int twenty = 20;

public int yourMethod(int ten, int zero, int twenty) {



    this.ten = ten;
    this.zero = zero;
    this.twenty = twenty;

   return(ten +zero+ twenty);
}
}
Run Code Online (Sandbox Code Playgroud)

然后我在main方法中调用了构造函数.

   package javaapplication53;

    public class JavaApplication53 {


    public static void main(String[] args) {
    NewClass nc = new NewClass();
    nc.NewClass(ten, zero, twenty);
}
Run Code Online (Sandbox Code Playgroud)

}

它说我必须输入3 int,我以为我在其他类中做了.

我是计算机编程的新手

Saj*_*tta 8

你打算调用NewClass中定义的方法 -

所以代替 -

nc.NewClass();
Run Code Online (Sandbox Code Playgroud)

你可能想要 -

nc.yourMethod(n1, n2, n3); //where n1, n2, n3 are integers.
Run Code Online (Sandbox Code Playgroud)

例-

System.out.println(nc.yourMethod(50, 45, 89));
Run Code Online (Sandbox Code Playgroud)

另外,也许你希望你的NewClass是这样的,因为为方法参数赋值不是一个好习惯:

public class NewClass {

    private int ten;
    private int zero;
    private int twenty;

    public int yourMethod(int ten, int zero, int twenty) {

        this.ten = ten;
        this.zero = zero;
        this.twenty = twenty;

        int sum = (this.ten + this.zero + this.twenty);

       return sum;
    }

}
Run Code Online (Sandbox Code Playgroud)

如果你想避免意外地为方法参数赋值,你可以像这样使用final这是一个很好的做法 -

public int yourMethod(final int ten, final int zero, final int twenty) {

    // code

}
Run Code Online (Sandbox Code Playgroud)