第三章 方法
方法就是method,实际上就是一块代码,
方法可以有参数,可以有返回值,也可以被调用。
方法就是一种代码复用的方式。
用尽量少的代码,完成指定的功能!!!(写的多,容易错的多。)
1. 方法声明
方法是类的重要的组成部分(方法要写在类里面)。方法通常是一些代码的集合,用于完成指定的功能。
方法可以实现代码的复用。
1.1声明语法
语法:
main方法,是Java程序执行的入口方法。
比如:public static void main(String[] args){
}
public static是修饰符,限定方法的使用范围和使用方式
void是返回值的类型,void代表的是没有返回值
main代表类的名字,在入口函数中类的名字只能是main
String[] args 代表参数列表
1.2 修饰符
用来修饰方法的,限定方法的使用范围和使用方式。
权限修饰符:public(公共的),protected,(保护的,默认的:啥也不写),private(私有的)。
限定方法使用方式的,如: static(静态的),final(最终的–>不能被重写的),abstract(抽象的)。
1.3 返回值类型
限定方法在执行结束时,向方法的调用者返回的结果;这个结果的数据类型就是返回值类型。
返回值类型可以是:
1) void:没有返回值。
2) 8种基本数据类型
方法的返回值必须是指定类型的
只要可以自动转换就可以
3) 3种引用类型
类
数组
接口
当方法明确了返回值类型,必须在方法的任意一个出口,使用return返回一个相应类型的值。
如果方法不需要返回值,设置void,依然可以在方法内部使用return,但是return 不能跟任何的数据,即在方法中可以使用return结束方法。
比如:
上面的方法明确了返回值类型为int,必须在方法的任意一个出口,使用return返回一个相应类型的值。即 if 出口和 else 出口都有return 的对应的类型,这里使用的是能自动转换的类型,也是可以的!
无参方法如下所示:
上述方法是无参方法且返回是void,则return;即可
1.4 参数列表
方法的参数列表是指在调用方法时给方法传递的数据。即方法在调用时可以传递参数,作为方法处理的输入数据。
1)方法可以没有参数列表,无参方法。
2)方法的参数列表可以同时传递多个参数,这些参数需要指定数据类型,多个参数之间使用,进行分隔。
3)方法的参数需要指定数据类型
4)方法的参数可以是可变参数
1.5 方法的可变参数(形式是…)
方法的不定参数,让一个方法可以接收不定数量的参数值。
这个形参类型,可以接收多个实参,多个实参应该使用,进行分隔。
在方法中,可变参数作为一个数组来使用。
2.方法的调用
```在使用方法时,可以通用的形式调用方法。
1) 方法调用时,参数必须匹配(参数的个数,参数的数据类型参数的顺序)。
2) 可变参数的方法在调用时,可以传递0个参数,也可以传递一个参数,还可以传递多个参数。
3)如果方法有返回值,可以使用相同类型的变量接收方法的返回值。比如:
int max=max(10,20);
int min=min(1,2,3,4,5);
补充:变量和变量的名字在同一个作用域内不能一样,但是方法名和变量名是可以一样的!
2.1 形参和实参
形参就是形式参数,就是声明方法时,参数列表中的参数。形参在方法中就像一个临时变量。
实参也叫实际参数,就是在调用方法时,传递的具体的数据。
2.2递归调用
递归调用就是在一个方法中,调用这个方法自己
比如:求n! n!=1×*2…(n-1)*×n
即n!=(n-1)!×n
递归在实现算法时更加的直观,容易理解。但递归也有副作用(栈溢出)。
PS:递归调用都可以转换成循环。
2.3 传值调用和传址调用
传值调用,在调用方法时,如果形参是基本数据类型,这时只是将实参的值复制到形参中,进行调用。
在方法内部,对形参任何修改,都不会影响实参。
传址调用,讲面向对象时,再补充。
当形参是引用类型时,这时将实参的引用地址复制给形参,实参与形参都指向同一个对象。
1) 在方法内部,如果对形参重新赋值,不会响应外部的实参。
2) 在方法内部,如果调用形参的属性或方法,这时可能会响应到外部的实参。
注意:实际上Java中没有传址调用,引用类型的调用只不过是将对象的地址传递给了方法。
3. 方法的重载
在一个类中,如果出现方法名相同,但是参数列表不同的方法,叫做方法的重载。
3.1 参数列表不同
1) 参数的数量不同
2) 参数的数据类型不同
3) java基础语法232参数的顺序不同
以上三项只要有一项满足,就认为参数列表是不同的。
3.2 不构成重载
1) 参数名不同,不构成重载。
如下所示:参数名不同,但是是不构成重载的
2) 返回值类型不同,不构成重载。
在 JVM 中每一个方法的唯一标识由:包名,类名,方法名,参数列表(参数数量,数据类型,顺序)组成
3.3 重载方法的调用
重载方法的调用,由实参的数据类型决定。
不是由实参的值的类型决定的。
调用时,会根据实参的数据类型寻找数据类型最为匹配的方法进行调用。
byte => short => int => long => float => double
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19984.html