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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 来明坤 中级黑马   /  2012-8-11 21:36  /  1415 人查看  /  5 人回复  /   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 ...";
    }
}

评分

参与人数 1黑马币 +15 收起 理由
张立江 + 15

查看全部评分

5 个回复

倒序浏览
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 ...";
     }
}

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 这也是一种方法!继续加油吧!.

查看全部评分

回复 使用道具 举报
  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-12 00:48 编辑

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

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


2, 静态方法不能以任何方式引用thissuper(super在后面讲)关键字,道理与上面一样,静态方法在使用前不用创建任何对象,当静态方法被调用时,this所引用的对象根本没产生。(到继承时会讲到)
回复 使用道具 举报
官文昌 发表于 2012-8-11 21:57
java中主函数是静态,所以你调用doSomething()也必须是静态的

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

人家写出来干嘛?我觉得别个总结得很好,我才发来给他看看~~再说这个问题当编译时,就会在控制台提示了~~一个有9分技术分的人连这都会不知道(我现在还真赞成有个发的规范黑马提问题)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马