方法(method)

本文详细介绍了Java中的方法,包括方法的概念和用处,方法的定义、语法机制,方法的调用,方法重载的原理和应用场景,以及方法的递归及其注意事项。通过理解这些内容,开发者可以更好地利用方法提高代码复用性和程序的可维护性。
摘要由CSDN通过智能技术生成

1、 方法的概念以及用处

​ 方法(method):是可以完成某个特定的并且可以重复利用的代码片段

​ 在C语言中,方法被称为"函数"。在Java中不叫函数,叫做"方法"。

​ 假设在以后的开发中,某个功能是可以独立抽取出来的,可以定义为方法,这样只要需要这个功能,就可以直接调用这个方法,而不需要重复编写业务逻辑代码。提高了代码的复用性。

2、 方法的定义以及语法机制

​ [修饰符列表] 返回值类型 方法名(形式参数列表){

​ 方法体;

​ }

​ 注意:[]括号中的内容不是必选项,是可选的。方法体由Java语句构成。

​ 2.1、 关于修饰符列表

​ 目前来说,写成public static 即可

​ 2.2、 关于返回值类型

​ 第一、 返回值类型可以是任何类型,只要是Java中合法的数据类型就行,数据类型包括基本数据类型和引用数据类型;

​ 第二、 什么是返回值?

​ 返回值一般指的是一个方法执行结束后的结果。结果通常是一个数据,所以被称为"值",而且还叫"返回值"。

​ 方法执行结束之后的返回值实际上是给调用者了。谁调用就返回给谁。

​ 第三、 当一个方法执行结束不返回任何返回值时,返回值类型也不能为空白,必须写上void关键字。void表示该方法执行结束后不返回任何返回值。而如果返回值类型是void,那么方法体中不能有"return 值;"这样的语句,可以有"return ;"这样的语句,用来终止当前方法。

​ 第四、 如果返回值类型"不是void",那么在方法体执行结束的时候必须使用"return 值;"这样的语句来完成"值"的返回,如果没有"return 值;"这样的语句,那么编译器会报错。也就是,除了void之外,剩下的都必须有"return 值;"这样的语句。而且return的值类型要和返回值类型一致。

​ 第五、 只要有"return" 关键字的语句执行,当前方法必然结束。return只要执行,当前所在的办法结束。注:不是整个程序结束。

​ 2.3、 方法名

​ 方法名要见名知意。(驼峰命名法)

​ 方法名需要是合法的标识符,且第一个单词首字母小写,之后单词首字母大写。

​ 2.4、 形式参数列表(简称:形参)

​ 形式参数列表中的每一个参数都是"局部变量",方法结束后内存释放。形参的个数是0~N个。

​ 形参有多个的话使用"逗号 , "隔开。(英文的 ,)

​ 形参的数据类型起决定性作用,形参对应的变量名是随意的。

3、 方法的调用

​ 3.1、 语法

​ 类名.方法名(实际参数列表);

​ 实参和形参的类型必须一一对应,另外个数也要一一对应。

​ 3.2、 在方法调用的时候,如果两个方法在同一个类中,那么"类名."可以省略。如果不在同一个类中,“类名.” 不能省略,必须存在。

​ 3.3、 调用方法不一定写到main方法中,其他方法也都可以。

​ 3.4、 break; 语句和 return ;语句的区别

​ break ; 用来终止switch和离他最近的循环。

​ return ; 用来终止离他最近的一个方法。

​ 二者不在一个级别。

4、 方法重载(overload)

​ 4.1、 为什么要使用方法重载?

​ 4.1.1、 不使用方法重载的缺点:

​ 缺点1: 代码不美观。(不是最重要的)

​ 缺点2: 程序员需要记更多的方法名。

​ 4.1.2、 使用方法重载的优点:

​ 优点1: 代码整齐美观。

​ 优点2: “功能相似"的,可以让"方法名相同”,更易于以后的代码编写。

​ 4.2、 什么时候需要考虑使用方法重载?

​ 在同一个类中,如果"功能1" 和 “功能2” 他们的功能是相似的,那么可以考虑将他们的方法名一致,这样代码既美观,又便于后期的代码编写(容易记忆,方便使用)。

​ 注意: 方法重载overload不能随便使用,如果两个功能压根不想干,不相似,根本没关系,此时两个方法使用重载机制的话,会导致编码更麻烦。无法进行方法功能的区分。

​ 4.3、 什么时候代码会发生方法重载?

​ 条件1: 在同一个类中

​ 条件2: 方法名相同

​ 条件3: 参数列表不同 {

​ 参数的个数不同算不同

​ 参数的类型不同算不同

​ 参数的顺序不同算不同 }

​ 只要同时满足了以上3个条件,那么我们可以认定方法和方法之间发生了重载机制。

​ 注意: 不管代码怎么写,最终一定能让Java编译器很好的区分开这两个方法。

​ 4.4、 方法重载和方法的返回值类型无关。

​ 方法重载和方法的修饰符列表无关。

5、 方法的递归

​ 5.1、 什么是方法递归?

​ 方法自己调用自己,就是方法递归。

​ 5.2、 使用递归时,必须添加结束条件,没有结束条件,会发生栈内存溢出错误。 (StackOverflowError)

​ 原因: 一直压栈,没有弹栈,栈内存不够用。

​ 5.3、 能够使用循环代替递归的尽量使用循环,循环的执行耗费内存少一些,递归耗费内存相对多一些,另外递归使用不当很容易内存溢出,JVM停止工作。当然,只有极少数情况下,只能用递归,其他代码解决不了问题。

​ 5.4、 当递归有结束条件,并且结束条件合法的时候,也有可能内存溢出。可能是递归的太深了。

​ 5.5、 在实际的开发中遇到递归导致的栈内存溢出错误时怎么办?

​ 第一步: 先检查结束条件是否正确。

​ 第二步: 如果正确,可以调整JVM的栈内存大小。(java -X)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值