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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高鑫 中级黑马   /  2012-5-1 09:54  /  1547 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Tool
  2. {        public static void  paixu(int []arr)
  3.         {
  4.                 for(int x=0;x<arr.length-1;x++)
  5.                 {for(int y=x+1;y<arr.length;y++)
  6.                 if(arr[x]>arr[y])
  7.                 {        int temp=arr[x];
  8.                         arr[x]=arr[y];
  9.                     arr[y]=temp;}
  10.                 }
  11.                 System.out.print(arr[x]+",");
  12. }
  13. }
  14. class Demo
  15. {
  16. int[]arr={3,5,21,8};
  17.   Tool.paixu(arr);
  18. }
复制代码
Tool.paixu(arr)这句话哪错了?

4 个回复

倒序浏览
Demo
类里边建立一个方法,然后再调用Tool.paixu(arr);
回复 使用道具 举报
只有静态类才能通过类名直接调用,Tool类不是静态类,不能用Tool.paixu(arr);这样的方式调用,要通过建立Tool类的对象调用该排序函数,如:
Tool tool=new Tool();
tool.paixu(arr);
回复 使用道具 举报
class Demo
{
   int[]arr={3,5,21,8};
  Tool.paixu(arr);
}
Tool.paixu(arr);静态类的方法是可以直接用类名.方法名。
在此方法有返回值的时候
class Demo{
      int[] arr={3,5,21,8};
      int a=Tool.paixu(arr);//可以直接这样调用,执行调用的方法

      public void demo(String[] args){
      System.out.println(a);
      }
}
当没有返回值时,必须放到另一个方法内才能调用
class Demo{
int[] arr={3,5,21,8};
public void demo(){
  Tool.paixu(arr);
}
}
回复 使用道具 举报
class Tool
{        public static void  paixu(int []arr)
        {
                for(int x=0;x<arr.length-1;x++)
                {
                                        for(int y=x+1;y<arr.length;y++)
                                        {//此处应该加大括号,将要运行的代码放在里面,不然只下面执行一句 ,你的主要错误在此              
                                         if(arr[x]>arr[y])
                       {        
                                                int temp=arr[x];
                        arr[x]=arr[y];
                        arr[y]=temp;}
                       }
                                    }
                                //在外循环中打印数组,不然不能访问x,因为x是局部变量
                System.out.print(arr[x]+",");
                        }
         }
}
class Demo
{
int[]arr={3,5,21,8};
  /*此处的代码并没有错,你可以加一个主函数运行一下,
  因为方法是静态的,可以直接通过类名调用的。
  
public static void main(String[] args) {
  Tool.paixu(arr);
   }
   */
    Tool.paixu(arr);
}
//最后小建议:我们写函数是给别人调用的,只要有功能就可以了,
//至于功能返回的结果调用者如何处理跟我们没有关系,所以上面的
//打印应该写成一个方法.o了

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马