簡體   English   中英

如何將x和y從不同的類返回到Java中的main?

[英]How would I return x and y from different classes to main in Java?

如何將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));
    }
}
public static int getInput() {
    Scanner scanner = new Scanner(System.in);
    return scanner.nextInt();
}

public static void main(String[] args){     
    System.out.println("Please enter a number: ");
    int x = getInput();   

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

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

或更面向對象的方法可能看起來像

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

請注意, Java命名約定狀態類應具有大寫的首字母。

只需將num1和num2的返回類型更改為int並將兩個函數的結果保存在main中的變量中即可。 然后使用新變量執行加法,或僅將加法更改為(num1()+ num2())。

除此之外,請讀一本書並嘗試了解如何使用函數,因為您要問的是非常基本的內容。

如果您正在尋找一種將值返回主函數的方法,請閱讀以下代碼

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

您不應該使用靜態數據成員或方法-僅當方法成員適用於類的所有實例時,才應使用這些成員或方法。

在這種情況下,唯一的靜態方法應該是main ,並且應該只創建當前類的單個實例 main幾乎永遠不應該做任何實際的工作-盡管在這個瑣碎的示例中,我想可以做一個例外。

理想情況下,您還應該只創建一個Scanner對象Scanner類完全能夠讀取連續的數字流,而無需一遍又一遍地為每個要讀取的數字創建一個新的數字。

在下面的代碼中,我只創建一個並直接使用兩次。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM