黑马程序员技术交流社区

标题: 这个代码有什么问题 [打印本页]

作者: 徐军涛    时间: 2012-11-17 00:38
标题: 这个代码有什么问题
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 00:47
main函数是静态方法,因此无法直接调用非静态的方法
doSomething()是一个非静态方法,调用 应该是用对象调用
即s.doSomething()
作者: 黑马张旭    时间: 2012-11-17 18:25
上面说了原因是你定义的方法是非静态的 可以用对象 s.doSomething()调用  也可以把你定义的方法 改成静态的 如 public static String doSomething()这也主函数就能调用了
作者: 郑丹丹    时间: 2012-11-17 18:50
将public String doSomething() {
        return "Do something ...";
    }
改为 public static String doSomething() {
        return "Do something ...";
    }
}
就可以了。在同一个类中静态方法不能直接调用非静态方法。在老毕的视频中有说明




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