> 文档中心 > Java基础-方法(四)

Java基础-方法(四)

文章目录

  • 一.方法的概述
    • 1.方法的概述
    • 2.方法的定义
    • 3.方法的内存理解
    • 4.方法的调用
    • 5.方法的重载
  • 二、拓展
    • 1.命令行传参
    • 2.可变参数(不定项参数)
    • 3.递归(递归思想)

一.方法的概述

1.方法的概述

1、具有某种特定功能的代码段
2、某段代码经常使用,所以使用大括号,将这段代码包起来,起个名字。以后就使用这个名字来代替这段代码。
3、好处:
(1)提高了代码的复用性
(2)提高了代码的封装性
(3)简化了软件设计的思维难度
在这里插入图片描述

public class Daniel_Demo1 {    public static void main(String[] args) { //实际参数,实际调用传递给他的参数 int sum = add(1, 2); System.out.println(sum);    }    //加法    //形式参数,用来定义作用的    public static int add(int a,int b){ return a+b;    }}

运行结果为:
Java基础-方法(四)

2.方法的定义

在这里插入图片描述

3.方法的内存理解

在这里插入图片描述

class Demo_FangFa {public static void main(String[] args) {int m = 10;int n = 10;int sum = getSum(m,n);System.out.println(sum);}public static int getSum(int a,int b){int sum = a + b;return sum;}/*public static 盘子 炒菜(油 y,蔬菜 z,老干妈 m){放油 y放菜 z老干妈 mreturn 成品;}*/}
public class Daniel_Demo2 {    public static void main(String[] args) { int max = max(20, 30); System.out.println(max);    }    public static int max(int num1,int num2){ int result = 0; if(num1 == num2){     System.out.println("num1 = num2");     return 0; } if(num1 > num2){     result =num1; }else{     result =num2; } return result;    }}

运行结果为:
Java基础-方法(四)
方法的注意事项:

1、方法定义:
1、方法不能嵌套定义
2、方法的先后没有区别
3、方法的定义是平级关系
4、方法可以嵌套调用,甚至可以自己调用自己
2、参数列表:
(1)形式参数:在定义方法时使用,需要加上数据类型的参数,也就是对于变量进行声明。各个变量之间,使用逗号分隔。
(2)实际参数:在方法调用时使用,不能加上数据类型的参数,也就是对于变量进行赋值。各个实际参数之间,也使用逗号分隔。顺序必须和定义的方法的形式参数的顺序一致。
3、return语句:
(1)语句表达方法结束了;表示方法的产出内容。
(2)如果方法没有具体的返回内容,可以写成return; 此时的return语句可以省略。返回值类型必须写成void。
(3)如果方法有具体的返回内容,那么return后面就需要加上返回的那个数据。返回值类型必须和return语句后面的数据的数据类型一致。
(4)return语句返回数据,返回给调用者。谁来调用当前方法,当前方法就将数据返回给谁。

4.方法的调用

在这里插入图片描述
System.out.println(“Hello,Daniel!”);

拓展了解(值传递和引用传递)

5.方法的重载

在这里插入图片描述
1、重载:Overload
2、方法的重载:
在同一个类中,方法名相同,参数列表不同,与返回值类型无关
3、说明:
(1)不同无关类中,不可能发生方法的重载的。
(2)方法名称相同:一模一样。
(3)参数列表不同:参数类型不同;参数个数不同;参数类型的顺序不同;
参数的名称不同(不算)
(4)与返回值类型无关。方法是否是重载,与返回值类型没有关系。
如果方法的名称和参数列表都一样,即使返回值类型不同,也不算重载,属于方法 的重复定义。
4、方法重载的好处:
(1)没有重载的时候,相同逻辑相同功能的代码,需要定义很多个方法名称。调用者在记忆方法名称的时候,就有很大的负担。
(2)有重载之后,相同功能逻辑的方法,只需要记忆一个名字。
5、当前学习过的常见重载:
println方法,任意类型的数据,都可以放到这个方法中打印
在System.out类型中,将各种数据类型的打印方法,都定义出来了,都起了println方法的名称

public class Daniel_Demo3 {    public static void main(String[] args) { //方法名相同,参数或参数类型不同 double sum = getSum(20, 30, 40); System.out.println(sum);    }    public static int getSum(int a,int b){ return a+b;    }    public static double getSum(double c,double d,double e){ return  c+d+e;    }}

运行结果为:
Java基础-方法(四)

二、拓展

1.命令行传参

有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。

public class Daniel_Demo4 {    //args.length 数组长度    public static void main(String[] args) { for (int i = 0; i < args.length; i++) {     System.out.println(args[i]); }    }}

结果如下操作显示:
在这里插入图片描述

2.可变参数(不定项参数)

在这里插入图片描述

3.递归(递归思想)

在这里插入图片描述

public class DiGui_Daniel {    //递归就是学习一个递归思想,复杂业务最好不要用递归,    // 因为自己调用自己太累了    //说到Java也就是一个栈机制    public static void main(String[] args) { System.out.println(f(3));    }    public static int  f(int n){ if(n == 1){     return 1; }else{     return n*f(n-1); }    }}

运行结果为:
Java基础-方法(四)
分析上述代码
在这里插入图片描述

墨言文学成语大全