在方法中计算两个变量

时间:2015-01-19 10:17:16

标签: java

这是一些非常初学的东西。并且不能为我的生活弄清楚为什么我不能有一个方法为我计算两个变量。

public class Testing {
    int val1; 
    int val2;
    int res;

    public static void main(String[] args)
    {
        int calcResult();
    }

    public Testing()
    {
        val1 = 4;
        val2 = 8;
        res = 0;
    }

    public static int calcResult()
    {
        res = val1 + val2;
        return res;
    }
}

3 个答案:

答案 0 :(得分:2)

val1和val2不是静态的,你的方法是静态的,这是一个问题。 我建议你这样做:

public class Testing {
private int val1; 
private int val2;
private int res;

public static void main(String[] args)
{
    new Testing();
}

public Testing()
{
    this.val1 = 4;
    this.val2 = 8;
    this.res = 0;
    this.calcResult();
}

public int calcResult()
{
    res = this.val1 + this.val2;
    return res;
}
}

答案 1 :(得分:1)

静态方法无法访问实例变量。

删除静态关键字并尝试类似:

public class Testing {
int val1; 
int val2;
int res;

public static void main(String[] args)
{
    System.out.println( new Testing().calcResult() );
}

public Testing()
{
    val1 = 4;
    val2 = 8;
    res = 0;
}

public int calcResult()
{
    res = val1 + val2;
    return res;
}
}

答案 2 :(得分:1)

您的代码中有多个错误。首先,您只能将函数结果赋给变量,因此当前代码将无法编译:

  

public static void main(String [] args)           {               int calcResult();           }

此外,您不能从静态函数引用字段(非静态)变量,因此以下内容也不会编译:

public static int calcResult()
    {
        res = val1 + val2;
        return res;
    }

因为所有变量都不能从静态函数calcResult()中获得。

更不用说在计算中使用字段变量通常是不好的做法。我建议的是以下内容:

公共课测试{

public static void main(String[] args)
{
   new Testing();
}

public Testing()
{
    int val1 = 4;
    int val2 = 8;
    int res = calcResult(val1, val2);
    System.out.println(res);

}

public static int calcResult(int val1, int val2)
{
    return val1 + val2;

}

}