1.方法的概念
在编程中,某段功能的代码可能频繁使用到,会出现以下问题:
- 开发效率低下,做了大量重复性的工作。
- 不利于维护,需要改动时,所有用到该段代码的位置都需要修改。
上面这些问题很容易解决,通过方法就可以搞定。
方法的概念:
- 方法就是一个代码片段. 类似于 C 语言中的 "函数"。
- 是能够模块化的组织代码(减少代码冗余)。
- 做到代码被重复使用, 一份代码可以在多个位置使用。
- 让代码可读性更高。
- 直接调用现有方法开发, 不必重复造轮子。
方法使用
2.1 方法定义方式
修饰符 返回值类型 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}
举例:
// 修饰符 返回值类型 方法名称 参数类型publicbooleanisLeapyear(inty){ if((y%400==0)||(y%4==0&&y%100!=0)){ returntrue; }else { returnfalse; } }
注意:
- 修饰符:现阶段直接使用public static 固定搭配
- 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void
- 方法名字:采用小驼峰命名
- 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
- 方法体:方法内部要执行的语句
- 在java当中,方法必须写在类当中
- 在java当中,方法不能嵌套定义
- 在java当中,没有方法声明一说
2.2 方法调用的执行过程
调用方法--->传递参数--->找到方法地址--->执行被调方法的方法体--->被调方法结束返回--->回到主调方法继续往下执行
3.方法重载
在自然语言中,一个词语如果有多重含义,那么就说该词语被重载了,具体代表什么含义需要结合具体的场景。 在Java中方法也是可以重载的。
举例:
publicstaticintadd(intx, inty) { returnx+y; } publicstaticdoubleadd(doublex, doubley) { returnx+y; } publicstaticdoubleadd(doublex, doubley, doublez) { returnx+y+z; } publicstaticvoidmain(String[] args) { inta=add(1, 2); // 调用add(int, int)System.out.println(a); doubleb=add(1.5, 2.5); // 调用add(double, double)System.out.println(b); doublec=add(1.5,2.5, 3.5); // 调用add(double, double, double)System.out.println(c); }
当满足以下条件时才构成方法重载:
- 方法名必须相同
- 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
- 与返回值类型是否相同无关
- 编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法
4.方法签名
在同一个作用域中不能定义两个相同名称的标识符。比如:方法中不能定义两个名字一样的变量,那为什么类中就 可以定义方法名相同的方法呢?
方法签名即:经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。
方法签名中一些特殊符号说明:
特殊符号 | 数据类型 |
V | void |
Z | boolean |
B | byte |
C | char |
S | short |
I | int |
J | long |
F | float |