您的位置:首页 > 教育 > 培训 > 海口网页建站模板_福州百度关键词优化_百度搜索资源平台token_深圳最新疫情

海口网页建站模板_福州百度关键词优化_百度搜索资源平台token_深圳最新疫情

2025/4/29 10:38:51 来源:https://blog.csdn.net/2401_89167985/article/details/147579139  浏览:    关键词:海口网页建站模板_福州百度关键词优化_百度搜索资源平台token_深圳最新疫情
海口网页建站模板_福州百度关键词优化_百度搜索资源平台token_深圳最新疫情

1.方法的概念&使用

1.1 什么是方法?

Java中的方法类似于C语言中的函数,是用于执行特定任务的代码块。
那么用方法组织起来的代码块和普通的代码相比有什么优势呢?

1.当代码规模较大且应用场景较为复杂时,方法能够模块化地组织代码,让代码更清晰,可读性更高
2.让代码能够被重复利用(方法的多次调用)
3.基于现有的方法进行开发,减少开发成本

不使用方法

    public static void main(String[] args) {int year1 = 1900;int year2 = 1901;//判断year1是否为闰年if (year1 % 4 == 0 && year1 % 100 != 0 || year1 % 400 == 0){System.out.println(year1 + "是闰年");}else {System.out.println(year1 + "不是闰年");}//判断year2是否为闰年if (year2 % 4 == 0 && year2 % 100 != 0 || year2 % 400 == 0){System.out.println(year2 + "是闰年");}else {System.out.println(year2 + "不是闰年");}}

使用方法

    public static void isLeapYear(int year){if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){System.out.println(year + "是闰年");}else {System.out.println(year + "不是闰年");}}public static void main(String[] args) {int year1 = 1900;int year2 = 1901;isLeapYear(year1);isLeapYear(year2);}

1.2 方法定义

语法格式:

修饰符 返回值 方法名(形参类型 形参1,形参类型 形参2,…) {
//方法体
return(返回值)
}

示例一:判断闰年

    public static void isLeapYear(int year){if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){System.out.println(year + "是闰年");}else {System.out.println(year + "不是闰年");}}

示例二:判断最大值

    public static int max(int x,int y){return x > y ? x : y;}

方法组成部分介绍:
1.public和static都是方法的修饰符,决定了方法的性质,但不影响方法本身的执行逻辑,修饰符在后面类和对象的博文中再详细介绍,目前定义方法统一使用public+static
2.修饰符后面的void表示无返回值,意味着可以没有return;int表示该方法必须返回一个int类型的数据。当然,方法的返回值也可以是其他基本数据类型,引用类型,自定义类型
3.方法名:用于标识方法的名称,一般的命名规范采用小驼峰(第一个单词首字母小写,后面单词的首字母大写)
4.参数列表:方法可以接受任意数量/类型参数,参数=类型+名称,参数之间使用逗号隔开。上面的示例中,isLeapYear(int year)表示接受一个整形参数;max(int x,int y)表示接受两个整形参数
5.方法体:花括号内的代码块,它是方法的具体实现

1.3 方法调用

在这里插入图片描述

注意:

  • 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行
  • 调用方法的时候,需要使用方法名+参数列表的形式进行调用
  • 如果有返回值,需要接收返回值结果
  • Java中的方法不需要进行声明,定义完成后可直接调用

1.4 实参和形参的关系

形参(形式参数)
定义:定义方法时参数列表中的变量,用于接收调用者传递过来的值
作用域:仅限于方法体内部,生命周期和方法一致

实参(实际参数)
定义:调用方法时传递给方法的值或变量
作用域:这与实参所在的域和性质有关

传递方法:
1.按值传递:这意味着传递的值是实参的副本,接收数据的形参在内存中拥有独立的空间。对形参的改变不会映射到实参上面
在这里插入图片描述
在这里插入图片描述
由此可见,调用swap方法后,swap方法内部的a和b变量已经完成了交换,但是main方法中实际的参数a和b没有改变
2.引用类型的传递:1对于引用类型(如数组),传递的是引用的副本。这意味着实参和形参都指向同一个对象,因此通过形参来修改对象的内部状态会影响实参
在这里插入图片描述

2.方法重载

2.1 意义

以上面的add方法为例,完成两个整型变量的相加没问题,但是如果想完成两个float数的相加,就会报错在这里插入图片描述
解决办法一:重新定义一个方法用于完成两个float数的相加
在这里插入图片描述
但是,如果要完成两个double数的相加,又要定义一个新的方法。这样就会导致要定义许多不同方法名的方法,比较麻烦。所以,Java中就提出了一个新的概念,方法重载
2.方法重载
在这里插入图片描述
在同一作用域中,可以存在方法名相同的方法,但参数列表一定不同,编译器通过方法签名来区分这些方法

注意:

  • 方法名必须相同
  • 参数列表必须不同(参数类型/参数顺序/参数个数,至少有一项不同,和参数名无关)
  • 与返回值是否相同无关

2.2 方法签名

在同一个作用域中,不能定义两个相同名称的标识符。比如,在同一个main方法中无法定义两个名字一样的变量,因为对于变量来说,变量名就是标识符。但是,上面介绍到了方法的重载,这意味着在同一个作用域/类(类在后面的博文中介绍)可以存在两个方法名相同的方法,这是因为方法的标识符并不是方法名,而是方法签名
方法签名:经过编译器编译后的方法的最终名称。具体组成=方法全路径名+参数列表(只包含参数类型,不包含参数名称)+返回值类型

3.方法递归

概念:方法在执行过程中调用自身
递归的必要条件:

  • 将原问题划分成其⼦问题,注意:子问题必须要与原问题的解法相同
  • 要有递归出口

示例:求n的阶乘

    public static int factor(int n){if(n == 1){return 1;}return factor(n - 1) * n;}public static void main(String[] args) {System.out.println(factor(5));}

递归过程:
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com