B008-方法参数传递&可变参数&工具类

发布于:2024-04-27 ⋅ 阅读:(26) ⋅ 点赞:(0)

方法参数传递

/**
 * java中只有值传递
 *   基本数据类型 传递的是具体的值
 *   引用数据类型 传递的是地址值
 */
public class _01_ParamPass {

	public static void main(String[] args) {
		// 调用方法 getSum
		getSum(6,9);
		//调用getMax
		int[] arr = {4, 5,6};
		getMax(arr);
		print("小王");
	}
	
    //定义一个方法  参数为基本数据类型   参数是基本数据类型
	static void getSum(int a,int b){
		System.out.println(a);
		System.out.println(b);		//打印的是具体的值
	}
	
	//定义一个方法  找到数组中最大的数字   参数是引用数据类型
	static void getMax(int[] arr){
		System.out.println(arr);	//[I@15db9742
	}
	
	static void print(String name){	//引用数据类型
		System.out.println(name);	//String这个类型重写了toString方法
	}
}

在这里插入图片描述

可变参数

/**
 *  可变参数:  可以表示同种类型的0个或者多个数据
 *  可变参数的本质    其实也是数组   只能作为形式参数
 *  语法结构:
 *      数据类型...变量名
 */
public class _02_ChangeParam {
	public static void main(String[] args) {
		//调用可变参数的方法,传递数组
		int[] arr = {1,2,3};
		getSum(arr);
		//调用可变参数的正规方法,传递可变参数
		getSum(1,2,4);
	}
	
	//定义一个方法 求多个数的和
	static void getSum(int...param){
		//定义变量 存储和
		int sum = 0;
		for (int i : param) {
			sum += i;
		}
		System.out.println(sum);
	}
	
	//定义一个方法 求多个数的和(利用方法重载验证可变参数的本质就是数组)
	/*static void getSum(int[] arr){
		
	}*/
}

注意事项

/**
 *  注意事项:  可变参数只能放在形参列表的末尾  可变参数只能有一个
 */
public class _03_ChangeParam2 {
	public static void main(String[] args) {
		// 调用
		test("呵呵", 2, 4, 6, 1, 8, 9);
	}

	static void test(String name, int... param) {
		System.out.println("多个参数的方法");
	}

	// 可变参数只能放在形参列表的末尾
	// static void test1(int...param,String name){}

	// 可变参数只能有一个
	// static void test2(String...name,int...param){}
}

冒泡排序

在这里插入图片描述

	// 对int数组进行排序
	public static void sort(int[] arr) {
		for (int j = 0; j < arr.length - 1; j++) {
			// 单次比较
			for (int i = 0; i < arr.length - 1; i++) {
				// 如果前一位比后一位更大 则交换位置
				if (arr[i] > arr[i + 1]) {
					int temp = arr[i];
					arr[i] = arr[i + 1];
					arr[i + 1] = temp;
				}

			}
		}
	}

Arrays工具类

/**
 * java自带的类的使用说明
 *  点开api文档-->点击显示-->选中索引-->输入需要查找的类名-->双击显示详情
 *  Arrays:
 *     凡是涉及到对于数组进行操作  优先想到Arrays工具类
 *     导包: 唯一确定使用哪里的类
 */
public class _04_ArraysUse {

	public static void main(String[] args) {
		// static void sort(int[] a) 属于Arrays
		// 对指定的 int 型数组按数字升序进行排序。
		int[] arr = { 21, 36, 14, 25 };
		Arrays.sort(arr);
		// static String toString(int[] a) 返回指定数组内容的字符串表示形式。
		String str = Arrays.toString(arr);
		System.out.println(str);
	}
}

Arrays工具类常用方法

public class _05_ArraysUse {

	public static void main(String[] args) {
		//动态创建一个数组
		int[] arr = new int[5];
		/*arr[0] = 69;
		arr[1] = 69;
		arr[2] = 69;
		arr[3] = 69;
		arr[4] = 69;*/
		
		//static void fill(int[] a, int val) 填充:将指定的 int值分配给指定int型数组的每个元素。 
		Arrays.fill(arr, 666);
		//static String toString(int[] a)   返回指定数组内容的字符串表示形式。 
		System.out.println(Arrays.toString(arr));

		int[] arr1 = { 12, 13, 14, 15 };
		//static int[] copyOf(int[] original, int newLength) 复制数组:original 需要从哪里拷贝 源数组   newLength 新数组的长度
		int[] arr2 = Arrays.copyOf(arr1, 2);
		System.out.println(Arrays.toString(arr2));
		
		/*static int[] copyOfRange(int[] original, int from, int to) 
                    将指定数组的指定范围复制到一个新数组。   
            from指的是从哪个索引开始  to到哪里结束 但是取不到        */
		int[] arr3 = Arrays.copyOfRange(arr1, 1, 2);// 1 2
		System.out.println(Arrays.toString(arr3));
	}
}

网站公告

今日签到

点亮在社区的每一天
去签到