工具类
来源:互联网 发布:我要投诉淘宝小二 编辑:程序博客网 时间:2024/05/16 17:18
每一个应用程序中都有共性的共性的功能,可以将这些功能进行抽取,独立封装。
工具类
class ArrayTool{ 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 void select(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 swap(int[] arr,int a,int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } public void printArray(int[] arr) //打印数组 { System.out.print("["); for(int x=0;x<arr.length; x++) { if(x!=arr.length-1) System.out.println(arr[x]+","); else System.out.println(arr[x]+"]"); } }}
class ArrayToolDemo { public static void main(String[] args) { int[] arr = {3,1,87,32,8}; ArryTool tool = new ArrayTool(); int max = tool.getMax(arr); System.out.println("max="+max); tool.printArray(arr); tool.selectSort(arr); tool.printArray(arr); }}
虽然可以通过建立ArrayTool的对象使用这些工具方法,对数组进行操作。但是发现了问题:
1,ArrayTool对象是用于封装数据的,可是ArrayTool对象并没有封装特有数据。
2,操作数据的每一方法都没有用到ArrayTool对象中的数据。
这时就考虑,让程序更严谨,是不需要对象的。
可以将ArrayTool中的方法都定义成static的。直接通过类名调用即可。
优化后
class 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 select(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 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.println(arr[x]+","); else System.out.println(arr[x]+"]"); } }}
class ArrayToolDemo { public static void main(String[] args) { int[] arr = {3,1,87,32,8}; int max = ArrayTool.getMax(arr); System.out.println("max="+max); /* ArryTool tool = new ArrayTool(); // 建立对象没意义 int max = tool.getMax(arr); System.out.println("max="+max); tool.printArray(arr); tool.selectSort(arr); tool.printArray(arr); */ }}
将方法都静态后,可以方便于使用,但是该类还是可以被其他程序建立对象的。为了更为严谨,强制让该类不能建立对象。
可以通过将构造函数私有化完成。
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 select(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); } } } } private 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.println(arr[x]+","); else System.out.println(arr[x]+"]"); } }}
0 0
- 工具类
- 工具类!!!!
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- Apache OS 10013
- java中静态代码块的用法 static用法详解 类的加载顺序。
- 用AS3.0生成身份证号码随机
- JAVA方法和本地方法
- 二叉树和面试题
- 工具类
- 聊聊clip-path
- 关于卡尔曼滤波KF与粒子滤波的一点理解,刚刚接触,求指点。
- MySQL取数据库表,取数据表字段详解
- Python 2.7.x 和 3.x 版本的区别
- mongoDB数据库的部署与安装
- 利用O(1)空间复杂度对字符串排序(人人)
- 机器学习基石(林軒田)笔记之十二
- 2016华山杯 writeup