文章目录
一、参数传递
1、基本类型传递(实参、形参)
在调用方法时传入的参数叫做实参,定义方法与方法实际执行时使用的参数是形式参数,即形参。
public class Test06{
public static void main(String[] args){
int num = 10;
System.out.println("调用方法前,num= " + num); //输出调用函数前的结果
int res = get_max(num); //调用方法,传入数组;并用res来接收计算出来的最大值
System.out.println("调用方法后,num= " + num); //输出调用函数后的结果
System.out.println("===================This is bottom!=====================");
}
public static int get_max(int n){
//在方法中将形参平方
n = n*n;
return n; //返回值
}
}
在方法中修改变量的值,其实际值不会改变。也就是说,修改形参的值,实参的值不会变。
2、引用类型传递(数组)
public class Test06{
public static void main(String[] args){
int num[] = {
10, 11}; //静态初始化方法定义数组
System.out.println("调用方法前,num[0]= " + num[0]); //输出调用函数前的结果
System.out.println("调用方法前,num[1]= " + num[1]); //输出调用函数前的结果
int res[] = method(num); //调用方法,传入数组;并用res数组来接收计算出来的最大值
System.out.println("调用方法后,num[0]= " + num[0]); //输出调用函数后的结果
System.out.println("调用方法后,num[1]= " + num[1]); //输出调用函数后的结果
System.out.println("===================This is bottom!=====================");
}
//要返回数组类型的变量,则函数返回值类型也要是数组类型
public static int[] method(int[] n){
//在方法中只修改n[1]的值
n[1] = 999;
return n; //返回数组类型
}
}
二、案例:遍历数操作
1、需求
用键盘输入数字,将输入的数全部做乘2操作。
2、分析
① 定义一个数组,用动态初始化完成数组元素初始化;使用键盘对数组值进行录入;
② 定义一个方法,对数组进行遍历输入;
③ 定义一个方法,对数组进行*2操作;
④ 定义一个方法,对数组进行遍历打印,数据不换行,使用System.out.print();
3、练习代码
import java.util.Scanner; //使用键盘录入
public class Test06{
public static void main(String[] args){
System.out.print("你将输入多少个数:"); //提示输入数量
Scanner sc1 = new Scanner(System.in); //实例化输入对象
int n = sc1.nextInt(); //录入数量
int num[] = new int[n]; //动态初始化方法定义数组,数组大小为用户输入的数量
data_in(num); //调用方法,进行键盘录入,传入数组和数的个数;
mutiply_2(num); //调用方法,将数据都*2
data_out(num); //调用方法,遍历数据都输出
System.out.println("===================This is bottom!=====================");
}
//对数组值进行录入的函数
public static int[] data_in(int[] data1){
System.out.print("请输入需要转换的数:");
Scanner sc2 = new Scanner(System.in); //实例化输入对象
for(int i=0; i<data1.length; i++){
data1[i] = sc2.nextInt(); //录入数据
}
return data1; //返回数组类型
}
//对数组值进行*2操作的函数
public static int[] mutiply_2(int[] data2){
for(int i=0; i<data2.length; i++){
data2[i] *= 2; //遍历每个数,将其*2
}
return data2; //返回数组类型
}
//对数组值进行遍历输出的函数,输出不会改变数组值,就不需要返回值类型了
public static void data_out(int[] data3){
System.out.print("将你输入的数都*2后为:");
for(int i=0; i<data3.length; i++){
System.out.print(data3[i] + " ");
}
System.out.println(); //函数接收后换行
}
}
三、案例:获取最值
1、需求
通过键盘输入任意个数字,输出这些数字中的最大值和最小值。
2、练习代码
import java.util.Scanner; //使用键盘录入
public class Test06{
public static void main(String[] args){
System.out.print("你将输入多少个数:"); //提示输入数量
Scanner sc1 = new Scanner(System.in); //实例化输入对象
int n = sc1.nextInt(); //录入数量
int num[] = new int[n]; //动态初始化方法定义数组,数组大小为用户输入的数量
int culmination[] = new int[2]; //定义一个大小为2的数组,存放最大值、最小值
data_in(num); //调用方法,进行键盘录入,传入数组和数的个数;
culmination = get_max_min(num); //调用方法,将数据获得最大值与最小值
data_out(culmination); //输出最大值和最小值,传入存放最值的数组
System.out.println("===================This is bottom!=====================");
}
//对数组值进行录入的函数
public static int[] data_in(int[] data1){
System.out.print("请输入你的数据:");
Scanner sc2 = new Scanner(System.in); //实例化输入对象
for(int i=0; i<data1.length; i++){
data1[i] = sc2.nextInt(); //录入数据
}
return data1; //返回数组类型
}
//对数组值进行遍历,找出最大值和最小值
public static int[] get_max_min(int[] data2){
int max = data2[0]; //首先让最大值和最小值都等于初值
int min = data2[0];
for(int i=1; i<data2.length; i++){
if(data2[i] > max){
max = data2[i]; //更新最大值
}
if(data2[i] < min){
min = data2[i]; //更新最小值
}
}
//定义临时数组,传回两个最值
int temp[] = {
max, min};
return temp; //返回数组类型
}
//对数组值进行遍历输出的函数,输出最大值和最小值
public static void data_out(int[] cul){
System.out.println("这些数中的最大值= " + cul[0]);
System.out.println("这些数中的最小值= " + cul[1]);
}
}