方法的定义
方法是一段可以被重复调用的代码块
public static 返回值类型 方法名称(参数列表){
[return [返回值] ;]
}
对于返回值类型有两种:
- void 表示此方法没有返回值;
- 数据类型 基本类型和引用类型
public class Demo1 {
public static void main(String [] args){
printInfo();
}
public static void printInfo(){
System.out.println("*Hello Weber.pub*");
}
}
方法名称的命名要求:第一个单词的首字母小写,之后每个单词的首字母大写。例如:printInfo()。
例子:打印三角形
public static void main(String[] args) {
printInfo(6);
printInfo(3);
}
public static void printInfo(int line){
for(int x = 0;x < line;x++){
for(int y = 0;y < line-x;y++){
System.out.print(" ");
}
for(int y = 0;y <= x;y++){
System.out.print("*");
}
System.out.println();
}
}
方法负责完成某一特定功能,而后用户就可以根据方法定义的格式进行方法的调用。
有返回值的方法
定义一个方法,用于判断一个数字是奇数偶数。
public class Demo3 {
public static void main(String[] args) {
if(isType(3)){
System.out.println("奇数");
}else{
System.err.println("偶数");
}
}
public static boolean isType(int num){
return num%2 == 0;
}
}
如果一个方法是使用了 void 声明,理论上此方法不能返回数据,但是这个方法可以使用 return 方法来结束调用。
- break 表示的是退出整个循环
- continue 表示的是退出一次循环
方法的重载
方法的重载是指 方法名相同,参数的类型或者个数不同,调用的时候将会按照传递的参数类型或者参数个数来完成不同的方法体的执行。
public class Demo4 {
public static void main(String[] args) {
System.out.println(add(10,20));
System.out.println(add(10,20,30));
System.out.println(add(1.2,3.4));
}
public static int add(int num1,int num2){
return num1 + num2;
}
public static int add(int num1,int num2,int num3){
return num1 + num2 + num3;
}
public static double add(double num1,double num2){
return num1 + num2;
}
}
自动根据参数的类型和个数的不同调用不同的方法体进行执行。如果仅方法的返回值不一样之外,方法的参数类型和参数个数完全一样,这不算方法重载。
提醒
方法重载的时候并没有规定出返回值类型必须统一,即:重载的方法返回值类型可以不一致,但是冲开发者的角度而言,建议所有方法重载之后返回值类型统一,但是这个规则不是死的,至少在我们自己编写的代码之中可以满足。
递归调用
递归操作是方法自己调用自己的形式,但是在进行递归操作的时候必须满足如下的条件:
- 必须要有结束条件
- 每次调用的时候都需要改变传递的参数
例子:递归求1-100的和
public class Demo5 {
public static void main(String[] args) {
System.out.println(add(100));
}
public static int add(int num){
if(num == 1){
return 1;
}
return num + add(num - 1);
}
}