八、《方法加强和API使用》

本文详细探讨了Java中的方法参数传递,包括值传递和引用地址传递的概念及内存分析,还介绍了可变参数的原理和优势。此外,讲解了Arrays工具类的用途,如何使用API文档学习工具类,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

方法加强练习

此需求和代码在文章最下面。

1、方法参数传递

1.1 什么是方法参数传递

概念:在使用方法的时候,传入值或者变量就是参数传递。

1.2 参数传递的本质:

Java的参数传递:

基本数据类型传递的是:值本身

引用数据类型传递的是:变量在堆中的引用地址

1.3 值传递

/**
 *	堆栈分析:
 *		基本类型是"值"的传递
 *		引用类型是引用地址的传递
 */
public class _04StackHeap {
public static void main(String[] args) {
	int a = 1;
	System.out.println("改变前:" + a); // 1
	// 调用change方法
	change(a);
	System.out.println("改变后================ :" + a); // 1	
}

public static void change(int a) {
	a = 2;
	System.out.println("改变中-------:" + a); // 2
}
}

内存分析图:

 1.4 引用地址传递

/**
 *	堆栈分析:
 *		基本类型是"值"的传递
 *		引用类型是引用地址的传递
 */
public class _05StackHeap {
public static void main(String[] args) {
	int[] arr = {1, 2};
	System.out.println("改变前:" + arr[0]);// 1
	System.out.println("改变前:" + arr[1]);// 2
	// 调用change方法
	change(arr);
	System.out.println("改变后================ :" + arr[0]);// 6
	System.out.println("改变后================ :" + arr[1]);// 9
}
public static void change(int[] arr) {
	arr[0] = 6;
	arr[1] = 9;
	System.out.println("改变中-------:" + arr[0]);// 6
	System.out.println("改变中-------:" + arr[1]);// 9
}
}

内存分析图:

 2. 可变参数

大家先来看几个需求

需求:求2个int变量的和,并且返回,设计一个方法实现
/**
 * 求变量a和b的和
 * @param a int参数
 * @param b int参数
 * @return 返回和
 */
public static int getSum(int a, int b) {
return a + b;
}

需求:求3个int变量的和,并且返回,设计一个方法实现	
/**
 * 求变量a、b、c的和
 * @param a int参数
 * @param b int参数
 * @param c int参数
 * @return 返回和
 */
public static int getSum(int a, int b, int c) {
return a + b + c;
}

大家可以看到,求和的需求是类似的,如果这样的需求有很多,按照我们之前的处理的方式就是要声明很多对应的方法处理。这样的话会有代码重复、可读性不好、并且程序员需要花时间去记忆等缺点,所以我们要用数组优化代码。

public class _03ChangeMethod {
public static void main(String[] args) {
	// 需求:求2个int变量的和,并且返回,设计一个方法实现
	// 需求:求3个int变量的和,并且返回,设计一个方法实现
	// 调用getSum(int[] arr) 方法
	int[] arr;
	arr = new int[]{1, 2};
	// 求3个int参数的和,现在参数就相当于是一个静态创建的数组
	int sum2 = getSum(new int[]{1, 2, 3});
	System.out.println(sum2);
		
	// 求4个int参数的和,现在参数就相当于是一个静态创建的数组
	int sum3 = getSum(new int[]{1, 2, 3, 69});
		System.out.println(sum3);
	}
/**
     * 求int[]所有元素的和
     * @param arr int[]参数
     * @return 返回和
     */
public static int getSum(int[] arr) {
    int sum = 0;
    for (int e : arr) {
	  sum += e;
    }
    return sum;
}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值