我知道变量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
方法中将变量设置为返回值。另外,您可以将其定义为类变量,但是有理由避免这样做-全局变量通常是不好的。