目录
一、方法的基本用法
1.什么是方法
方法就是一个代码片段
.
类似于
C
语言中的
"
函数”。
其存在的意义:
(1)
是能够模块化的组织代码
(
当代码规模比较复杂的时候)
(2)做到代码被重复使用
,
一份代码可以在多个位置使用
(3)让代码更好理解更简单
(4)直接调用现有方法开发
,
不必重复造轮子
2.方法的定义
public static 方法返回值 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}
注意:
(1)方法定义时, 参数可以没有. 每个参数要指定类型
(2)方法定义时, 返回值也可以没有, 如果没有返回值, 则返回值类型应写成 void
(3)方法定义时的参数称为 "形参", 方法调用时的参数称为 "实参"
(4)方法的定义必须在类之中, 代码书写在调用位置的上方或者下方均可
(5)Java 中没有 "函数声明" 这样的概念
3.方法的调用
返回值变量 = 方法名称(实参...);
4.方法调用的执行过程
(1)定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行
(2)当方法被调用的时候, 会将实参赋值给形参
(3)参数传递完毕后, 就会执行到方法体代码
(4)当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行
(5)一个方法可以被多次调用
5.实参和形参的关系
Java中只有传值调用,没有传址调用。在传值调用中,对于基础类型来说, 形参相当于实参的拷贝。
交换两个正整数:
public 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
可以发现a,b的值并没有交换,这是因为我们只交换了形参的值,出了函数后,形参被销毁,而主函数中的值没有发生任何变化。我们可以传引用类型的参数(数组),这个修改方法会在日后的笔记总结到
二、方法的重载
1.有些时候我们需要用一个函数同时兼容多种参数的情况
, 我们就可以使用到方法重载。同一个方法名字
,
提供不同版本的实现
,
称为
方法重载
2.重载的规则:
(1)
方法名相同
(2)方法的参数不同
(
参数个数或者参数类型)
(3)方法的返回值类型不影响重载(当两个方法的名字相同
,
参数也相同
,
但是返回值不同的时候
,
不构成重载)
(4)不一定需要在同一个类中,继承关系也可以
public class Test{
public static double add(double a, double b){
return a + b;
}
/*public static double add(int a, int b){
return (double)a + b;
}*///这样也是错的,重载关键在于参数类型不同 返回值一样与否与重载没有关系
public static int add(int a, int b){
return a + b;
}
public static void main4(String[] args) {
double d1 = 10.1;
double d2 = 20.1;
System.out.println(add(d1,d2));
int a = 1;
int b = 2;
System.out.println(add(a,b));
}
}
三、方法的递归
一个方法在执行过程中调用自身,
就称为
"递归"。
注意:递归一定要有一个趋于终止的条件,否则,会无限递归下去。递归的关键在于找到一条递推公式。
Java的方法递归和C语言的函数递归十分相似,因此,这里的关于递归的知识可以在我的“C语言之函数总结”博客处看到。