既然“声明为static的方法不能访问非static类成员”那我在一个public static void main(String args[])方法中为何却可以通过对象名加点(.)的方式调用类中的非static方法呢?同理可以用对象名加点的方式调用实例变量?

解决方案 »

  1.   

    public static void main(String args[])方法中为何却可以通过对象名加点(.)的方式调用类中的非static方法.....不可能
      

  2.   

    声明为static的方法不能[直接]访问非static类成员
    必须通过实例名.成员名的方式....不用较真字眼,理解意思为重喵~``
      

  3.   

    “声明为static的方法不能访问非static类成员”是指在static的方法中不建立对象而访问非static类成员
      

  4.   

    和这句话对应的:
    非static方法能[直接](也就是this.成员名或者成员名)访问非static类成员
      

  5.   

    "声明为static的方法不能访问非static类成员"
    这句话是针对自己的类来说的,在没有创建任何对象之前。
      

  6.   

    简单的说就是,声明为static的方法 调用其他的非static类成员时,必须该非static类成员已经实例化
    或是 static方法才可以。换句话说,就是必须事先 就有这个 方法的存在才能在static里调用。你不能调用一个
    未实例化的方法
      

  7.   

    static意味着是类相关的,static的方法或语句块不能调用非static的成员只能通过对象调用(也就是楼主说的对象点来调用)
    举个例子吧public class Foo{
    int i=0;
    static{
    int j=i+1;//这里不能调用飞static的变量i
    }
    static{
    Foo f = new Foo();
    int j=f.i+1;//通过对象点可以调用
    }
    }