方法
一、概述
方法是指人们在实践过程中为达到一定目的和效果所采取的办法、手段和解决方案。
所谓方法,就是解决一类问题的代码的有序组合,是一个功能模块。编程语言中的方法是组合在一起来执行操作语句的集合。例如,System.out.println 方法,该系统实际上是为了在控制台上输出的消息执行多条语句。
可以将方法理解为“CD 机”即放入不同的碟片出现不同的歌曲;或“榨汁机”即放入不同的水果榨出不同的果汁;或“手机”与卡。
方法就是 给能够解决问题的多行代码取了一个名字的功能块 ,方便我们多次使用。
方法的作用:
1)、main 方法
2)、重复执行的代码块 命名,方便重复使用
3)、方便自上而下分解问题
4)、方便维护代码
二、定义
1、声明格式
1)、访问修饰符:方法允许被访问的权限范围;
2)、返回值类型:如果方法不返回任何值,则指定为 void;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return语句返回值;
3)、方法名:定义方法的名字,必须使用合法的标识符,见名知意。
4)、形参列表:参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开。
2.现有格式
注意: 方法只能定义在类中;同时方法不能嵌套;方法编写位置与使用无关。
3.分类
1)、有返回值类型的方法
修饰符 返回值类型 方法名([参数列表]){
方法体;
return 返回值;
}
1.1修饰符 : public static(目前基础修饰符)
1.2返回值类型 : 方法运行后,结果的数据类型
基本数据类型(四类八种)|引用数据类型(类 数组 接口)
1.3方法名:方法的名字 调用方法必须使用方法名
严格遵循标识符的命名规则|规范 第一个单词首字母小写,第二个单词开始,首字母大写
1.4 () 参数列表 可以有可以没有–在方法运行过程中,有没有未知的变量
如果有参数: (数据类型 参数名,数据类型 参数名…)–局部变量的声明,只在当前方法中有效
1.5 {}:方法体,具有特殊功能的代码块
1.6 return: 结束方法
把方法的运算结果返回给调用者 结果的数据类型必须与返回值类型一致
1.7 调用: 执行方法中的代码 方法名字([参数列表]);
有返回值类型的方法的调用:
1)直接调用 方法名字([参数列表]); ---没有什么意义
2)赋值调用 数据类型 变量名 = 方法名字([参数列表]);
3)输出调用 System.out.println(方法名字([参数列表]));
2.没有返回值类型的方法
修饰符 void 方法名([参数列表]){
方法体语句;
return;
}
2.1 void:没有返回值类型的方法
2.2 return:结束方法
2.3没有返回值类型的方法的调用:
直接调用 方法名字([参数列表]);
三、方法中的参数
1. 形式参数(形参) : 定义方法的时候()中的参数
2. 实际参数(实参) : 调用方法的时候()中的参数
实参就是给形参赋值的
一 一对应(个数,类型,位置)
四、 return关键字:
1.return的作用:
有返回值类型的方法:1.提前结束方法 2.带出返回值
没有返回值类型的方法:1.提前结束方法
2.一个方法中只能存在一个return
3.一个一定会执行的return后不能出现语句,编译不通过,这是不可达语句
4.不可达语句:
1)return 后面的语句
2)break后面的语句
3)continue后面
4)while(false){
5)死循环之后的语句
五、兼容类型:
1)形参数据类型>=实参数据类型
实参数据类型不能大于形参数据类型
2)接收类型>=返回值类型>=return后面数据的类型
编译的时候会发生语法检查,如果语法有误会报错,如果没有,编译成功之后,编译器会自动默认把byte,short类型的变量提升为int类型
六、方法的重载
1. 定义:
在同一个类中,多个方法拥有相同的方法名字,不同的参数列表
2. 要求:
- 同一个类中
2)多个方法,方法名字相同
3)参数列表不同|方法签名不同
方法的签名:方法的唯一标识(方法名+参数列表)
参数的数据的类型不同
参数的个数不同
参数的顺序不同
3.注意要点:
方法的重载和方法的修饰符无关
方法的重载和有无返回值类型无关
方法的重载和返回值类型无关
方法的重载和参数名字无关
4.方法的重载特性中根据实参判断调用的是哪一个重载方法
方法的重载是一个类中多态的一种体现
七、递归
自己调用自己
递归头:停止自己调用自己的条件
递归体:自己调用自己
临界条件:递归头 停止自己调用自己的条件
递归前进段:自己调用自己的过程
递归后退段:把结果返回给上一层
缺点:非常占用内存资源的过程->不推荐使用