一、方法
-
方法概述
方法是用于封装特定功能的代码块
-
1.方法格式
修饰符 返回值类型 方法名(参数类型 参数名...){ 方法体; return 返回值; }
-
2.如何写一个方法:
需要根据需求明确返回值类型和参数列表 参数列表: 缺什么,你就写什么参数,缺几个你就写几个 返回值类型: 返回值就是需求的结果,结果是什么类型,返回值就是类型
-
3.有返回值的方法
//举例1:求任意两个数的和,调用方法得到结果后,可以用结果做其他操作 public static int getSum(int a,int b){ return a+b; }
-
4.无返回值的方法
//举例2: 写一个方法,求任意两个数的和,调用方法结果直接输出,不能做其他操作 public static void getSum(int a,int b){ System.out.println(a+b); }
-
5.有关方法的注意事项
a:方法需要定义在类中 b:方法和方法之间是平级的,不能嵌套定义 c:方法有返回值类型,就必须写return语句 d:方法如果没有返回值,用void表示,可以写return; e:方法的实际参数和形式参数要一一对应 形式参数:定义在方法()里的参数 实际参数:调用方法时实际传递的参数
-
6.方法的重载
方法名相同,参数列表不同,与返回值无关 public static void show(int a,int b){ } //参数类型不同 public static void show(int a,byte b){ } //参数顺序不同 public static void show(byte a,int b){ } //参数个数不同 public static int show(int a,int b,int c){ return 0; } //这个不是重载,和参数名没有关系 public static void show(int x,byte y){ }
二、方法的参数
-
1.方法的参数是基本类型
形式参数的改变不影响实际参数
-
2.方法的参数是引用数据类型
形式参数的改变对实际参数直接影响
三、方法练习
-
1.写一个方法,在控制台打印输出n个HelloWorld
public static void printHelloWorld(int n){ for(int i=0;i<n;i++){ System.out.println("HelloWorld"); } }
-
2.写一个方法,求两个数的最大值
public static int getMax(int a,int b){ int max=a>b?a:b; return max; }
-
3.写一个方法,求三个数的最大值
public static int getMax(int a,int b,int c){ //先求a和b最大值,赋值给max int max=a>b?a:b; //再让max和c比较求最大值,重新赋值给max max=max>c?max:c; return max; }
-
4.写一个方法,打印输出所有的水仙花数
public static void printFlower(int a,int b,int c){ //遍历所有的三位数 for(int i=100;i<=999;i++){ int ge=i%10; int shi=i/10%10; int bai=i/100%10; if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){ System.out.println(i); } } }
-
5.写一个方法,求水仙花数的个数
public static int getFlowerCount(int a,int b,int c){ //定义计数器 int count=0; //遍历所有的三位数 for(int i=100;i<=999;i++){ int ge=i%10; int shi=i/10%10; int bai=i/100%10; if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){ count++;//计数器累加 } } return count; }
-
6.写一个方法,输出数组int[] 中所有的元素
public static void printArray(int[] arr){ for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } }
-
1.写一个方法,按照格式输出数组int[]中所有的元素
// 输出格式如:{1,2,3,4,5} public static void printArray(int[] arr) { System.out.print("{"); for (int i = 0; i < arr.length; i++) { if (i == arr.length - 1) { // 是最后一个元素 System.out.println(arr[i] + "}"); } else { // 不是最后一个元素 System.out.print(arr[i] + ","); } } }
-
2.写一个方法,求数组中元素的和
public static int getArraySum(int[] arr) { //定义求和变量 int sum = 0; //遍历所有元素 for (int i = 0; i < arr.length; i++) { //和sum累加 sum += arr[i]; } return sum; }
-
3.写一个方法,求数组中元素的平均值
public static int getArrayAvg(int[] arr) { //求和变量 int sum = 0; for (int i = 0; i < arr.length; i++) { //把元素和sum累加 sum += arr[i]; } //计算平均值 int avg = sum / arr.length; return avg; }
-
4.写一个方法,求数组中元素的最大值
public static int getArrayMax(int[] arr) { //把数组的第一个元素,假设为最大值 int max = arr[0]; //遍历数组中的元素,和max比较 for (int i = 0; i < arr.length; i++) { //如果元素比max大 if (arr[i] > max) { max = arr[i];//把大的元素赋值给max } } return max; }
-
5.写一个方法,求数组中元素的最小值
public static int getArrayMin(int[] arr) { //把数组的第一个元素,假设为最小值 int min = arr[0]; //遍历数组中的元素,和min比较 for (int i = 0; i < arr.length; i++) { //如果元素比min大 if (arr[i] < min) { min = arr[i];//把小的值赋值给min } } return min; }
-
7.键盘录入若干个元素,保存到数组中,并将数组返回
public static int[] createScannerArray(int length) { //根据指定的长度,创建一个数组 int[] arr = new int[length]; Scanner sc = new Scanner(System.in); for (int i = 0; i < arr.length; i++) { System.out.println("键盘录入第" + (i + 1) + "个整数:"); //把键盘录入的整数,赋值给元素 arr[i] = sc.nextInt(); } //把填充好数据的数组返回 return arr; }
-
8.随机生成若干个元素,保存到数组中,并将数组返回
public static int[] createRandomArray(int length, int bounds) { //根据指定的长度,创建一个数组 int[] arr = new int[length]; //创建随机数对象 Random sc = new Random(); //遍历数组,给元素赋值 for (int i = 0; i < arr.length; i++) { System.out.println("键盘录入第" + (i + 1) + "个整数:"); //随机生成[0,bounds)范围内的整数,并赋值给元素 arr[i] = sc.nextInt(bounds); } //把填充好数据的数组返回 return arr; }