静态应用之调用与设计方法工具的设计详解一

本文详细介绍了如何将Java中的通用数组操作方法封装为工具类,并通过静态方法实现简化调用,同时提供了实例演示了如何正确使用这些方法。通过将方法私有化构造函数,确保了类的严谨性和效率提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看了一些java的学习视频,然后根据视频中老师讲解的方法做了一些整理。

设计方法工具

/*


每一个应用程序中都有共性的功能,
可以将这些功能进行抽取,独立封装,
以便于复用。


 虽然可以通过建立ArrayTool的对象使用这些工具方法,对数组进行操作。
 发现了问题:
1,对象时用于封装数据的,课时ArrayTool对象并为封装特有数据。
2,操作数组的每一个方法都没有用到ArrayTool对象中的特有数据。


这时就考虑,让程序更严谨,是不需要对象的,
可以将ArrayTool中的方法都应以成static的。直接通过类名调用即可。

将方法都静态后,可以方便于使用,但是该类还是可以被其它程序建立对象的,
为了更为严谨,强制该类不能建立对象,
可以通过将构造函数私有化完成。

工具类中通常定义的是静态的方法

 

接下来,将ArrayTool.class文件发送给其他人,其他人只要将该文件设置到classpath路径下,就可以使用该工具类。

但是,很遗憾,该类中到底定义了多少个方法,对方法不清楚,因为该类并没有使用说明书。

开始制作程序的说明书,java的说明书通过文档注释来完成

 

/** 通常是对类的描述信息
这是一个可以对数组进行操作的工具类,该类中提供了,获取最值,排序等功能

@author:小七
@version:V1.1
*/


public class ArrayTool
{
 /**
 空参数构造函数。
 */

 

 //外界想使用我的工具类,就只能类名调用,想创建对象是不可能的,
 //避免了堆内存中出现一些莫名其妙的对象(程序优化可以引用)
 private ArrayTool(){}


 //比较最大值
 //public static int getMax(int[] arr) 加上静态

 
 //凡是public的修饰符的功能,都有文档注释描述,因为都可以被文档注释工具所提取
 /**
 获取一个整形数组中的最大值。
 @param arr 接受一个int类型的数组。
 @return 会返回一个该数组中最大值。
 */
 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) 加上静态
 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 selectSort(int[] arr) 加上静态
 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);
    }
   }
  }
 }
 
 //冒泡排序
 //public static void bubbletSort(int[] arr) 加上静态
 public static void bubbleSort(int[] arr)
 {
  for(int x=0;x<arr.length-1; x++)
  {
   for(int y=0; y<arr.length-x-1;y++)
   {
    if(arr[y]>arr[y+1])
    {
     swap(arr,y,y+1);
    }
   }
  }
 }
 
 //元素交换位置
  //public void swap(int[] arr,int a,int b) 加上静态
 private static void swap(int[] arr,int a,int b) //因为此函数没有提供数据,可以将此方法私有化
 {
  int temp = arr[a];
  arr[a] = arr[b];
  arr[b]= temp;
 }

 //打印数组
 //public void printArray(int[] arr)加上静态
 public static void printArray(int[] arr)
 {
  System.out.print("[");
  for(int x=0; x<arr.length; x++)
  {
   if(x!=arr.length-1)
    System.out.print(arr[x]+", ");
   else
    System.out.println(arr[x]+"]");
  }
 }
}


/*
class Test1
{
 public static void main(String[] args)
 {
  int[] arr = {3,5,6,7,8,0,9};

  int max = getMax(arr);
  System.out.println("max="+max);
 }

 public static int getMax(int[] arr)
 {
  int max = 0;
  for(int x=1; x<arr.length; x++)
  {
   if(arr[x]>arr[max])
    max = arr[x];
  }
  return arr[max];
 }
}

class Test2
{
   public static int getMax(int[] arr)
 {
  int max = 0;
  for(int x=1; x<arr.length; x++)
  {
   if(arr[x]>arr[max])
    max = arr[x];
  }
  return arr[max];
 }
}
*/

 

调用方法:

class ArrayToolDemo
{
 public static void main(String[] args)
 {
  int[] arr = {3,23,5,7,0,9,12};
  
  //加上静态后,直接用下面方法来调用
  int max = ArrayTool.getMax(arr);
  System.out.println("max="+max);

  //给之前的类中的方法加上静态后,以下建立的对象没有意义了
  /*
  ArrayTool tool = new ArrayTool();

  int max = tool.getMax(arr);
  System.out.println("max="+max);

  int min = tool.getMin(arr);
  System.out.println("min="+min);

  tool.printArray(arr);
  tool.selectSort(arr);
  tool.printArray(arr);
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值