黑马程序员技术交流社区

标题: 静态问题 [打印本页]

作者: 黑白小調°    时间: 2014-1-14 08:37
标题: 静态问题
在静态方法中不可以直接调用非静态方法,那么怎样用静态方法调用非静态方法呢?
例如下列代码中如何使用静态方法method3调用非静态方法method2:
public classStaticTest
{
     static double PI=3.14;
     static int id;
     public static void method1( )
     {

      }     
      public void method2( )
      {
            System.out.println(StaticTest.PI);
            System.out.println(StaticTest.id);
            StaticTest.method1( );
       }
       public static StaticTest method3( )
       {
             method2( );
             return this;
       }
}
            

作者: 776699    时间: 2014-1-14 09:05
静态方法不能调用非静态的。
作者: xu6148152    时间: 2014-1-14 09:14
这是规定。
静态方法先于非静态方法载入内存。
因此不能使用静态方法访问非静态方法。
作者: 范二青年    时间: 2014-1-14 09:16
首先要搞清楚静态和非静态的从属关系,静态是属于类本身的,可以使用类名直接调用,而非静态是属于类对象的,必须要创建对象之后才能调用。这么说不知道你能不能理解。
static方法属于类本身,如果想要在其中调用非静态方法只能先创建类对象
classStaticTest test = new classStaticTest();
test.method2();
这和main方法调用非静态方法是一样的,如果不理解再问我哈!
作者: app297    时间: 2014-1-14 12:12
静态方法要调用非静态方法 就必须得 先创建对象。 new 一个对象。在调用其中的非静态方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2