回 帖 发 新 帖 刷新版面

主题:新手问题:无法从静态上下文中引用非静态变量

public class Storage {
        
     String s="Hello Baby!";
    
     int storage(String s) {  
             return s.length();  
    }  
    
     public static void main(String args[]){
        
        System.out.println("storage(s)="+storage(s));
    }

}

提示错误是:无法从静态上下文中引用非静态 变量 s。
为什么这样不行,应该怎么修改,本人是菜鸟,麻烦高手指点!

回复列表 (共3个回复)

沙发

    static String s="Hello Baby!";
    
   static  int storage(String s) {  
            return s.length();  
   } 

基础的书多看看

板凳

偶来混分吃的菜鸟,如果我的解释能理解,,接分.........

public static void main(String args[]){
注意你这里的MAIN函数是STATIC就意味着他是个公共的函数不是某个类独有的,,,,,
但是你这个String s="Hello Baby!"定义..却说明了S变量是对象独有的东西,,,,,
理解.......
好!!!,你在静态的MAIN函数里去访问一个类的方法,但是你访问的东西是对象独有的东西,,,但是你也没定义对象,,,,所以就出了错了.....
2楼的把String s="Hello Baby!";该为STATIC  就是说S也是公共的东西了,不定义对象他也存在了,也可以用(不定义对象)[em1]

3 楼


多谢两位的解答,我明白了,多谢了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册