方法概述
什么是方法
Java方法是语句的集合,它们在一起执行一个功能。
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
方法的优点
- 1.使程序变得更简短而清晰。
- 2.有利于程序维护。
- 3.可以提高程序开发的效率。
- 4.提高了代码的重用性。
方法的命名规则
- 第一个单词首字母小写,其余单词首字母大写
方法定义
[修饰符] 返回值类型 方法名(参数列表) {
方法体;
[返回值;]
}
- 修饰符:可选。指定方法的访问类型以及调用方式;
- 返回值类型:方法的结果类型,可以为空,用void表示;
- 方法名:方法的标识符;
- 参数列表:若方法体需要方法外部的值,可以通过参数列表传递;
- 方法体:方法的具体逻辑;
- 返回值:可选,若方法不需要向外传递方法的逻辑结果,可以忽略。
方法调用
根据返回值结果的不同,方法的调用也不尽相同。
- 若方法存在返回值:int sum = add(3, 5);
- 若方法不存在返回值:output(“hello”);
public class Method {
// 返回两个整型变量数据的和
public static int add(int a, int b) {
int c = a + b;
return c;
}
// 输出语句
public static void output(String str) {
Sysout.out.println(str);
}
public static void main(String[] args){
int sum = add(3, 5);
output("hello");
System.out.println("sum = " + sum); // println()其实就是一个方法
}
}
方法重载
在Java中,为了提高代码的复用率,Java提供了方法的重载。
在同一个类中,Java允许同名的函数出现,同名的函数之间至少应满足以下一点:
- 参数的数据类型不同;
- 参数的顺序不同;
- 参数的个数不同。
特别注意:返回值类型不同不算重载!
public class MethodOverload {
public static int add(int i, int j){
return i + j;
}
public static double add(int i, double j){
return i + j;
}
public static double add(int i, double j, short k){
return i + j + k;
}
// public static void add(int i, int j){ 这个不能算重载,编译器会报错
// System.out.println(i + j);
// }
}
方法的递归
例:求5的阶乘。
public class Recursive{
public static int recursive(int n) {
if (n == 1)
return 1;
return n * recursive(n - 1);
}
public static void main(String[] args) {
int rec = recursive(5);
System.out.println(rec); // 120
}
}
需要注意的是,递归要保证函数有出口,否则会报栈溢出StackOverflowError。