在Java中,如何将不同类中的x和y返回到main?
如何将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
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();
}
}