Loading

JAVA_SE基础——36.static的实际应用

什么时候定义静态函数

如果功能内部没有访问到非静态数据(对象的特有数据。那么该功能就可以定义为静态)

P.S.

静态方法作为类和接口的重要组成部分,可以通过类名或接口直接访问,通常将那些使用频率较高的方法声明为静态方法,从而可以方便地使用这些方法,并能提高程序的开发效率和性能。


我认为对于某些小功能的函数,而且内部没有访问到非静态数据,这种情况应该定义为静态,就如JavaAPI里面的方法摘要一样全部都是用static 关键字来修饰的。



定义数组工具类:

/*
	定义数组工具类
	1:定义一个遍历数组的函数
	2:定义一个求数组和的功能函数  1. 遍历  2. 两两相加
	3:定义一个获取数组最大值的功能函数
	4:定义一个获取数组最大值角标的功能函数
	5:定义一个返回指定数在指定数组中包含的角标的功能函数
	6:定义一个可以用于排序int数组的函数
		1:冒泡
		2:选择	
 */
class Arrays {

	

	// 1:定义一个遍历数组的函数
	public static void print(int[] arr) {
		for (int x = 0; x < arr.length; x++) {
			if (x != (arr.length - 1)) {
				System.out.print(arr[x] + ",");
			} else {
				System.out.print(arr[x]);
			}

		}
	}

	// 2:定义一个求数组和的功能函数
	public static int getSum(int[] arr) {
		int sum = 0;
		for (int x = 0; x < arr.length; x++) {
			sum += arr[x];
		}
		return sum;
	}

	// 3:定义一个获取数组最大值的功能函数
	public static int getMax(int[] arr) {
		int max = 0;
		for (int x = 0; x < arr.length; x++) {
			if (arr[max] < arr[x]) {
				max = x;
			}
		}
		return arr[max];
	}

	// 4:定义一个获取数组最大值角标的功能函数
	public static int getIndexMax(int[] arr) {
		int max = 0;
		for (int x = 0; x < arr.length; x++) {
			if (arr[max] < arr[x]) {
				max = x;
			}
		}
		return max;
	}

	// 5:定义一个返回 指定数在指定数组中包含的角标的功能函数
	public static int getIndex(int[] arr, int src) {
		int index = -1;
		for (int x = 0; x < arr.length; x++) {
			if (arr[x] == src) {
				index = x;
			}
		}
		return index;
	}

	// 冒泡
	public static void test(int[] arr) {
		for (int x = 0; x < arr.length - 1; x++) {
			if (arr[x] > arr[x + 1]) {
				int temp = arr[x + 1];
				arr[x + 1] = arr[x];
				arr[x] = temp;

			}
		}
	}

	// 选择排序
	public static void selectSort(int[] arr) {
		for (int x = 0; x < arr.length - 1; x++) {
			for (int y = 1 + x; y < arr.length; y++) {
				if (arr[x] > arr[y]) {
					int temp = arr[y];
					arr[y] = arr[x];
					arr[x] = temp;
				}
			}
		}
	}

	// 7:定义一个可以将整数数组进行反序的功能函数。
	public static void reverseSort(int[] arr) {
		int start = 0;
		int end = arr.length - 1;
		for (int x = 0; x < arr.length; x++) {
			if (start < end) {
				int tem = arr[start];
				arr[start] = arr[end];
				arr[end] = tem;
			}
			start++;
			end--;
		}

	}

	// 折半查找
	public static int halfSearch(int key, int[] arr) {
		int min = 0;
		int max = arr.length - 1;
		int mid = 0;

		while (min < max) {
			mid = (min + max) / 2;
			if (key > arr[mid]) {
				min = mid + 1;
			} else if (key < arr[mid]) {
				max = mid - 1;
			} else {
				return mid;
			}
		}
		return -1;
	}

}

class Demo3 {

	public static void main(String[] args) {
		int[] arr = { 1, 3, 2, 4};
		Arrays.selectSort(arr);//选择排序
		Arrays.print(arr);//遍历数组.
		System.out.println();	
		//获取数组最大值的功能函数
		int x = Arrays.getMax(arr);
		System.out.println(x);	
	}
}
运行结果:





posted @ 2015-10-07 11:09  脚本叔叔  阅读(201)  评论(0编辑  收藏  举报