是否可以在另一个方法中访问方法int?

时间:2016-05-25 22:11:51

标签: java methods

首先,我是JAVA的新手,所以我仍然不了解一切以及它是如何工作的。但我正在研究某些事情,并想知道是否可以这样做。

import java.util.Scanner;
public class Main {
    public static int calc(){   

        Scanner sc = new Scanner(System.in);

        String number1 = sc.nextLine();
        int y = Integer.parseInt(number1);

        System.out.println("+");

        String number2 = sc.nextLine();
        int z = Integer.parseInt(number2);

        int Result = y + z;
        sc.close();
        return Result;

    }
    public static void printText(){

        System.out.println(Result);
    }

    public static void main(String args[]) {

        calc();
        printText();            
    }
}

在第一种方法中,我正在计算“结果”,在第二种方法中,我只是希望它能够使它成为“结果”并打印出来......但我理解的是,方法中发生的事情仍然存在在方法中。但我想知道是否可以让方法“printText”从“calc”访问int。

我知道我可以将代码放入main并从那里打印出来,但如果可以这样做的话,它仍然会让我感到烦恼:)

2 个答案:

答案 0 :(得分:1)

您无法从其他方法访问本地变量,不能。 (方法完成后,局部变量不再存在。)但是,您可以使用calc方法中的返回值,并将其传递给printText方法:< / p>

public static void printText(int result) {
    System.out.println(result);
}

public static void main(String args[]) {
    int result = calc();
    printText(result);            
}

答案 1 :(得分:1)

为了做类似 1 的事情,您需要提供Result 可见性。由于您的方法是static,因此它还需要static。另外,请勿在{{1​​}}包裹close上调用Scanner(这是全局的,您无法重新打开它)。像,

System.in

1 与使用返回值或将其传递给第二种方法相反。