1 public class JavaDemo { 2 public static void main(String[] args) { 3 /* 4 * A:如何写一个方法 5 * 1,明确返回值类型 6 * 2,明确参数列表 7 * B:案例演示 8 * 需求:求两个数据之和的案例 9 * C:方法调用图解 10 */ 11 System.out.println("两数之和为:" + sum(10, 20)); 12 } 13 /* 14 * 求两个整数的和 15 */ 16 public static int sum(int i, int j) { 17 return i + j; 18 } 19 }
1 import java.util.Scanner; 2 class JavaDemo { 3 public static void main(String[] args) { 4 Scanner sc = new Scanner(System.in); //创建键盘录入对象 5 System.out.println("请输入行数:"); 6 int row = sc.nextInt(); //将键盘录入的行数存储在row中 7 System.out.println("请输入列数:"); 8 int column = sc.nextInt(); //将键盘录入的列数存储在column中 9 10 //System.out.println(print(row,column)); //错误: 此处不允许使用 '空' 类型,返回值是void的方法不能输出调用 11 //返回值是void的方法只能单独调用 12 print(row,column); 13 } 14 /* 15 在控制台输出矩形星形 16 1,明确返回值类型,经分析没有具体的返回值类型,void 17 2,明确参数列表int a,int b 18 */ 19 public static void print(int a,int b) { 20 for (int i = 1;i <= a ;i++ ) { //行数 21 for (int j = 1;j <= b ;j++ ) { //列数 22 System.out.print("*"); 23 } 24 System.out.println(); 25 } 26 //return ; //如果返回值类型是void,return可以省略,即使省略系统也会默认给加上,形式是return; 27 } 28 } 29 30 /* 31 * A:案例演示 32 * 需求:根据键盘录入的数据输出对应的乘法表 33 */ 34 import java.util.Scanner; 35 class JavaDemo { 36 public static void main(String[] args) { 37 Scanner sc = new Scanner(System.in); //创建键盘录入对象 38 System.out.println("请输入一个整数,范围在1~9之间"); 39 int num = sc.nextInt(); //将键盘录入的行数存储在num中 40 print99(num); 41 } 42 /* 43 打印99乘法表 44 1,返回值类型为空void 45 2,明确参数列表int a 46 */ 47 public static void print99(int a) { 48 for (int i = 1;i <= a ;i++ ) { //行数 49 for (int j = 1;j <= i ;j++ ) { //列数 50 System.out.print(j + "*" + i + " = " + (i * j) + "\t"); 51 } 52 System.out.println(); 53 } 54 //return ; //如果返回值类型是void,return可以省略,即使省略系统也会默认给加上,形式是return; 55 } 56 }
1 class JavaDemo { 2 public static void main(String[] args) { 3 double sum = add(10.3, 29); 4 System.out.println("两数之和:" + sum); 5 int sum1 = add(10, 29, 22); 6 System.out.println("三数之和:" + sum1); 7 8 double sum3 = add(10.11, 29); 9 System.out.println("两个小数之和:" + sum3); 10 } 11 /* 12 求两个数之和 13 1,返回值类型为int 14 2,明确参数列表int a, int b 15 */ 16 public static double add(int a, double b) { 17 return a + b; 18 } 19 20 /* 21 求三个数之和 22 1,返回值类型为int 23 2,明确参数列表int a, int b,int c 24 */ 25 public static int add(int a, int b, int c) { 26 return a + b + c; 27 } 28 29 /* 30 求两个小数之和 31 1,返回值类型为double 32 2,明确参数列表double a, double b 33 */ 34 public static double add(double a, int b) { 35 return a + b; 36 } 37 }
1 public static 返回值类型 方法名称([参数类型 变量.....]) { 2 // 该方法要执行的代码 3 [return[返回值];] 4 }
1 // 定义一个无参无返回值的方法 2 public class JavaDemo { 3 public static void main(String[] args) { 4 printMessage( ); 5 printMessage( ); 6 } 7 public static void printMessage( ) { 8 System.out.println("*********************"); 9 System.out.println("***** welcome to *****"); 10 System.out.println("*********************"); 11 } 12 } 13 方法的本质就是方便使用者进行重复调用,并且所有的程序一定都是通过主方法开始执行的 14 // 定义一个有参数有返回值的方法 15 public class JavaDemo { 16 public static void main(String[] args) { 17 System.out.println(login("admin")); 18 System.out.println(login("123")); 19 System.out.println(login("1234")); 20 } 21 public static String login(String user) { 22 if (user == "admin") { 23 return "输入用户名正确:" + user; 24 } else if (user == "123") { 25 return "输入密码正确:" + user; 26 } else { 27 return "用户名密码错误:" + user; 28 } 29 } 30 } 31 方法定义的时候,如果方法的返回值类型为void,可以利用rerun来结束调用 32 public class JavaDemo { 33 public static void main(String[] args) { 34 getMessage(3); 35 getMessage(-3); 36 } 37 public static void getMessage( int print) { 38 if (print < 0) { 39 return; 40 } 41 for (int i = 0; i <= 3; i++) { 42 System.out.println("打印:" + i + "次"); 43 } 44 } 45 }
1 // 定义该方法可以接收两个int变量,三个int变量、两个double变量的加法处理 2 // 采用方法重载定义 3 public class JavaDemo { 4 public static void main(String[] args) { 5 int resultA = sum(10, 24); 6 int resultB = sum(10, 20,30); 7 double resultC = sum(11.1, 113.2); 8 System.out.println("计算结果为:" + resultA); 9 System.out.println("计算结果为:" + resultB); 10 System.out.println("计算结果为:" + resultC); 11 } 12 13 public static int sum(int x, int y) { 14 return x + y; 15 } 16 17 public static int sum(int x, int y, int z) { 18 return x + y + z; 19 } 20 21 public static double sum(double x, double y) { 22 return x + y; 23 } 24 }
1 package com.sujian.operator; 2 public class JavaDemo { 3 public static void main(String[] args) { 4 // 调用可变参数方法 5 printMax(11, 22, 33, 44, 55); 6 printMax(); 7 } 8 public static void printMax(int... nums) { 9 if (nums.length == 0) { 10 System.out.println("参数空"); 11 return; 12 } 13 int result = nums[0]; 14 // 排序 15 for (int i = 0; i < nums.length; i++) { 16 if (nums[i] > nums[0]) { 17 result = nums[i]; 18 } 19 } 20 System.out.println("最大值是:" + result); 21 } 22 }
1 public class JavaDemo { 2 public static void main(String[] args) { 3 System.out.println(sum(100)); 4 } 5 6 public static int sum(int num) { 7 if (num == 1) { 8 return 1; 9 } 10 return num + sum(num - 1); // 递归调用 11 } 12 } 13 对以上代码进行分析处理: 14 【第1次执行sum()、主方法执行】return 100 + sum(99); 15 【第2次执行sum()、sum()递归调用】return 99 + sum(98); 16 ... ... ... .... 17 【第99次执行sum()、sum()递归调用】return 2 + sum(1); 18 【第100次执行sum()、sum()递归调用】return 1; 19 整体形式为:return 100 + 99 + 98 + .... .... + 2 + 1; 20 21 package com.sujian.method; 22 public class JavaDemo { 23 public static void main(String[] args) { 24 System.out.println(f(5)); 25 } 26 /** 27 * 阶乘递归调用 28 * @param n 29 * @return 30 */ 31 public static int f(int n) { 32 if (n == 1) { 33 return 1; 34 } else { 35 return n * f(n - 1); 36 } 37 } 38 }