1.1 方法的详细格式:
修饰符 返回值类型 方法名(数据类型 变量名,数据类型 变量名......){
代码
return 值;
}
- 修饰符:public static
- 返回值类型:
- void表示没有返回值。
- 基本类型8种:byte,short,int,long,float,double,char,boolean。
- 引用数据类型:类,数组,接口。
- 方法名:满足标识符规范,取个名字,做到见名知意。
- 参数列表:(数据类型 变量名,数据类型 变量名......)可以理解为在定义变量,未知数据作为参数列表。
- 代码:我们学过的都可以往里面放。
- return 值:(方法的返回值)
- 结束方法。
- 将结果返回到调用的地方。
- 注意:返回值是void,不用 写return。
1.2 我们知道方法的返回值类型和参数列表可以任意写,返回值类型和参数列表到底写什么?
根据方法的功能来确定返回值类型和参数列表。
- 定义方法需要明确两点:
- 返回值类型
- 参数列表
- 需求:定义方法实现两个整数的求和计算(定义方法需要明确两点)
- 返回值类型:两个整数的求和结果是整数,int,返回值是int类型
- 参数列表:站在方法的角度,未知的数据作为参数列表,哪两个整数未知(int a,int b)
- 形式参数(形参):定义方法时的参数列表(没有具体值)
- 实际参数(实参):调用方法时传递的具体值
public class addTest01 {
public static void main(String[] args) {
int sum = add(12,4); //实际参数(实参):调用方法时传递的具体值 (12,4)
System.out.println("sum="+sum);
}
public static int add(int a,int b){//形式参数(形参):定义方法时的参数列表(没有具体值)
int c = a+b;
return c;
}
}
2.1 调用方法的三种形式:
- 直接调用:方法名(参数); 没有对返回值进行处理
- 赋值调用:数据类型 变量名=方法名(参数); 可以对结果进行处理
- 输出调用:System.out.println(add(参数));输出方法的返回值
- 注意:不能用输出语句调用void 类型的方法。因为方法执行后没有结果,也就打印不出任何内容。(只能使用直接调用)
public class addTest01 {
public static void main(String[] args) {
//方式1:直接调用:方法名(参数); 没有对返回值进行处理
add(10,12);
//方式2:赋值调用:数据类型 变量名=方法名(参数); 可以对结果进行处理
int sum = add(12,4);
System.out.println("sum="+sum);
//方式3:输出调用:System.out.println(add(参数));输出方法的返回值
System.out.println(add(10,12));
}
public static int add(int a,int b){
int c = a+b;
return c;
}
}
2.1 定义方法的注意事项:
- 定义位置,类中方法外面。(比如常见的写在main方法外面)
- 调用方法时写错方法名字。
- 调用方法时写错参数列表。
- 返回值类型,必须要和return语句返回值类型相同,否则编译失败。
- 不能在return后面写代码,return意味着方法结束,所有后面的代码永远不会执行,属于无效代码。
3.1 方法重载:
- 定义2个int求和,定义3个int求和。我们发现2个数求和,3个数求和的功能是一样的,如果定义不同的方法名使用起来很不方便,最好取相同的名称,就像人吃饭的功能一样,不管吃面、吃米饭,都叫吃饭的功能。
- 方法重载:指在同一个类中,方法名相同,参数列表不同,与修饰符和返回值类型无关,
- 参数列表:个数不同、数据类型不同、顺序不同。
- 重载方法调用:JVM通过方法的参数列表,调用不同的方法。
- 方法重载的好处:方法我们使用,只需要记住一个方法名。
public class Demo {
public static void main(String[] args) {
System.out.println(add(1,2,34));
System.out.println(add(12,34));
}
//定义2个byte数求和
public static int add(byte b1,byte b2){
return b1+b2;
}
//定义2个int数求和
public static int add(int a,int b){
return a+b;
}
//定义3个int数求和
public static int add(int a,int b,int c){
return a+b+c;
}
}