zoukankan      html  css  js  c++  java
  • java实战之数组工具集

    java是一门面向对象的语言,我们也提到过,面向对象的一个优点就在于能够提高代码的复用性,前面我们详细讲过数组的查找,排序,等等,为了提高代码的复用性,我们何不自己写一个数组的工具集,来综合下前面所学的面向对象的知识呢,这一节,我们就来写一个实例来练练手,也来加深下我们对所学知识的理解。在写程序之前,我们来想一下需求

    需求:

      1、根据所输入的数组,进行查找,排序。

      2、能够单独封装成一个类来供其他用户使用

    思路:

      1、首先要完成对方法的封装,我们把所有的方法都放到类当中,这个时候我们需要定义一个类Arrtool

      2、此时类需要一个构造方法进行初始化。

      3、对相应功能分离封装到函数当中,并且明确函数的接受值还有返回值。

    代码示例:

    /**
    *This is a ArrTool For array search , array sort , array print tool set.
    *@author Mrsun
    *@version v0.0.1
    */
    
    public class ArrTool
    {
    	/**
    	*TO avoid new class 
    	*/
    	private ArrTool(){}
    	
    	/**
    	*Find array index for special value
    	*@param arr 
    	*@param val
    	*@return int index
    	*/
    
    	public static int arrSearch(int [] arr,int val)
    	{
    
    		for(int i = 0 ; i <= arr.length-1 ; i++)
    		{
    
    			if(arr[i] == val)
    				return i;
    
    		}
    		return -1;
    
    	}
    	/**
    	*Use select Alogrithsm to sort the array you input 
    	*@param arr
    	*/
    	public static void selectSort(int[] arr)
    	{
    
    		for(int i = 0; i<arr.length-1; i++)
    		{
    
    			for(int n = i+1 ; n<=arr.length-1 ; n++)
    			{
    
    				if(arr[i] > arr[n])
    					swap(arr,i,n);//swap the value
    
    			}
    
    		}
    
    	}
    
    	private static void swap(int[] arr,int i, int n)
    	{
    
    		int temp;
    		temp = arr[i];
    		arr[i] = arr[n];
    		arr[n] = temp;
    	}
    
    	/**
    	*Print the array you input
    	*@param arr
    	*
    	*/
    
    	public static void printArr(int[] arr)
    	{
    		System.out.print("[");
    		for(int i = 0;i<=arr.length-1;i++)
    		{
    			if(i<arr.length-1)
    				System.out.print(arr[i]+",");
    			else
    				System.out.print(arr[i]);
    
    		}
    			
    		System.out.println("]");
    
    	}
    
    }
    

     这里需要注意的有一下几点:

    第一为什么我们要让构造函数私有?

    答:这是一个单独功能的工具箱,他的功能就是处理数组的相关操作,要是我们把这个类给了其他人供其使用的话,别人又不知道的话很有可能去实例化这个类,但是为了使用时方便,我们定义这个类中的各个方法为静态,这样的一个好处就是,我们不用初始化这个对象,就可以实现对他的访问,对其方法进行使用。这个也是我们在方法前加static关键字修饰的原因。其次,我们在不用对外访问的方法对其进行私有化,这样可以更利于我们对他的封装,不对外提供的都要对齐进行私有化。

    第二个,这个工具类如何使用?

    答:我们创建了这个工具集,当然知道如何对其进行使用。但是如果我们把这个类,拿给其他人使用的话,我们如何给其他人说明呢?身边的人还好说,但是如果在异地,或者不同的国度,我们如何处理呢,我们这里就需要一个生成帮助文档的工具,java也提供给我们了。

    javadoc的使用:

    在控制台,输入javadoc会显示一些帮助信息。

    javadoc使用的注意事项:要写帮助信息的类是公开类,第二个就是常用的@说明符。

    @version 版本

    @author 做着

    @param 参数(多个参数时要分行写,每行一个参数说明)

    @return 返回 

  • 相关阅读:
    浅析堆与垃圾回收
    再探JVM内存模型
    索引使用的基本原则
    常见的索引模型浅析
    初识InnoDB体系架构和逻辑存储结构
    一条update SQL语句是如何执行的
    MySQL一条查询语句是如何执行的
    堆与优先队列
    ibatis BindingException Parameter 'status' not found. Available parameters are [arg1, arg0, param1, param2] 解决方法
    Mysql通过MHA实现高可用
  • 原文地址:https://www.cnblogs.com/sunchuanzhen/p/3333007.html
Copyright © 2011-2022 走看看