java方法是语言的集合,他们是为了实现某一个功能
- 方法是解决一类问题的有序步骤的组合
- 方法的代码存在类中
- 方法被该类或该类的对象所调用使用
设计方法的原则
方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样有利于我们后期的扩展
方法的命名
小驼峰命名法,方法必须做到见名知意
方法的定义
在java中方法又被称为函数,是一段用来完成一个特定功能的代码片段,一般来讲定义一个方法包含了以下的语法结构
方法包含一个方法头和一个方法体
[静态修饰符] <权限修饰符> <返回值类型> 方法名 (参数列表){
方法体;
...
return 返回值;
}
方法头
- 修饰符:一个方法可以写有多个修饰符,修饰符的作用是告诉编译器如何调用该方法,以及定义了该方法的访问方式
- 返回值类型:方法可能会有返回值。这个字段用来告诉我们方法的返回值是什么类型,若是这个方法没有返回值则使用void
- 方法名:调用方法所使用的关键字,注意方法的命名规范
- 参数列表:一个方法可以有零到多个参数。调用此方法的时候,规定了需要传什么样的值进方法里,传入的值需要按照定义方法时参数列表的类型、顺序、数量传值。这里有两个概念形式参数和实际参数
参数列表
形式参数
形式参数又被称之为形参,指的是方法中接受外部传进来的数据的变量
实际参数
实际参数又被称为实参,指的是调用此方法时向方法内传入的数据
方法体
实现功能的代码块
- 方法中若是返回值不为void的时候一定要有return语句
- 方法在执行到return语句的时候会结束该方法
- 一个方法中可以写多个return,但是这些return必须是不同的执行分支
- 若是方法有返回值可以选择是否用一个变量来接收该方法的返回值,若是方法没有返回值一定不能有变量来接收返回值
- 方法中的一个执行分支中,return必须放在最后一句,否则会报错。因为后面的语句不会被执行到java会判定他们是无用代码
静态方法
我们在使用普通方法的时候需要先实例化一个对象,通过这个对象.方法();
来调用这个方法。而静态方法不需要实例化一个对象就可以通过类名.方法();
来直接对方法进行调用
方法的重载
方法的重载指的是方法的多重载入。同一个方法名的方法可以进行多重载入使用
方法重载的规则
- 方法名必须相同
- 参数列表必须不同(个数不同/类型不同/参数的排列顺序不同)
- 方法的返回值或修饰符相不相同不影响方法的重载
- 程序在调用方法的时候会先找方法名,然后去匹配参数的情况,找到最终具体的方法来进行调用
方法的递归
- 使用方法的递归可以帮助编程者解决许多复杂的问题,让代码变得简介
- 简单的说就是方法调用本身。在方法A中又调用了方法A,但是每次调用传入的参数不同
- 方法的递归,必须要指向一个最终的结束条件,逐渐向终止条件逼近,然后再一层一层返回操作结果。如果不设置终止条件的话将会进入死循环,程序将会崩掉,错误码:【栈溢出】
- 不建议递归的深度太深,太深的话反而会降低性能,因为每调用一次方法就会占用一部分资源,会导致后续的计算越来越慢。若是计算基数特别大的时候,不建议使用递归来进行运算
//阶乘问题 1 * 2 * 3 * 4 * 5 ...... * n
public static void main(String[] args) {
int num = fun(5); System.out.println(num);
}
public static int fun(int n){
if(n == 1){
return 1;
}else{
return n * fun(n-1);
}
}