Java中方法的定义与使用
在程序书写过程中,以指定方法名书写并提供用于完成指定功能的数据、参数的代码块称之为方法
按照特定语法定义书写的包含一条或多条执行语句的代码块
在其他语言中也称之为函数、过程
方法由五部分组成:
Public static void main(String [] args){代码}
修饰符:用于修饰方法使方法具有某些”权限”
返回值类型:方法运行结束后返回的java中的数据类型 如果没有用void代替
(若方法定义时定义了非void 那么在代码块中必须使用return返回指定数据类型的数据)
方法名:自己定义的标识符 用于标识一个方法 通过方法名进行方法的查询与调用
参数列表:在方法调用时动态输入的数据(可以由0~无穷个变量组成)
代码块:方法执行过程中具体执行的代码
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}
按照参数个数0或者其他个 有无返回值 方法分为四类:
无返回值 无参数的方法
用于那些固定功能。代码固定的方法定义(不建议定义此方法,不利于代码复用)
无返回值 有参数的方法
用于动态执行某些可以直接输出结果并展示的方法(可以定义但尽量减少,对于数据的使用不方便)
有返回值 无参数的方法
用于返回固定的数据(使用较少,与直接定义变量使用没有太大差别)
有返回值 有参数的方法
可以应用于大多数的方法定义(使用最多 最完善功能点全)
方法的定义根据实际需求进行动态的选择相应相对完善的方法
方法调用注意事项
方法不调用不执行
方法与方法是平级关系,不能嵌套定义
方法定义的时候参数之间用逗号隔开
方法调用的时候不用在传递数据类型
如果方法有明确的返回值,一定要有return带回一个值
方法的好处
1、提高代码复用性、减少代码的冗余
(同一段代码可以通过方法名多次调用,减少在同一个作用域中重复代码出现的次数)
2、便于代码的修改与维护、添加
(当代码出现问题时根据方法的功能定位出现错误的方法 对出现错误的方法进行直接修改)
在进行方法定义时一定对定义方法的功能进行细致划分,每个方法只执行本身一个功能不要出现一个方法处理多个功能
方法的返回值由相关参数进行运算得出的 但是返回值的数据类型不一定与参数一致
Java中方法定义与调用中的形参与实参
?形参和实参的概念
?形参:全称为“形式参数”,是在定义方法名和方法体的时候使用的参数,用于接收调用该方法时传入的实际值(参数列表声明的变量)
?实参:全称为“实际参数”,是在调用方法时传递给该方法的实际值(具体的值)
?注意
?调用方法时给定的实际参数类型要与定义方法时形式参数类型相同,而且顺序也要相同
// 方法调用的过程
// 首先根据方法名、参数列表 定位找到要执行的方法
// 将我们书写调用方法时的实参传递给形参
// 将相应位置的值传递赋值给相应位置的变量
// 相当于在方法声明期间 声明多个变量但不进行赋值操作
// 当方法被调用时 需按照声明的变量顺序为变量赋值(若数据类型不匹配 方法不会执行)
方法的重载
方法在相同作用域中可以重名吗?
可以,但是不允许完全相同的两个方法同时存在
方法调用是由jvm执行的将指定方法中代码块进行执行
Jvm虚拟机代调用方法时根据调用的方法名与参数列表动态觉定调用哪一个方法
方法定义过程中按照指定要求进行定义的两个同名方法称之为发生了方法的重载
在同一个类中,方法名相同,参数列表不同,那么我们称之为发生了方法的重载,或两个方法互为重载
对于方法的重载参数列表不同
1、参数个数不同
2、参数个数相同、数据类型不同
3、参数个数相同(两个以上)、数据类型相同(两个以上)、顺序不同
方法重载与参数名(形参名)没有关系
虚拟机选择要执行的相应方法流程
1、根据调用的方法名找到方法若指定方法只存在一个 进行执行将参数传入(可进行自动类型转换)
2、若方法存在多个 使用参数列表每个参数的数据类型与顺序进行匹配 若实在找不到 继续查找是否存在通过参数自动类型转换后匹配的方法 进行调用
3、最终根据方法名 与参数列表中参数的数据类型、顺序获得指定方法并赋值执行