Function2

//练习 :函数实现两个数的互换(做不到)
public static void exchange(int x, int y){// x=n1
int tmp = x;
x = y;
y = tmp;

x+=10;
}

public static void exchange2(int[] arr){// x=n1
int tmp = arr[0];
arr[0] = arr[1];
arr[1] = tmp;

}

//练习: 将一个char 数组中所有元素置为A
public static void fun1(char[] arr){ //arrT=arr
// char[] tmpArr = {'a','b','c','d'};
// arrT = tmpArr;
for (int i = 0; i < arr.length; i++) {
arr[i] = 'A';
}
}

//下层函数 需要向上层返回多个信息
//练习:计算int数组中最大值 和最小值的下标
public static void findMinMax(int[] arr, int[] result){
int min = 0;
int max = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] > arr[max]) {
max =i;
}

if (arr[i] < arr[min]) {
min = i;
}

}

result[0] = min;
result[1] = max;
}

//返回值类型为引用类型
public static int[] fun2(){
int x=10;
//函数内部声明的引用类型变量
// 随着函数的结束 引用本身会被销毁
// 但若 有别的 东西 引用那个实际对象
// 实际对象依然存在
int[] arr = new int[5];
arr[0] = -99;
return arr;
}

public static void main(String[] args) {
/*-----形式参数  实际参数 -----
* 函数内部对于形参的修改 不会影响实际参数 
* 形式参数拷贝 实际参数的值   你修改的是形式参数
* */
// int n1 = 5;
// int n2 = 3;
// exchange(n1, n2);
// System.out.println("n1:"+n1 +" n2:"+n2);
//
// int[] arr3= {6,8};
// exchange2(arr3);
// System.out.println(arr3[0]  +"  "+arr3[1]);

/*----值类型    (基本类型) int double ....
*   引用类型 数组 String
*      引用本身->实例对象
*   引用类型做实际参数
*    形参仅仅拷贝引用   实际的对象只有一个
*  ----*/
// char[] arr = new char[5];
// fun1(arr);
// for (int i = 0; i < arr.length; i++) {
// System.out.print("|"+arr[0]+"|");
// }

// int[] arr = {1,2,3,4,5,6};
// int[] result = new int[2];
// findMinMax(arr, result);//调用里面都是实参
// System.out.println(result[0] +"  "+result[1]);

int[] arr =fun2();
System.out.print(arr[0]); 

}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章