目录
一、什么是方法
二、方法的定义
三、实参和形参的关系
四、方法重载
五、方法签名
一、什么是方法
Java中的方法可以理解为C语言中的函数,只是换了个名称而已。
二、方法的定义
1. 语法格式:
public static 返回类型 方法名 (形参列表) {
//方法体...
return 返回值;
}
2. public static也可以省略,后面会详细讲解这个是什么,但在现阶段我们默认加上即可。
/*示例:定义一个能实现两个整型相加的方法*/
public static int add(int x, int y) {
return x + y;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int y = scan.nextInt();
int ret = add(x, y);//调用方法
System.out.println(ret);
}
3. 关于return与C语言不同的地方,如果返回类型是同类不同种,且return后面数值类型的大小,小于方法返回类型,这样写是可以的,并不会报错。
4. Java中的方法名必须采用小驼峰的方式命名,比如,maxNum。
5. 关于方法的声明,与C语言不同的是,Java中的方法,并不强调声明的“位置”,也就是说,方法的声明可以放在被调用前,也可以放在被调用后,不过习惯上会写在被调用前。
6. 在Java中,方法必须写在类中,方法和C语言一样,不能嵌套定义。
三、实参和形参的关系
和C语言一样,形参是实参的一份临时拷贝,改变形参不会影响实参。
四、方法重载
1. 问:Java中为什么会出现方法重载?
答:例如,当我们想要实现两个整型变量相加,两个浮点型类型变量相加,三个浮点型变量相加等,由于参数的个数和类别有区别,于是我们要分别定义这个类型的方法,对于取名和记忆方法的名称本身是一件很令人头疼的事,但我们可以发现上面方法有一个共同的特点,本质都是实现数值之间的加法,于是引入了方法重载的概念,在一个类中,有相同的方法名,但形参列表不同几个方法,称这几种方法被重载了。
2. 方法重载的规则:
① 方法名称必须相同
② 参数列表必须不同(个数不同,或类型不同,参数排列顺序不同)
③ 方法的返回值类型可以相同也可以不相同
④ 仅仅返回值类型不同不足以称为方法重载3. 如下图所示,我们定义了几个方法名相同,但形参列表不同的add方法,在mian方法中调用add方法时可以发现会弹出一个选项框,我们可以根据方法的参数列表,选择要使用哪一种add方法。(编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法)
五、方法签名
1. 在同一个作用域中不能定义两个相同名称的标识符,比如:方法中不能定义两个名字一样的变量,那为什么类中可以定义方法名相同的方法呢?这是由于相同名称的方法它们的方法签名不同的缘故。
2. 方法签名即:经过编译器编译修改过之后方法最终的名字,具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。
3. 我们可以查看上图中java代码的的反汇编代码,看到不同add方法的方法签名,具体:
① 先对工程进行编译生成.class字节码文件
② 在控制台中进入到要查看的.class所在的目录
③ 输入:javap -v 字节码文件名字
如下图所示,红色框起来的即为三个add方法最终的名称。
本篇文章已完结,谢谢支持哟 ^^ !!!