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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐军涛 中级黑马   /  2012-11-17 00:38  /  1818 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Something {
     public static void main(String[] args) {
        Something s = new Something();
       System.out.println("s.doSomething() returns " + doSomething());
    }
    public String doSomething() {
        return "Do something ...";
    }
}

点评

你看看错误提示就很明确了,无法从静态上下文中获取非静态方法  发表于 2012-11-17 08:28

3 个回复

倒序浏览
main函数是静态方法,因此无法直接调用非静态的方法
doSomething()是一个非静态方法,调用 应该是用对象调用
即s.doSomething()

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
上面说了原因是你定义的方法是非静态的 可以用对象 s.doSomething()调用  也可以把你定义的方法 改成静态的 如 public static String doSomething()这也主函数就能调用了
回复 使用道具 举报
将public String doSomething() {
        return "Do something ...";
    }
改为 public static String doSomething() {
        return "Do something ...";
    }
}
就可以了。在同一个类中静态方法不能直接调用非静态方法。在老毕的视频中有说明
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马