1.方法的定义与使用
1.1 什么是方法
方法就是一个代码片段,类似于C语言中的函数.
方法的复用性:已经写好了的代码块,可能被重复利用多次,这个时候就把这段代码抽象为方法.
比如判断一个数是否是素数,就是一个典型的会被利用多次的代码快,应该定义为方法.
1.2 方法的定义语法
public static 方法名 方法返回值(参数){
//方法体代码
[return 语句];
}
// 方法调用
返回值变量 = 方法名称(实参...);
注意:
该方法是否有返回值要看这个方法他的作用或者功能是啥,
比如:求某几个数(int)的和=>我现在调用你这个方法就是想知道这几个数的和是多少,当然有返回值告知调用者返回值是多少=>返回int
public 和 static 两个关键字在此处具有特定含义, 我们暂时不讨论, 后面会详细介绍.
方法定义时, 参数可以没有. 每个参数要指定类型
方法定义时, 返回值也可以没有, 如果没有返回值, 则返回值类型应写成 void
方法定义时的参数称为 “形参”, 方法调用时的参数称为 “实参”.
方法的定义必须在类之中, 代码书写在调用位置的上方或者下方均可.
Java 中没有函数声明这样的概念.只用方法的名称和参数,没有具体的实现是不可以的.
1.3 方法的调用
例如:定义一个方法,实现两个整数相加
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 方法的调用
int ret = add(a, b);
System.out.println("ret = " + ret);
}
// 方法的定义
public static int add(int x, int y) {
return x + y;
}
}
// 执行结果
ret = 30
方法调用的执行过程
基本规则
定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.
当方法被调用的时候, 会将实参赋值给形参.
参数传递完毕后, 就会执行到方法体代码.
当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行.
一个方法可以被多次调用.
1.4关于实参和形参之间的关系(重点)
代码示例
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a, b);
System.out.println("a = " + a + " b = " + b);
}
public static void swap(int x, int y) {
int tmp = x;
x = y;
y = tmp;
}
}
//执行结果
a = 10 ;b = 20;
在Java中,方法的超参数传递只有值传递,所谓的值传递就是把实参的数值拷贝一份拿给形参,对实参没用任何影响.
例如:
在方法外部交换两个局部变量的场景在Java中压根就不存在。这个问题的解决需要引入引用数据类型(数组或对象)
方法的返回值可有可无,没有返回值的方法使用void声明,在没有返回值的方法中,仍然可以使用return ;表示提前结束方法的调用。
2.方法重载(overload)
定义:
方法重载发生"在同一个类中”,定义了若干个方法名称相同,参数列表不同(参数的类型或者个数不同)的一组方法,与返回值无关!这样的一组方法称为重载方法
例如:
Java中 System.out.println (任意参数类型都可以).实际上就是因为System这个类中定义了N个重载方法
注意:
下面代码不是方法的重载,只是返回值类型不同.