目录
概述
将功能抽取出来形成一个单独的模块,实现代码复用性
定义
格式
Java中的方法可类比C中的函数
修饰符 返回值类型 方法名称(参数列表){
方法体
return ...;
}
- 解释
- 修饰符:目前固定写public static
- 返回值类型:方法返回值的数据类型
- 参数列表:需要传入方法的参数
- return:方法结束,返回值类型为void时可省略
public static void methodName() {
System.out.println("This is my first method");
}
调用
方法定义后需要被调用才能运行,写出方法名称即可完成调用。
public static void main(String[] args) {
//调用
method();
}
//定义方法
public static void method() {
System.out.println("Method");
}
- 直接调用:直接写方法名调用
public static void main(String[] args) {
print();
}
public static void print() {
System.out.println("我的婉儿飞不起来!");
}
- 赋值调用:调用方法,在方法前面定义变量,接收方法返回值
public static void main(String[] args) {
int sum = getSum(1,2);
System.out.println(sum);
}
public static int getSum(int a,int b) {
return a + b;
}
- 输出语句调用: 在输出语句中调用方法,System.out.println(方法名()) ,不能用输出语句调用 void 类型的方法,方法执行后没有结果,也就打印不出任何内容。
public static void main(String[] args) {
System.out.println(getSum(2,1));
}
public static int getSum(int a,int b) {
return a + b;
}
注意
方法不能定义在另一个方法里面。
方法的重载
- 方法重载(Overload)是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数
- 方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法
- 构成重载要求:参数个数不同、参数类型不同、多类型参数顺序不同(满足其一)
- 方法的重载与参数名称、方法返回值类型、修饰符无关(不可构成重载)
/*
* 构成重载满足其一即可:参数个数不同、参数类型不同、多类型参数顺序不同
* 与参数名称、方法返回值类型、修饰符无关(不可构成重载)
* */
public class Method03Overload {
public static void main(String[] args) {
System.out.println(isSame(10, 20));
}
public static boolean isSame(int a, int b) {
return a == b;
}
public static boolean isSame(long a, long b) {
return a == b;
}
public static boolean isSame(byte a, byte b) {
return a == b;
}
public boolean isSame(short a, short b) {
return a == b;
}
}
可变参数
这部分内容可在后面学习完数组后再学习
JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化成如下格式:
修饰符 返回值类型 方法名(参数类型... 形参名){ }
等价于
修饰符 返回值类型 方法名(参数类型[] 形参名){ }
-
注意:一个方法最多只能有一个可变参数,如果除了可变参数外有其他参数传入,那么可变参数必须是参数列表最后一个。
public class VariadicParameter {
public static void main(String[] args) {
System.out.println(sum(10, 20, 30, 40, 50, 60, 70, 80));//360
}
private static int sum(int... num) {
int sum = 0;
for (int i : num) {
sum = sum + i;
}
return sum;
}
}