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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhoubinjian 金牌黑马   /  2016-3-24 16:04  /  450 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以下代码编译时出现错误,如图所示,我正常调用交换函数,就说我非法调用非静态,我实在 找不出那里出了问题,求大神指导!
class ArryToolDemo
{
        public static void main(String[] args)
        {
                int[] arr={3,6,64,9,1,8};
                ArryTool c=new ArryTool();
               
                int max=c.getMax(arr);
                System.out.println("max="+max);
               
                int min=c.getMin(arr);
                System.out.println("min="+min);
               
                c.printArry(arr);
                c.selectMax(arr);
                c.printArry(arr);
               
        }
}
class ArryTool
{
        public int getMax(int[] arr)
        {
                int max=0;
                for (int x=1;x<arr.length;x++)
                {
                        if (arr[x]>arr[max])
                        {
                                max=x;
                        }
                }
        return arr[max];
        }
        public int getMin(int[] arr)
        {
                int min=0;
                for (int x=1;x<arr.length;x++)
                {
                        if (arr[x]<arr[min])
                        {
                                min=x;
                        }
                }
        return arr[min];
        }
        public static void selectMax(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);//说我这里非法调用非静态
                                }
                        }
                }       
        }
        public void printArry(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.print(arr[x]+"]");
                }       
        }
        public void swap(int[] arr,int a,int b)
        {       
                                        int temp=arr;
                                        arr=arr[a];
                                        arr[a]=temp;       
        }
}


1 个回复

倒序浏览
原来是这里我不小心 加了static,让函数 娈静态了,难怪,是自己太粗心了,,

(WGM}A@ZZZ6Q~L`FX$00OQS.png (79.65 KB, 下载次数: 9)

(WGM}A@ZZZ6Q~L`FX$00OQS.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马