黑马程序员技术交流社区

标题: 很规范啊 怎么有错? [打印本页]

作者: 来明坤    时间: 2012-8-11 21:36
标题: 很规范啊 怎么有错?
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-8-11 21:43
public class Something {
      public static void main(String[] args) {
         Something s = new Something();
         System.out.println("s.doSomething() returns " + doSomething());//这里有问题,调用方法要基于对象(静态除外),应该是sSystem.out.println("s.doSomething() returns " + s.doSomething());
     }
      public String doSomething() {
         return "Do something ...";
     }
}
作者: 张立江    时间: 2012-8-11 21:45
  1. public class Something {
  2.      public static void main(String[] args) {
  3.         Something s = new Something();
  4.         System.out.println("s.doSomething() returns " + doSomething());
  5.     }
  6.      public String doSomething() {//这里加上static关键字就可以了
  7.         return "Do something ...";
  8.     }
  9. }
  10. //静态方法不能调用非静态方法。
复制代码

作者: 官文昌    时间: 2012-8-11 21:57
本帖最后由 官文昌 于 2012-8-12 00:48 编辑

java中主函数是静态,所以你调用doSomething()也必须是静态的

  静态方法要注意的问题:
1, 在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),不能直接访问类中的非静态成员。这是因为,对于非静态的变量和方法,需要先创建类的对象后才可使用,而静态方法在使用前不用创建任何对象。


2, 静态方法不能以任何方式引用thissuper(super在后面讲)关键字,道理与上面一样,静态方法在使用前不用创建任何对象,当静态方法被调用时,this所引用的对象根本没产生。(到继承时会讲到)

作者: 张立江    时间: 2012-8-11 22:07
官文昌 发表于 2012-8-11 21:57
java中主函数是静态,所以你调用doSomething()也必须是静态的

你回答的这些你自己都懂吗?
这么点时间你能码这么多字?
为什么你的贴子又让我在百度上搜到了 http://shixin20051108.blog.163.c ... 332320096231108198/
别人09年发的贴,你看到了能不能提炼成自己的语言再回答?
照搬照抄,有意思么?
作者: 官文昌    时间: 2012-8-12 00:33
本帖最后由 官文昌 于 2012-8-12 00:43 编辑
张立江 发表于 2012-8-11 22:07
你回答的这些你自己都懂吗?
这么点时间你能码这么多字?
为什么你的贴子又让我在百度上搜到了 http://sh ...

人家写出来干嘛?我觉得别个总结得很好,我才发来给他看看~~再说这个问题当编译时,就会在控制台提示了~~一个有9分技术分的人连这都会不知道(我现在还真赞成有个发的规范黑马提问题)




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