您的位置:首页 > 职场人生

黑马程序员Java基础-面向对象编程-封装生成数组工具类

2013-11-12 11:53 459 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
          面向对象的基本特征包括:封装、继承、多态、抽象。其中,封装是指将数据成员私有化,提供公共的访问者方法。封装的过程是类对外部隐藏细节的过程,类外想要访问隐藏的细节,必须通过公共的访问者方法。

      在实际开发过程中,我们可以通过封装具有相同功能的方法生成工具类,方便其他类的使用。例如,数组在实际开发中非常的常见,而且我们需要经常使用其获取最值或者数组排序等方法,这时,我们就可以将数组的一些函数进行封装,生成数组工具类,方便其他数组直接调用。代码如下:

package blog.Javase.object.blog01;
/**
* 每个应用程序中都有共性的功能,可以将这些功能进行抽取,独立封装,以便复用。
*
* 该类是一个可以对数组进行操作的工具类,该类中提供了,获取最大值,最小值,排序等功能,
*
* Java工具类通过使用Javadoc生成注释帮助文档来完成。
*
* @author kevin
* @version v1.0
*/
public class ArrayTool
{
/**
* 空参数构造函数
* 构造函数私有化,防止其他程序建立对象,使程序更严谨。
*/
private ArrayTool(){}

/**
* 获取一个整型数组中的最大值
* @param arr 接受一个int类型的数组
* @return 返回一个数组中的最大值
*/
public static int getMax(int[] arr)
{
int max = 0;
for(int i=1;i<arr.length;i++)
{
if(arr[i]>arr[max])
max = i;
}
return arr[max];
}
/**
* 获取一个整型数组中的最小值
* @param arr 接收一个int类型的数组
* @return 返回一个数组中的最小值
*/
public static int getMin(int[] arr)
{
int min = 0;
for(int i=1;i<arr.length;i++)
{
if(arr[i]<arr[min])
min = i;
}
return arr[min];
}
/**
* 给数组进行选择排序
* @param arr 接收一个int类型的数组
*/
public static void selectSort(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
swap(arr,i,j);
}
}
}
/**
* 给数组进行冒泡排序
* @param arr 接收一个int类型的数组
*/
public static void bubbleSort(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
if(arr[j]>arr[j+1])
swap(arr,j,j+1);
}
}
}
/**
* 给数组中元素进行位置的置换
* @param arr 接收一个int类型的数组
* @param a   要置换的位置
* @param b   要置换的位置
*/
private static void swap(int[] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
/**
* 用于打印数组中的元素,打印形式是:[element1, element2, ...]
* @param arr
*/
public static void printArray(int[] arr)
{
System.out.print("[");
for(int i=0;i<arr.length;i++)
{
if(i!=arr.length-1)
System.out.print(arr[i]+",");
else
System.out.println(arr[i]+"]");
}
}
}

       工具类写好后,接下来使用dos命令生成Java注释文档,命令窗口如下图:

      


      注释文档我选择放在当前目录下,如果需要放在硬盘c盘,可以先建立目录myutils,将工具类编译后的文件ArrayTool.class放入myutils目录中,运行dos命令Javadoc -d c:\myutils\mytools -author -version ArrayTool.java即可。注释文档中包括一些html页面和文件夹,如下图所示:



      点击index.html即可打开注释文档,可以看到类的注释,方法摘要和方法详细信息等,如下图所示:



      接下来将ArrayTool.class文件放入mytools文件中,工具类的封装就完成了,其他类就可以直接调用。写一个ArrayToolTest测试类,调用ArrayTool.java中的方法,代码如下:

package blog.Javase.object.blog01;
/**
* 数组工具类测试
* @author kevin
*
*/
public class ArrayToolTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int[] arr = {6,3,8,9,5,7};
//工具类封装好了后,其他类就可以直接调用,无需建立对象来调用工具类中的方法,
//直接使用 类名.方法名()即可。

//调用数组工具类中获取最大值的函数
int max = ArrayTool.getMax(arr);
System.out.println("max="+max);
//调用数组工具类中获取最小值的函数
int min = ArrayTool.getMin(arr);
System.out.println("min="+min);
//调用数组工具类中数组冒泡排序的函数
ArrayTool.bubbleSort(arr);
ArrayTool.printArray(arr);
//调用数组工具类中选择排序的函数
ArrayTool.selectSort(arr);
ArrayTool.printArray(arr);
}

}


----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  黑马程序员 java