在Java中,如何将不同类中的x和y返回到main?

在Java中,如何将不同类中的x和y返回到main?,java,eclipse,Java,Eclipse,如何将x和y变量返回main以执行加法? 提前感谢您的帮助 import java.util.Scanner; public class calling { public static int x; public static int y; public static void num1() { Scanner scanner = new Scanner (System.in); System.out.println("Please

如何将x和y变量返回main以执行加法? 提前感谢您的帮助

import java.util.Scanner;

public class calling {

    public static int x;
    public static int y;

    public static void num1() {
        Scanner scanner = new Scanner (System.in);
        System.out.println("Please enter a number: ");
        x=scanner.nextInt();    
    }

    public static void num2() {
        Scanner scanner = new Scanner (System.in);
        System.out.println("Please enter a second number: ");
        y=scanner.nextInt();    
    }

    public static void main(String[] args){     **//place to return variables.**

        num1();
        num2();
        System.out.print("The sum of the two numbers is: " + (x+y));
    }
}

只需将num1和num2的返回类型更改为int,并将这两个函数的结果保存在main的变量中。然后使用新变量执行加法,或者将加法更改为(num1()+num2())


除此之外,还可以读一本书,试着理解如何使用函数,因为你所问的是非常基本的问题。

如果你想找到一种方法将值返回到main函数,请阅读下面的代码

import java.util.Scanner;

public class test {

    public static int x;
    public static int y;

    public static int num1() {
        Scanner scanner = new Scanner (System.in);
        System.out.println("Please enter a number: ");
        x=scanner.nextInt();
        return x;    
    }

    public static int num2() {
        Scanner scanner = new Scanner (System.in);
        System.out.println("Please enter a second number: ");
        y=scanner.nextInt();
        return y;    
    }

    public static void main(String[] args){    

        int a = num1();
        int b = num2();
        System.out.print("The sum of the two numbers is: " + (a+b));
    }
}
或者更面向对象的方法可能看起来像

public class Calculator {

private Scanner scanner;

public Calculator() {
    scanner = new Scanner (System.in);
}

public int getInput() {
    return scanner.nextInt();
}

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

public static void main(String[] args) {     
    Calculator calculator = new Calculator();

    System.out.println("Please enter a number: ");
    int x = calculator.getInput();   

    System.out.println("Please enter a second number: ");
    int y = calculator.getInput();

    int sum = calculator.add(x, y);
    System.out.print("The sum of the two numbers is: " + sum);
}

请注意,状态类应该有大写的第一个字母。

您不应该使用静态数据成员或方法-只有当方法的成员应用于类的所有实例时,才应该使用静态数据成员或方法

在这种情况下,唯一的静态方法应该是
main
,它应该只创建当前类的一个实例
main
几乎不应该做任何真正的工作——尽管在这个小例子中,我认为可能会出现例外

理想情况下,您还应该只创建一个
扫描器
对象-
扫描器
类完全能够读取连续的数字流,而无需为要读取的每个数字反复创建一个新的

在下面的代码中,我只创建一个并直接使用它两次

import java.util.Scanner;

public class calling {

    public calling() {
        Scanner scanner = new Scanner (System.in);

        System.out.print("Please enter a number: ");
        int x = scanner.nextInt();

        System.out.print("Please enter a second number: ");
        int y = scanner.nextInt();

        System.out.println("The sum of the two numbers is: " + (x + y));
    }

    public static void main(String[] args) {
        new calling();
    }
}
或者,扫描仪对象可以存储为成员变量,如本例所示:

import java.util.Scanner;

public class calling {

    private Scanner scanner = null;

    private int getInt(String prompt) {
        System.out.print(prompt);
        return scanner.nextInt();
    }

    public calling() {
        scanner = new Scanner(System.in)
        int x = getInt("Please enter a number: ");
        int y = getInt("Please enter a second number: ");
        System.out.println("The sum of the two numbers is: " + (x + y));
    }

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

不清楚你想做什么。请澄清或重新表述你的问题。他正在努力学习Java。他需要放下电脑去读一本书……你有没有考虑过能手和二传手?如果你问我的话,那将是一个更优雅的解决方案。回答不好。如果没有一个好的解释,你就不会真正地回答问题和吹毛求疵。在没有实例的静态测试类中,没有针对静态字段的一般规则,也不清楚为什么他不应该创建两个Scanner实例。OTOH你不要提到他选得不好的类名(应该以大写字母开头,最好是指一个东西,即“Caller”)和方法名(应该指一个活动,即“call”).@AdriaanKoster原始代码有太多错误,以至于对类和方法名称的挑剔真的会成为挑剔。@AdriaanKoster,因为你问了-1。重复,2。没有封装,3
num1
num2
设置静态成员而不是返回值。4.你提到的东西是指(x+y)而不是第一个例子中的(x,y)?
import java.util.Scanner;

public class calling {

    private Scanner scanner = null;

    private int getInt(String prompt) {
        System.out.print(prompt);
        return scanner.nextInt();
    }

    public calling() {
        scanner = new Scanner(System.in)
        int x = getInt("Please enter a number: ");
        int y = getInt("Please enter a second number: ");
        System.out.println("The sum of the two numbers is: " + (x + y));
    }

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