1.定义:
方法就好比是一个工厂。
例如:蒙牛工厂
原料:奶牛、饲料、水
产出物:奶制品
对于方法来说:
参数(原料):就是进入方法的数据。
返回值(产出物):就是从方法中出来的数据。
2.定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,…){
方法体
return 返回值;
}
(1)修饰符:现阶段的固定写法,public static。
(2)返回值类型:也就是方法最终产生的数据结果是什么类型
(3)方法名称:方法的名字,规则和变量一样,小驼峰。
(4)参数类型:进入方法的数据是什么类型。
(5)参数名称:进入方法的数据对应的变量名称。
tips:参数如果有多个使用逗号分隔开。
(6)方法体:方法需要做的事情,若干行代码。
(7)return:两个作用,第一停止当前方法。第二将后面的返回值还给调用处。
(8)返回值:也就是方法执行后最终产生的数据结果。
注意:
(1)return后面的“返回值”,必须和方法名称前面的“返回值类型”保持一致。
(2)对于一个void没有返回值的方法,return 后面不能跟数据,只能光"return;",作用仅是结束方法的执行。return作为方法的最后一行时可以省略不写。
(3)一个方法中可以有多个return语句,但是必须保证也同时只有一个会被执行。例如:求两个数中的最大值
public static int getMax(int a, int b) { if (a > b) { return a; }else { return b; } }要么return a执行,要么eturn b执行。
3.方法调用的三种格式 (1)单独调用:方法名称(参数); (2)打印调用:System.out.println(方法名称(参数)); (3)赋值调用:数据类型 变量名称 = 方法名称(参数);
4.举例:
public class Demo02MethodDefine { public static void main(String[] args) { //单独调用 sum(10,20); System.out.println("================="); //打印调用 System.out.println(sum(10,20)); System.out.println("================="); //赋值调用 int num = sum(30,50); System.out.println("结果为" + num); } public static int sum(int a,int b) { System.out.println("方法调用啦!"); int result = a + b; return result; } }注意:
(1)单独调用只能调用方法,但是方法执行后产生的结果不输出,无法使用。
(2)返回值类型为void的方法只能单独调用,不能打印调用和赋值调用。
5.方法的调用流程图解。
找到对应的方法—>参数传递到方法的调用处—>执行方法体—>得到执行结果,带着返回值回到方法的调用处。
6.方法重载:多个方法名称相同,参数列表不同
调用方法时,根据参数列表自动匹配执行相应的方法
方法重载与下列因素相关:
(1)参数个数不同
/**参数的个数不同*/ public static int getSum(int a, int b) {//两个参数 int sum; sum = a + b; return sum; } public static int getSum(int a, int b, int c) {//三个参数 int sum; sum = a + b + c; return sum; }(2)参数类型不同
/**参数的类型不同*/ public static int getSum(int a, int b) {//int类型 int sum; sum = a + b; return sum; } public static int getSum(double a, double b) {//double类型 int sum; sum = (int) (a + b); return sum; }(3)参数的多类型顺序不同。
/**参数的多类型顺序不同*/ public static int getSum(int a, double b) { int sum; sum = (int) (a + b); return sum; } public static int getSum(double a, int b) { int sum = (int) (a + b); return sum; }方法重载与下列因素无关:
(1)与参数名称无关
public static int getSum(int a, int b) { int sum; sum = a + b; return sum; } public static int getSum(int z, int x) {//错误重载,与参数名称无关。 int sum; sum = z + x; return sum; }(2)与方法的返回值类型无关
public static int getSum(int a, int b) { return a + b; } public static double getSum(int a, int b) {//错误重载,与方法的返回值类型无关。 return a + b; }