静态方法
1. 概念
方法的概念:一系列代码指令的集合,用来实现特定的功能,可以反复调用
方法的定义格式:public static void 方法名(){ // 方法体}
方法的定义位置:与main方法平级
调用方式:在需要调用的位置直接书写方法名称即可
package com.edu.test3; /** * 使用之前所学的内容来实现诗句打印 * * */ public class Test1 { public static void main(String[] args) { System.out.println("床前明月光"); System.out.println("----------"); System.out.println("疑是地上霜"); System.out.println("----------"); System.out.println("举头望明月"); for(int i = 1;i <=10;i++) { System.out.print("-"); } System.out.println(); System.out.println("低头思故乡"); for(int i = 1;i <=10;i++) { System.out.print("-"); } System.out.println(); } }
package com.edu.test3; /** * 方法的概念:一系列代码指令的集合,用来实现特定的功能,可以反复调用 * 方法的定义格式:public static void 方法名(){ // 方法体} * 方法的定义位置:与main方法平级 * 调用方式:在需要调用的位置直接书写方法名称即可 * 使用方法实现诗句之后 横线的打印 * * */ public class Test2 { public static void main(String[] args) { System.out.println("床前明月光"); printSign(); System.out.println("疑是地上霜"); printSign(); System.out.println("举头望明月"); printSign(); System.out.println("低头思故乡"); printSign(); } public static void printSign() { System.out.println("----------"); } }
2. 参数
2.1 单个参数
形参:形式参数,是指我们在定义方法的时候编写的参数
形参规定了参数的
个数
,类型
和顺序
,是指调用者必须遵循这个规定,“形参”等价于“局部变量的声明”实参:实际参数 调用方法的时候传入的参数 必须遵循形参的约定,“实参”等价于“局部变量的赋值”
package com.edu.test4; /** * 使用方法实现打印诗句之后的横线 并且可以让用户指定横线的个数 * */ public class Test1 { public static void main(String[] args) { System.out.println("床前明月光"); printSign(10); // 实参 实际参数 调用方法的时候传入的参数 必须遵循形参的约定 System.out.println("疑是地上霜"); int a = 5; printSign(a); System.out.println("举头望明月"); int b = 6; int c = 3; int count = b + c; printSign(b + c); // 不推荐 因为阅读容易产生歧义 System.out.println("低头思故乡"); int num = 8; printSign(num); } /** * int num 属于形参(形式参数),是指我们在定义方法的时候编写的参数 * 形参规定了参数的个数,类型和顺序,是指调用者必须遵循这个规定 * @param num */ public static void printSign(int num) { for(int i = 1;i <= num;i++) { System.out.print("-"); } System.out.println(); } }
2.2 多个参数
编写方法实现打印诗句之后的符号 可以让让用户指定符号的 种类 和 个数
package com.edu.test5; /** * 编写方法实现打印诗句之后的符号 可以让让用户指定符号的 种类 和 个数 * * */ public class Test1 { public static void main(String[] args) { System.out.println("床前明月光"); printSign(5,"&"); System.out.println("疑是地上霜"); int num = 5; String str = "^"; printSign(num,str); System.out.println("举头望明月"); printSign(8,"$"); System.out.println("低头思故乡"); printSign(9,"#"); } /** * 形参 规定了参数的个数类型顺序 * 实参 必须遵循这个规定 * @param num * @param sign */ public static void printSign(int num,String sign) { for(int i = 1;i <= num;i++) { System.out.print(sign); } System.out.println(); } }
3. return关键字
return关键字表示中断方法并且返回内容
当返回值类型不为void 那么return以后的值必须和返回值类型匹配
package com.edu.test6; /** * 编写方法实现两个数相加的功能 并且返回结果给调用者 * * return关键表示中断方法并且返回内容 * 当返回值类型不为void 那么return以后的值必须和返回值类型匹配 * * */ public class Test1 { public static void add1(int a,int b) { System.out.println(a + b); } public static int add2(int a,int b) { return a + b; // System.out.println(); 不可达代码 因为return将中断方法 并且返回内容 // } public static int add3(int a,int b) { int sum = a + b; return sum; } public static int add4(int a,int b) { return a + b; } public static void main(String[] args) { add1(10,20); int sum = add2(10,20); if(sum % 2 == 0) { System.out.println("偶数"); }else { System.out.println("奇数"); } } }
4. return关键字其他用法
如果在分支结构中书写了return返回值
必须保证每一条分支都有正确的返回值
有返回值的方法 调用者可以直接将方法进行打印 表示输出方法返回值
也可以定义变量将返回值进行接收
package com.edu.test7; /** * 如果在分支结构中书写了return返回值 * 必须保证每一条分支都有正确的返回值 * * 有返回值的方法 调用者可以直接将方法进行打印 表示输出方法返回值 * 也可以定义变量将返回值进行接收 * */ public class Test1 { public static String isEven1(int num) { if(num % 2 == 0) { return "偶数"; }else { return "奇数"; } } public static boolean isEven2(int num) { if(num % 2 == 0) { return true; }else { return false; } } public static void main(String[] args) { String result = isEven1(11); System.out.println(result); System.out.println(isEven1(2)); System.out.println(isEven2(20)); boolean bl1 = isEven2(21); System.out.println(bl1); } }
在返回值类型为void的方法中 也可以只用return关键字
并且return关键字之后不能加任何内容
表示只中断方法
return和break
return表示中断方法,break表示中断循环
package com.edu.test7; /** * 在返回值类型为void的方法中 也可以只用return关键字 * 并且return关键字之后不能加任何内容 * 表示只中断方法 * * return和break * return表示中断方法,break表示中断循环 * */ public class Test2 { public static void printNumber() { for (int i = 0; i < 20; i++) { if(i == 10) { return;// break??? } System.out.println(i); } System.out.println("printNumber()方法执行完毕"); } public static void main(String[] args) { printNumber(); } }
5. 多级调用
方法与方法之间可以互相直接调用
return表示中断方法,break表示中断循环
package com.edu.test7; /** * 在返回值类型为void的方法中 也可以只用return关键字 * 并且return关键字之后不能加任何内容 * 表示只中断方法 * * return和break * return表示中断方法,break表示中断循环 * */ public class Test2 { public static void printNumber() { for (int i = 0; i < 20; i++) { if(i == 10) { return;// break??? } System.out.println(i); } System.out.println("printNumber()方法执行完毕"); } public static void main(String[] args) { printNumber(); } }