*方法* :
封装实现功能的代码段
特点 :
方法不能嵌套,所有的方法只能定义在成员位置
方法不调用不执行
优点 :
1.提前代码复用性
2.提高代码的安全性
方法定义 :
有返回值类型的方法
修饰符 返回值类型 方法名(参数列表){
实现功能的代码段;
return 返回值;
}
修饰符 : 访问权限修饰符
目前先定义为public static
返回值类型 : 功能执行完毕之后,是否需要得到一个结果(值),如果需要定义成有返回值类型的方法,如果不需要定义成没有返回值类型的方法
定义为返回的结果的数据类型
可以为基本数据可以为引用数据类型
方法名 : 方法的名字
严格遵循标识符的命名规则与规范
(参数列表) : 可以定义参数可以不定义参数
分析 : 方法在定义过程中|执行过程中,是否存在未知的,可能会改变的,不确定的数据,如果存在,定义在方法的参数列表上
定义 : 数据类型 参数名,数据类型 参数名....-->相当于局部变量的声明(方法中)
{} : 方法体
实现功能的代码段
return :在一个有返回值类型的方法中,必须存在return,并且return关键字的后面必须存在返回值
1)提前结束方法 2)带出返回值
方法的调用 : 执行方法中的代码
普通调用 : 方法名(实参)
赋值调用 : 数据类型 变量名 = 方法名(实参);
输出调用 : System.out.println(方法名(实参));
没有返回值类型的方法
修饰符 void 方法名(参数列表){
方法体;
}
void : 标识没有返回值类型的方法
return : 可以存在return,但是只能使用return,作用提前结束方法,不能带出返回值
方法调用 :
方法名(实参)
参数 :
形式参数(形参) : 定义方法中()中的参数
相当于局部变量的声明
实际参数(实参) : 调用方法时()中的参数
相当于局部变量的赋值
要求一一对应(个数,类型,顺序)
定义方法之前分析步骤 :
1.明确需求
2.返回值
3.参数
4.方法名
思考角度
编写一个方法时,请思考这四个方面:
1)、确定方法的功能
2)、确定方法的名称
3)、此方法能否独立运行,不能独立,需要外界数据参与运算,确定形参。
4)、此方法完成后,其结果是否直接影响调用处的后续操作,如果影响,确定返回类型,不影响则为void
声明格式
[修饰符] 方法返回值类型 方法名(形参列表) {
方法体;
return 返回值;
return :
有返回值类型方法中 : 必须存在return
1.提前结束方法 2.带出返回值,返回到方法的调用处
没有返回值类型的方法中 : 可以根据需求定义return
1.提前结束方法
不可达语句 :
能够执行到的return后面的语句
在break后面的语句
在continue后面的语句
死循环后面的语句
while(false){......}
兼容类型 :
参数类型兼容 : 形参类型 > = 实参的类型
返回值类型 :
return后面值的类型 <= 方法的返回值类型 <= 接收返回值的变量的类型
}
访问修饰符:方法允许被访问的权限范围;
返回值类型:如果方法不返回任何值,则指定为void;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return语句返回值;
方法名:定义方法的名字,必须使用合法的标识符,见名知意。
形参列表:参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开。
调用:
方法定义完成后,若要使用,必须调用它。在调用时,调用的控制权由方法调用处转移到方法中,方法
遇到 return 或者 }结束时,将调用权交还给调用处。也就是”从哪里来到哪里去”的套路。
方法名([实参列表])
注意:
方法不调用不执行
存在返回值,接收变量或匿名接收(输出或者调用)
定义方法指定形参,调用方法指定实参
方法调用是要求形参实参要求个数相同,类型匹配
方法重载: OverLoad 实现重载的3个条件 : 1.一个类中的多个方法 2.方法名相同 3.方法签名不同|方法参数列表不同 参数个数不同 参数类型不同 不同类型参数顺序不同 方法签名 : 方法的唯一标识 方法名+ 参数列表==>方法签名 重载方法的调用 : 由实现决定 问 : 方法的重载与修饰符是否有关? 无关 方法的重载与返回值是否有关? 无关 方法的重载与参数名是否有关? 无关 注意 : 类中的方法是封装的一种体现 方法的重载是多态的一种体现
递归 : 方法自己调用自己 --> 了解 优点 : 简化代码结构 缺点 : 容易造成内存的溢出 组成 : 基线条件|递归头 : 停止自己调用自己 递归条件|递归体 : 自己调用自己 递归前进段 : 不停的自己调用自己 临界条件 : 停止自己调用自己的条件 递归后退段 : 从临界条件开始,不停的将结果返回给上一层