黑马程序员技术交流社区

标题: 静态类的问题 [打印本页]

作者: 高鑫    时间: 2012-5-1 09:54
标题: 静态类的问题
  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)这句话哪错了?
作者: 蒋映辉    时间: 2012-5-1 10:06
Demo
类里边建立一个方法,然后再调用Tool.paixu(arr);

作者: wang耀雨    时间: 2012-5-1 10:21
只有静态类才能通过类名直接调用,Tool类不是静态类,不能用Tool.paixu(arr);这样的方式调用,要通过建立Tool类的对象调用该排序函数,如:
Tool tool=new Tool();
tool.paixu(arr);
作者: It's_Zero    时间: 2012-5-1 10:52
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);
}
}
作者: 何阳    时间: 2012-5-1 11:14
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了





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