A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

是否可以从一个static方法内部发出对非static方法的调用?

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

8 个回复

倒序浏览
不行吧!

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

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

非static修饰的方法只能被对象调用,必须用类new出对象才能调用
当我们用类名直接调用时,可能这个类的对象并没有new。
如果这时候static方法里调用非static的方法就会出现空指针异常,
当然这种错误编译时就不会通过

点评

没有“吧”  发表于 2014-10-17 12:40

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
不可以,我记的是。
回复 使用道具 举报
我的类中有,我就可以创建对象调用。静态是随着类的加载而加载,当调用非静态时,它还没有出现呢。
回复 使用道具 举报
肯定不可以啊,static方法是属于类的,在类加载的时候就会执行,此时非static变量是无法被调用滴
回复 使用道具 举报
感谢楼主的题目 之前没见过
回复 使用道具 举报
郑飞 高级黑马 2014-10-20 23:54:14
7#
投机 ;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:50
8#
不可以!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马