方法的概念及使用
方法的概念
方法就是一个代码片段,类似c语言的函数
方法的意义:
- 能够模块化的组织代码(当代码规模比较复杂的时候)
- 做到代码重复利用,一份代码可以在多个位置使用
- 让代码更好理解更简单
- 直接调用现有方法开发,不必重复造轮子
方法的定义
方法语法格式
// 方法定义
修饰符 返回值类型 方法名称([参数类型 形参 …]){
方法体代码;
[return 返回值];
}
方法的使用
//计算两个整数之和
public static int add(int a,int b) {
return a+b;
}
public static void main(String[] args) {
int a=10;
int b=20;
System.out.println(add(a, b));
}
注意
- 如果方法有返回值,返回值的类型要必须要与返回的实体类型一致,如果没有返回值,必须写成void
- 如果方法没有参数,()中什么都不写,如果有参数类型,需指定参数类型,多个参数用逗号隔开
- 方法必须写到类当中
- 方法不能嵌套定义
- Java没有方法声明
方法调用的执行过程
调用方法—>传递参数—>找到方法地址—>执行被调方法的方法体—>被调方法结束返回—>回到主调方法继续往下执行
实参与形参的关系
形参只是方法在定义时需要借助的一个变量,用来保存传递过来的值
例如
public static int add(int a,int b) {
return a+b;
}
add(2,3); //2和3是实参 a和b是形参
- 实参的值永远是拷贝给形参,实参和形参是两个实体
用方法来交换两个整数的值
public static void jh(int a,int b) {
int t=a;
a=b;
b=t;
}
public static void main(String[] args) {
int a=10;
int b=20;
System.out.println(a); //10
System.out.println(b); //20
jh(a,b);
System.out.println("交换后");
System.out.println(a); //10
System.out.println(b); //20
}
可以发现a和b的值没有发生改变,可以知道实参只是把值拷贝给形参,对形参进行操作并不会对实参有影响
方法的重载
如果多个方法的名字相同,但参数列表不同,则称该几种方法被重载了
例如
public static int add(int a,int b) {
return a+b;
}
public static double add(double a,double b) {
return a+b;
}
public static void main(String[] args) {
int a=10;
int b=20;
double c=10;
double d=20;
System.out.println(add(a, b));; //30
System.out.println(add(c, d));; //30.0
}
虽然有两个add,但是参数列表不同,两个add都可以使用
注意:
- 如果只是返回类型不同,则不能发生重载
例如:
public static int add(int x, int y) {
return x + y;
}
public static double add(int x, int y) {
return x + y;
}
- 方法名相同
- 参数列表必须不同(个数,类型,类型的次序)
- 与返回值类型无关
方法签名
在同一个作用域中不能定义两个相同名称的标识符。
比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢?
因为它们的方法签名不一样
方法签名即:经过编译器编译修改之后方法的最终名字
具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。
有兴趣的可以自行了解,这里不做过多分析