我正在尝试使用和学习关键字"这个"在java中。在我的代码中,我收到了一个错误

时间:2013-07-21 04:22:26

标签: 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);
}
}

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

   package javaapplication53;

    public class JavaApplication53 {


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

}

它说我必须输入3 int,我以为我在另一个类中做了。

我是计算机编程的新手

3 个答案:

答案 0 :(得分:8)

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

所以而不是 -

nc.NewClass();

你可能想要 -

nc.yourMethod(n1, n2, n3); //where n1, n2, n3 are integers.

实施例 -

System.out.println(nc.yourMethod(50, 45, 89));

另外,也许你希望你的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;
    }

}

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

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

    // code

}

答案 1 :(得分:1)

你是否有机会尝试这样做:

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);
}

测试类

Public class JavaApplication53 {


    public static void main(String[] args) {
    NewClass nc = new NewClass();
    nc.yourMethod(4,5,30)

}

你试图将“4”,“5”和“30”传递给计算以返回所有这些的总和吗?如果你是,那么这两个课应该看起来更好。 我从顶级类中删除了r,5和30值,并将它们放在第二个类中作为调用“yourMethod”方法时要传递的参数。 我希望这有帮助

答案 2 :(得分:0)

我学习“this”和“super”的方式是使用IDE。当您在Eclipse / Netbeans中突出显示变量时,会突出显示提及该变量的所有其他位置。

这是一种可接受的方式:

类别:

public class NewClass {
    public int ten, zero, twenty;

    /* This is the constructor called when you do 
     * NewClass nameOfVar = new NewClass(blah, blah, blah);
     */
    public NewClass(int ten, int zero, int twenty) {
        this.ten = ten;
        this.zero = zero;
        this.twenty = twenty;
    }

    /* This method/function sums and returns the numbers */
    public int sum() {
       return ten + zero+ twenty;
    }
}

主:

public class JavaApplication53 {
    public static void main(String[] args) {
        NewClass nc = new NewClass(10, 0, 20);
        System.out.println(nc.sum());
    }
}

输出为30。