黑马程序员技术交流社区

标题: 请教一个问题,谢谢 [打印本页]

作者: 小洋人最happy    时间: 2012-11-19 09:42
标题: 请教一个问题,谢谢
本帖最后由 小洋人最happy 于 2012-11-19 23:04 编辑

class ArrayToolDemo
{
public static void main(String[] args)
{
  int[] arr = {3,4,2,55,64,1};
  int max = ArrayTool.getMax(arr);
  System.out.println("max="+max);
}
}

这个老提示这个错误
ArrayToolDemo.java:6: 错误: 找不到符号
                int max = ArrayTool.getMax(arr);
                                   ^
  符号:   方法 getMax(int[])
  位置: 类 ArrayTool
1 个错误


作者: 李计伟    时间: 2012-11-19 09:48
是不是名写错了你有个ArraysTool类 要不然就是没有这个ArrayTool类,那你就创建一个ArrayTool类,然后来个静态方法getMax(int[])。

作者: 李贺晓    时间: 2012-11-19 10:19
ArraysTool这个类是你自己写的??如果是别人写的,你应该用import导入这个类所在的包,而且getMax方法应该是静态方法
作者: 陶辰    时间: 2012-11-19 10:22
没有ArrayTool这个类的  你应该自己创建一个

public class ArrayToolDemo {

        public static void main(String[] args) {
                 int[] arr = {3,4,2,55,64,1};
                  int max = ArrayTool.getMax(arr);
                  System.out.println("max="+max);
        }

}
class ArrayTool {
        public static int getMax(int[] arr){
                int Max = arr[0];
                for(int i=1;i<arr.length;i++){
                        if(Max<arr[i]){
                                Max = arr[i];
                        }
                }
                return Max;
        }
}

作者: 小洋人最happy    时间: 2012-11-19 10:27
class  ArrayTool
{
        /**
        空参数构造函数
        */
        private ArrayTool(){}

        /**
        获取一个整形数组中的最大值。
        @param arr 接收一个int类型的数组
        @return 会返回一个该数组中最大值
        */
        public static int getMxa(int[] arr)
        {
                int max = 0;
                for (int x=0;x<arr.length ;x++ )
                {
                        if(arr[x]>arr[max])
                                max = x;
                }
                        return arr[max];
        }

        /**
        获取一个整形数组中的最小值。
        @param arr 接收一个int类型的数组
        @return 会返回一个该数组中最小值
        */
        public static int getMin(int[] arr)
        {
                int min = 0;
                for (int x=0;x<arr.length ;x++ )
                {
                        if(arr[x]<arr[min])
                                min = x;
                }
                return arr[min];
        }

        /**
        给int数组进行选择排序。
        @param arr 接收一个int类型的数组

        */
        public static void selectSort(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])
                                {
                                        swap(arr,x,y);
                                }
                        }
                }
        }

        /**
        给int数组进行冒泡排序。
        @param arr 接收一个int类型的数组

        */
        public static void bubbleSort(int[] arr)
        {
                for (int x=0;x<arr.length-1 ;x++ )
                {
                        for (int y=0;y<arr.length-x-1 ;y++ )
                        {
                                if(arr[y]>arr[y+1])
                                {
                                        swap(arr,y,y+1);
                                }
                        }
                }
        }

        /**
        给数组中元素进行位置的置换。
        @param arr 接收一个int类型的数组
        @param a 要置换的位置
        @param b 要置换的位置

        */
        public static void swap(int[] arr,int a,int b)
        {
                int temp = arr[a];
                arr[a] = arr[b];
                arr[b] = temp;
        }

        /**
        用于打印数组中的元素,打印形式是:[element1,element2....]
        */
        public static void printArray(int[] arr)
        {
                System.out.print("[");
                for (int x = 0;x<arr.length ;x++ )
                {
                        if(x!=arr.length-1)
                                System.out.print(arr[x]+",");
                        else
                                System.out.println(arr[x]+"]");
                }
        }
}
作者: 凊係柈泩    时间: 2012-11-19 10:28
可能你没有创建ArrayTool这个类,如果是求最值如下代码:
public class Test {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                 int[] arr = {3,4,2,55,64,1};
                 int max = ArrayTool.getMax(arr);
                 System.out.println("max="+max);
        }

}
public class ArrayTool {

        public static int getMax(int[] arr) {
                // TODO Auto-generated method stub
                int Max = 0;
                for (int i = 0; i < arr.length; i++) {
                        if(arr[i]>Max){
                                Max=arr[i];
                        }
                }
                return Max;
        }
       
}

作者: 凊係柈泩    时间: 2012-11-19 10:33
public static int getMxa(int[] arr)
函数名写错了getMax
作者: 马超happy519    时间: 2012-11-19 11:44
首先可以肯定的是你没有ArrayTool这个类,
建议参考:静态的应用——工具类(毕向东老师)
https://m.oschina.net/blog/41560
给出了ArrayTool类,并给了说明。




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