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

---------------------- 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培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值