public class Something { 

public static String doSomething() { 
return "Do something ..."; 

 
public static void main(String[] args) { 
Something s = new Something();
                s.doSomething();//这里没有输出
                  System.out.println("*************** " );
System.out.println(s.doSomething());//这里为什么可以???


解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【mzboycc】截止到2008-07-09 18:38:12的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:0.00  %               结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    把函数改为这样就可以了:
    public static void doSomething() {
     System.out.println("Do something ..."); 

      

  3.   

     s.doSomething();  这个方法返回一个字符串    你就把他看成是Do something ...   你说他会输出吗?
      

  4.   

    晕,大概晓得了,static函数的调用规则是什么
      

  5.   

    static方法可以通过对象调用吗??
      

  6.   

    s.doSomething();                        这个方法返回一个字符串,你没有要他输出
    System.out.println(s.doSomething());            这样子就要他输出了你可以把方法改为:
    public static void doSomething() { //你的返回类型是String 
       System.out.println("Do something ..."); 
    } 那么就会在:
    s.doSomething();  输出了。
    或者String str=s.doSomething();
    System.out.println(str);   
      

  7.   

    s.doSomething();//只是返回了"doSomething",你又没输出(System.out.println)它
      

  8.   

    public class Something { public static String doSomething() {
    return "Do something ...";
    } public static void main(String[] args) {
    Something s = new Something();
    String s2=s.doSomething();//这里是返回
    System.out.println(s2);//这里输出
    System.out.println("*************** ");
    System.out.println(s.doSomething());//这里为什么可以???同上
    }
    }
      

  9.   

    public class Something { public static String doSomething() { 
    return "Do something ..."; 
    } public static void main(String[] args) { 
    Something s = new Something(); 
                    s.doSomething();//这里没有输出 
                      System.out.println("*************** " ); 
    System.out.println(s.doSomething());//这里为什么可以??? 


    你定义的dosomething()这里的方法体,并没有执行输出语句,只是吧值返回了而已...返回!=输出!
    所以在下面输出了!
    System.out.println();括号里的是要打印的内容,,,
      

  10.   

    因为你的方法是static的,类似地,用final 修饰符修饰的方法也是不赞成用对象调用而用类名来调用。
      

  11.   

    那个问题我晓得了,我现在的问题是为什么不赞成用对象调用而用类名来调用static方法呢?
      

  12.   


    因为static方法是只跟类有关,跟对象无关的。对象1----->|     |  
               |     |
    对象2---- >|     |
               | 类------>static方法
    --- >|     |
               |     |
    对象n----> |     |你想多走一步吗?