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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 18255007004 中级黑马   /  2015-1-9 15:28  /  1311 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
什么时候使用静态?
要从两反面入手
静态修饰的内容有成员和函数
什么时候定义静态变量(类变量)和函数
当对象中出现共享数据(数值,name等是属性)时,该数据被静态所修饰。
对象中的特有数据要定义成非静态,存在于堆内存中。

什么时候定义静态函数?
当功能内部没有访问到非静态数据(即对象的特有数据)时,
    那么该功能可以定义为静态的

*/
/*
静态的应用
每个应用程序中都有共性的功能,
     可以将这些功能进行抽取,独立封装,以便复用。

虽然可以通过建立ArrayTool的建立使用这些工具方法,对数组进行操作。
1,对象是用于封装数据的,可是ArrayTool对象并未封装特有数据。
2,操作数组的每一个方法都没有用到ArrayTool对象中的特有数据。
3,这时就要考虑,让程序更严谨,是不需要对象的。可以将ArrayTool中的方法都定义成static的。直接通过类名调用即可。
   将方法静态后,可以便于使用,但是该类还是可以被其他程序建立对象的
   可以通过将构造函数私有化完成。
*/
class ArrayTool
{
        private ArrayTool(){};
        public static 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 static 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 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);
                                }
                        }
                }
        }
        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);
                                }
                        }
                }
        }
private static void swap(int[] arr,int a,int b)
        {
                int temp=arr[a];
                arr[a]=arr[b];
                arr[b]=temp;
        }
        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]+"]");
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马