java - 如何在另一个方法中调用变量?

标签 java variables methods scope

我知道变量 maxreps 不在我的 main 方法的范围内,因此我希望它通过创建对象来调用它,但它仍然无法获取 maxreps。 我该如何解决这个问题?

public class LUIS{
    public void james(){
        int current=1;
        int maxreps=1;

        String adriana = "aabbddddnsspkrrgg";
        for(int a=0; a<adriana.length(); a++){
            if(adriana.charAt(a) == adriana.charAt(a+1)){
                current++;
                if(maxreps>=current){
                    maxreps=current;
                }
            }
        }
    }
        public static void main(String[] args){
        LUIS fritz = new LUIS();
        final int drei = fritz.james;

        System.out.println(maxreps);
    }
}

最佳答案

正如您所指出的,作用域可以防止看到在不同作用域中定义的变量。您可以通过返回值来解决您的特定问题

public int james(){  // <-- change from void to an int return
    int current=1;
    int maxreps=1;

    String adriana = "aabbddddnsspkrrgg";
    for(int a=0; a<adriana.length(); a++){
        if(adriana.charAt(a) == adriana.charAt(a+1)){
            current++;
            if(maxreps>=current){
                maxreps=current;
            }
        }
    }

    return maxreps;  // <-- return the value
}

然后在main方法中将一个变量设置为返回值。

或者,您可以将其定义为类变量,但有理由避免这样做——全局变量通常不好。

关于java - 如何在另一个方法中调用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44089306/

相关文章:

python - 如何使用重定义一个方法,在方法中仍然使用原来未修改的继承方法?

generics - XML 注释——如何正确标记 See also 标签?

java - Android中ListView的问题

java - 如何仅使用一个实例化对象来存储多个值?

java - BigInteger 乘法中的前导零

javascript - 如何在函数名中连接变量?

variables - 如何使用变量来引用代号一中的组件?

java - 是否可以从 JSTL forEach 循环中的列表访问特定元素/对象?

c++ - 为什么在 C++ 类指针声明中使用 'struct' 关键字

ruby-on-rails - 如何重构 "shared"方法?