Java 由于另一种方法,我的代码中出现错误

Java 由于另一种方法,我的代码中出现错误,java,Java,输出应该是3,但代码中有错误,如何修复 public class Tetris { public static void add(int x, int y, int sum) { sum = x + y; return sum; } public static void main(String[] args) { int x = 1; int y

输出应该是3,但代码中有错误,如何修复

public class Tetris {
        public static void add(int x, int y, int sum)
        {
         sum = x + y;
         return sum;
        }

        public static void main(String[] args) {
            int x = 1;
            int y = 2;
            int sum;
            add(sum); // sum cannot be resolved to a variable
            System.out.print(sum);

            }
        }

您没有在
main
中声明变量
sum
,因此它未定义。但即使您定义了它,方法也会收到传入参数的副本,因此在
add
中为
sum
赋值不会更改
main
中声明的
sum
。相反,让
add
返回
sum
,并在
main
中,将
add
的返回值分配给
main
sum

sum不能解析为变量

但是这里不需要
sum

System.out.print(add(x,y));
接下来,将
add()
method返回类型更改为
int

public static int add(int x, int y)
{
 int sum=x+y;
 return sum;
}

您正在将
sum
传递给
add
方法,但您根本没有声明它。你应该做的是:

public class Tetris {
    public static int add(int x, int y)
    {
      int sum = x + y;
      return sum;
    }

    public static void main(String[] args) {
        int x = 1;
        int y = 2;
        System.out.println(add(x,y)); // sum cannot be resolved to a variable


        }
    }

您从未声明过“sum”。此外,以这种方式传递sum将无法更改sum的值。

请尝试下面的代码,它工作正常

public class Tetris {
        public static int add(int x, int y)
        {
         int sum = x + y;
     return sum;
        }

        public static void main(String[] args) {
            int x = 1;
            int y = 2;
        int sum = 0;
            sum = add(x,y); 
            System.out.print(sum);

            }
        }

您在哪里申报的?请不要更改问题的内容;它可能会使已经存在的答案无效。请查看我的答案。你能看到代码吗,我更改了它,你的意思是??谢谢。请不要改变你的问题;它使现有答案无效。我应该将System.out.print(总和)放在哪里;它会打印出总数。
public class Tetris{

    /*
     * Java passes references by value.
     * 
     * So you can't change the reference that gets passed in.
     */
    public static int sum = 0;

    public static void add(int x, int y) {
        sum = x + y;
    }

    public static void main(String[] args) {
        int x = 1;
        int y = 2;
        add(x, y); // sum cannot be resolved to a variable
        System.out.print(sum);
    }
}
public class Tetris {
        public static int add(int x, int y)
        {
         int sum = x + y;
     return sum;
        }

        public static void main(String[] args) {
            int x = 1;
            int y = 2;
        int sum = 0;
            sum = add(x,y); 
            System.out.print(sum);

            }
        }