静态的应用。
每一个应用程序中都有共性的功能,可以将这些功能进行抽取,独立封装,以便复用;
1.先写一个工具类Java文件
class ArrTool { public int Getmax(int[] arr) { int max=0; for(int x=0;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=0;x<arr.length;x++) { if(arr[x]<arr[min]) min=x; } return arr[min]; } public 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 void BubbleSort(int[] arr) { for(int x=1;x<arr.length-1;x++) { for(int y=0;y<arr.length-x;y++) { if(arr[y]>arr[y+1]) Swap(arr,y,y+1); } } } public void Swap(int[] arr,int a,int b) { int t=arr[a]; arr[a]=arr[b]; arr[b]=t; } }
2.再写一个调用文件
class ArrToolDemo { public static void main(String[] args) { int[] arr={3,41,56,13,76,22}; ArrTool tool=new ArrTool(); int max=tool.Getmax(arr); System.out.println("max="+max); } }
此时文件夹有两个文件
然后编译运行
第一种方法:先编译工具类文件,在编译调用文件并运行;
第二种方法:直接编译调用文件,因为当编译文件时存在其他类时,会在指定目录下(未指定则在当前目录下)寻找该类的运行文件(arrtool.class),如果有则运行,如果没有则虚拟机寻找其Java文件并编译;(所以使用工具时只要有工具类的运行文件就可以(arrtool.class),即使没有Java文件也行);
虽然可以通过建立ArrTool的对象使用这些工具方法,对数组进行操作。
发现问题:
1,对象时用于封装数据的,可是ArrTool对象并未封装特有数据。
2,操作数组的每一个方法都没有用到ArrTool对象中的特有数据。
这时就考虑,让程序更严谨,是不需要对象的。
可以将ArrTool中的方法都定义成static的,直接通过类名调用即可。
class ArrTool { public static int Getmax(int[] arr) { int max=0; for(int x=0;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=0;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); } } }
。。。。。。。。。。。。
调用文件就不需要创建对象
class ArrToolDemo { public static void main(String[] args) { int[] arr={3,41,56,13,76,22}; //ArrTool tool=new ArrTool(); int max=ArrTool.Getmax(arr);//直接使用类变量调用 System.out.println("max="+max); } }
将方法都静态后,可以方便使用但是该类还是可以被其他程序建对象。
为了更为严谨,强制让该类不能创建对象,可以通过将构造函数私有化完成。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-05 10:54:22