我知道变量maxreps不在我的主要方法的范围内,所以我希望通过创建对象来调用它,但是它仍然无法获得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方法中将变量设置为返回值。

另外,您可以将其定义为类变量,但是有理由避免这样做-全局变量通常是不好的。

10-08 13:30