public class HelloDate { String s="intital value";

public static void main(String[] args){
System.out.println(s);

}
}为什么这个不可以啊,编译之后出现如下提示:Exception in thread "main" java.lang.Error: Unresolved compilation problem: Cannot make a static reference to the non-static field s at HelloDate.main

解决方案 »

  1.   


    public class HelloDate { public static void main(String[] args){ 
    String s="intital value"; 
    System.out.println(s); } 
    } 这样
      

  2.   

    String s="intital value"; 放到main函数里面
      

  3.   

    静态方法是可以直接用的,否则就必须创建对象使用,在对象中调用main是静态方法,不需要创建对象就可以执行的,这时并没有创建任何的hellodate对象,所以对println(s)
    是没有办法使用s的public class HelloDate {public String s="intital value";public static void main(String[] args){
    HelloDate test=new HelloDate();
    System.out.println(test.s);}
    } 这样倒是可以
      

  4.   

    很明显.因为main方法是一个静态的方法,所以不能引用非静态的变量~
    String s="intital value"; 改成静态的应该就没什么问题
    static String s="intital value"; 
      

  5.   

    你要产生个对象才能用对象里面的成员变量s。
    HelloDate test=new HelloDate(); 
    这个是产生个对象···
      

  6.   


    我说的那个不会不可以吧,我都试过了另外把String直接改成static的也是可以的
      

  7.   

    刚开始学JAVA,帮我解决了一个非常基础的概念性问题,太到位了,太感谢了
      

  8.   

    4楼的NUMBER321的那个方法是可以的,讲解的非常到位,相当感谢!
      

  9.   

    成都培训网www.cd-pxw.com汇集众多培训学校,优秀的培训课程,同时提供学习资料下载,学习技巧资料文章
      

  10.   

    静态方法不能使用非静态成员,
    相反则可以.....
    可以把String定义为静态的。。