数组作为方法的返回值
package com.claire.day03;
import java.util.Arrays;
import java.util.Random;
public class Demo2 {
public static void main(String[] args) {
int[] arr = generateArray();
System.out.println(Arrays.toString(arr));
System.out.println(MyArray.showArray(arr));
System.out.println(MyArray.showArray(generateArray(1, 100, 10)));
}
public static int[] generateArray(){
int[] arr = {1, 2, 3, 4};
return arr;
}
/**
* 随机数组
* @param s 生成随机数字的起始范围
* @param e 生成随机数字的终止范围
* @param n 数组元素的个数
* @return
*/
public static int[] generateArray(int s, int e, int n){
int[] arr = new int[n];
Random random = new Random();
for (int i = 0; i < arr.length; i++) {
// random.nextInt(e) 生成[0, e]随机整数
int num = s + random.nextInt(e);
// System.out.println(num);
arr[i] = num;
}
return arr;
}
}
MyArray.java
package com.claire.day03;
public class MyArray {
public static String showArray(int[] arr){
String str = "[";
for (int i = 0; i < arr.length -1; i++) {
str = str + arr[i] + ", ";
}
str += arr[arr.length -1] + "]";
return str;
}
}
方法的重载
package com.claire.day03;
public class Demo3 {
public static void main(String[] args) {
// 方法的重载 overload 同名不同参
// 方法名相同, 参数类型或者和数不同, 与返回值无关
sum(10);
sum();
sum(10, 20);
sum(10.9, 99.1);
}
public static void sum(){
System.out.println("sum");
}
public static void sum(int a){
System.out.println("sum + " + a);
}
public static void sum(int a, int b){
System.out.println("sum + " + (a + b));
}
public static void sum(double a, int b){
System.out.println("sum + " + (a + b));
}
public static void sum(double a, double b){
System.out.println("sum + " + (a + b));
}
// public static double sum(double a, double b){
// System.out.println("sum + " + (a + b));
// return a + b;
// }
}
方法的参数类型区别
基本类型作为参数不会影响参数, 引用类型可能会受到影响
package com.claire.day03;
import java.util.Arrays;
public class Demo4 {
public static void main(String[] args) {
// 方法的参数类型区别
int a = 10, b = 20;
int[] arr = {1, 2, 3, 4};
change(a, b);
System.out.println("a = " + a);
System.out.println("b = " + b);
change(arr);
System.out.println(Arrays.toString(arr));
}
public static void change(int a, int b){
a += b;
b += a;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
public static void change(int[] a){
a[1] =9999;
}
}
反转数组
package com.claire.day03;
import java.util.Arrays;
public class Demo5 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7};
// 反转数组
System.out.println(Arrays.toString(reverse(arr)));
}
public static int[] reverse(int[] arr){
for (int i = 0; i < arr.length/2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length-1 - i];
arr[arr.length-1 - i] = temp;
}
return arr;
}
}