方法
public static void 方法名称() {
方法体;
}
调用格式:
方法名称();
注意事项:
- 方法定义的先后顺序无所谓;
- 方法定义必须是挨着的,不能在一个方法的内部定义另一个方法
- 方法定义之后,自己不会执行,如果希望执行,一定要进行方法的调用
方法的定义格式
方法好比一个工厂,
钢铁工厂: 原料: 铁矿石, 煤炭
产出物:钢铁建材
参数:原料 就是进入方法的数据
返回值:产出物, 就是从方法中出来的数据
定义方法的完整格式
修饰符 返回值类型 方法名称(参数类型 参数名称,...){
方法体;
return 返回值;
}
修饰符: public static
返回值类型:就是方法最终产生的数据结果是什么类型
参数类型:进入方法的数据是什么类型
参数名称:进入方法的数据对应的变量名称
参数有多个时,使用逗号进行分隔;
方法体:方法需要做的事情,若干行代码
return: 两个作用,第一停止当前做法,第二将后面的结果数据返回值还给调用处
返回值:也就是方法执行后最终产生的结果
return 后面的返回值,必须和方法名称前面的“返回值类型”,保持对应
例如: 定义一个两个int相加的方法
返回值 int
方法名称: sum
参数列表 int a, int b
方法的三种格式调用
- 单独调用:方法名称(参数);
- 打印调用:
- 赋值调用:
public class Demo02MethodDefine {
public static void main(String[] args) {
System.out.println(sum(10,20));
System.out.println("===============");
int number = sum(14,29);
System.out.println("number :"+number);
}
public static int sum(int a, int b){
int result = a+b;
return result;
}
}
方法的参数
- 有参数:
小括号中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数:例如两个数字相加,必须知道两个数字各自是多少,才能相加 - 无参数
小括号中留空,一个方法不需要任何数据条件,自己就能独立完成任务,就是无参数,例如:定义一个方法,打印固定10次helloworld
方法的返回值
注意事项:
对于有返回值的方法,可以使用单独调用,打印调用或者赋值调用,但是对于无返回值的方法,只能使用单独调用,不能使用打印调用和赋值调用;
方法的注意事项:
- 方法定义在类当中,但是不能在方法当中再定义方法,不能镶嵌
- 方法定义的前后顺序无所谓
- 方法定义之后不会执行,如果希望执行,一定要强调,单独调用,打印调用和赋值调用
- 如果方法有返回值,那么必须写上“return 返回值”;不能没有
- return后面的返回值数据,必须和方法的返回值类型,对应起来
- 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return 自己
- 对于方法当中最后一行的return可以省略不写;
- 一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写
方法的重载 Overload
对于功能类似的方法来说,因为参数列表一样,却需要记住那么多不同的方法名称,太麻烦
重载:多个方法的名称一样,但是参数列表不一样。
好处:只需记住唯一一个方法名称,就可以实现类似的多个功能
方法重载与下列因素有关
1. 参数个数不同
2. 参数类型不同
3. 参数的多类型顺序不同
方法重载与下列参数无关:
1. 与参数名称无关
2. 与返回值类型无关
package demo04;
public class Demo01MethodOverload {
public static void main(String[] args) {
System.out.println(sum(10,20,30));
System.out.println(sum(150,200));
}
public static int sum(int a, int b){
System.out.println("两个参数的方法");
return a+b;
}
public static int sum(int a , int b, int c){
System.out.println("三个参数的方法");
return a+b+c;
}
// 参数个数不同
public static int sum(int a , int b, int c, int d){
System.out.println("四个参数的方法");
return a+b+c+d;
}
// 参数类型不同
public static int sum(double a, double b){
return (int)(a+b);
}
// 多类型参数先后顺序不同
public static int sum(int a, double b){
return (int)(a+b);
}
// 多类型参数先后顺序不同
public static int sum(double a, int b){
return (int)(a+b);
}
}
System.out.println 就是使用的 重载