public class Test{
        int i;
   }
      和在
    public static void main(String [] args){
    int i;
  }   
      的区别
public class Foo {
   int i;
    static String s;
    void imethod(){
    
    }
    static void smethod(){
    
    }
   
public static void main(String[] args) {
// TODO Auto-generated method stub
    Foo f=new Foo();  
System.out.println(f.i);
System.out.println(f.s);
f.imethod();
f.smethod();
System.out.println(Foo.i);//为什么这里错了
System.out.println(Foo.s);//为什么这里却是对的
 Foo.imethod();//为什么这里错了
                            Foo.smethod();//为什么这里却是对的



} }      谢谢各位大虾了!!!

解决方案 »

  1.   

    mian是static的 如果要引用成员变量的话只能引用static的成员变量
      

  2.   

    public static void main 程序的入口System.out.println(Foo.i);//为什么这里错了 
    Foo换成对象 f.i
    楼主可以看下关于静态变量的内容
      

  3.   

    System.out.println(Foo.i);//为什么这里错了
    System.out.println(Foo.s);//为什么这里却是对的 
    因为s是static的,而i不是
      

  4.   

    方法如main方法里面的变量是局部变量,方法外面的是全局变量。
    静态方法如main方法里不能引用非静态的成员。
      

  5.   


    java没有全局变量,变量分局部变量和成员变量。