多种方法

时间:2014-03-25 15:14:15

标签: java methods

我正在尝试创建自己的方法以在我的main方法中使用。我已经要求用户输入我的main方法并使用下一行捕获它。但是,我无法在其他方法中使用它。

static Scanner keyboard = new Scanner(System.in);

public static void main (String[] args) {       
    System.out.println("Input string of any length");
        String s = keyboard.nextLine();
        System.out.println("If you want to the program to check if palindrome, type 1."+
            " If you want the program to compute rounded sum, type 2. If you want " + 
            "the program to count unique characters, type 3");
        String o = keyboard.nextLine();
        if (o.equals("1"))
            System.out.println(isPalindrome());
}

public static boolean isPalindrome () {
    boolean palindrome = true;
    String s = keyboard.nextLine();

它要求我在我的另一种方法中重新定义字符串s,即使已经在主要方法中定义了它。

2 个答案:

答案 0 :(得分:3)

这是因为范围可变。每个变量只存在于程序的某个部分中,而其他部分可以具有不同的变量,这些变量具有仅存在于该部分中的相同名称。

有很多关于这个主题的教程。例如:

http://docs.oracle.com/javase/tutorial/java/javaOO/variables.html

http://www.java-made-easy.com/variable-scope.html

http://www.cs.berkeley.edu/~jrs/4/lec/08

答案 1 :(得分:0)

再添加到Tim B的回答中,让一个功能完整且完整的声音总是好的。

即。而不是

public static boolean isPalindrome ()

使用

public static boolean isPalindrome (String text)

并传入要检查回文的文字。这使功能更加完整。对待一个像问别人问题的功能。 "这篇文章是回文吗?"而不是"是回报吗?"。