黑马程序员技术交流社区

标题: 是否可以从一个static方法内部发出对非static方法的调用? [打印本页]

作者: 林兴才    时间: 2014-10-17 09:30
标题: 是否可以从一个static方法内部发出对非static方法的调用?
是否可以从一个static方法内部发出对非static方法的调用?

作者: nerveva2000    时间: 2014-10-17 09:59
不行吧!

静态方法只能访问静态成员。
非静态既可以访问静态,又可以访问非静态。

static修饰的方法可以直接用类名调用
静态变量可以被对象调用,还可以被类名调用。

非static修饰的方法只能被对象调用,必须用类new出对象才能调用
当我们用类名直接调用时,可能这个类的对象并没有new。
如果这时候static方法里调用非static的方法就会出现空指针异常,
当然这种错误编译时就不会通过
作者: zhappy    时间: 2014-10-17 10:41
不可以,我记的是。
作者: 森屿北巷    时间: 2014-10-17 10:45
我的类中有,我就可以创建对象调用。静态是随着类的加载而加载,当调用非静态时,它还没有出现呢。
作者: Jaybor_Huang    时间: 2014-10-17 11:21
肯定不可以啊,static方法是属于类的,在类加载的时候就会执行,此时非static变量是无法被调用滴
作者: 郑飞    时间: 2014-10-20 23:38
感谢楼主的题目 之前没见过
作者: 郑飞    时间: 2014-10-20 23:54
投机 ;P
class Test
{
        public static void main(String[] args) throws Exception
        {
              method1();
        }
        
        public static void method1()throws Exception
        {
                //new了对象
                System.out.println("调用静态方法");
                new Test().method2();
        }
        public void method2()
        {
                System.out.println("静态方法中new对象再调用成员方法");
        }
}
作者: MeryStyle    时间: 2014-10-21 00:03
不可以!




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