1.方法(method)
1.1 什么是方法
方法就是定义在类中的具有特定功能的一段独立小程序,用来完成特定的某个功能
1.2 方法的声明和调用
1.2.1 方法声明格式
修饰符 返回值类型 方法名(参数类型 参数名 1,参数类型 参数名 2,参数类型 参数名 n)
{
执行语句;
return 返回值;
}
** 注意事项: **
1.修饰符:用于控制方法的访问权限(public)。
2.返回值类型:方法需要返回值的数据类型,若不需要返回值则定义为void(空)即可。
3.方法名:方法的名字,要求必须符合标识符的规范,并且采用小驼峰命名规则。
4.形参列表:由参数类型+参数名组成,可以有多个,用于接收实参传递过来的值,给方法内部传递数据。
5.执行语句:书写方法需要实现的内容。
6.返回值:如果定义了返回值,则返回值和返回值的类型必须保持一致;如果定义的返回值的内容为空(void),则返回值需要省略。即直接写return;即可。
**注意:定义了返回值类型,还可以省略return **
1.2.2 方法的调用
方法名(实际参数1,实际参数2,实际参数n)
实际参数(简称实参):传递给形参数的具体数值,对应着形式参数(简称形参)。
注意
1.形参和实参的类型和个数必须保持一一对应。
2.在方法中只能调用方法,不可以再方法内部再写一个方法(方法可以嵌套调用,但不能嵌套书写)。
3.当方法有返回值类型时,可以用一个变量用于接收方法的返回值,该变量的类型必须和返回值的类型保持一致。
例题
public class MethodDemo {
public static void main(String[] args) {
int num1 = 20,num2 = 30;
int sum = add(num1, num2);//num1,num2为实参,调用add方法,实参传递给形参
System.out.println(sum);//输出50
// return; main方法一般省略了“return;”这样语句!
}
//形式参数类型必须和实参类型和个数一一对应,实参传递给形参也就是 a = num1,b = num2
public static int add(int a,int b) {
return a+b;
}
}
1.3 方法的运用
==》方法使用分为两个步骤:
1)、定义方法
2)、调用方法
==》定义方法
1、 无参无返回值方法
2、 无参有返回值方法
3、 有参无返回值方法
4、 有参带返回值方法
==》调用方法
根据方法是否有返回值,可分为两类:
1)、有返回值方法
2)、无返回值方法
例题:
有参有返回值:
- 需求:调用方法获得指定两个double变量的和。
- 分析:需要外界传入两个double类型的形参,并返回两个double类型形参之和。
*无参无返回值 - 需求:在方法中输出“hello world”。
- 分析:不需要参数和返回值,应该选用无参无返回值方法。
*有参无返回值 - 需求:在方法中输出指定两个int变量的和。
- 分析:需要外界传入两个int类型的参数,但不需要返回值。
*无参有返回值 - 需求:调用方法获得常量3+ 4的和。
- 分析:不需要外界传入参数,但是需要返回常量3+4之和。
public class MethodDemo02 {
public static void main(String[] args) {
double num1 =4.0,num2 = 5.0;
double sum = add1(num1,num2);
System.out.println(sum);
add2();
add3(num1, num2);
add4();
}
/**
* 有参有返回值
* add1方法,计算两个double类型之和
* @param num1 用来接收实参
* @param num2 用来接收实参
* @return 返回两个double类型之和
*/
public static double add1(double num1, double num2) {
return num1+num2;
}
/**
* add2:无参无返回值,用来输出:Hello World!
*/
public static void add2() {
System.out.println("Hello World!");
}
/**
* add3:有参无返回值,在方法中输出结果
* @param num1
* @param num2
*/
public static void add3(double num1, double num2) {
System.out.println(num1 + num2);
}
public static void add4() {
System.out.println(3+4);
}
}
2.方法的重载
2.1 重载的慨念
在同一个类中,允许存在一个以上的同名方法,只要他的参数个数或者参数类型不同即可。
核心为两同两不同
*同一个类中,同一个方法名
*参数列表不同(类型、个数)
2.2 重载的特点
返回值笔筒不构成方法的重载。
形参的名称不同,不构成重载。
方法的修饰符不同,不构成方法的重载。
注意:重载的方法,实际上是完全不同的方法!只是方法名称相同而已
例如:
public class MethodOverLoadDemo01 {
public static void main(String[] args) {
double sum = add(1.9,2);
System.out.println(sum);
}
/**
* 重载:参数列表不同(类型,个数)
* @overload
*/
public static int add(int num1,int num2) {
return num1 + num2;
}
public static double add(double num1,double num2) {
return num1 + num2;
}
public static int add(int num1,int num2,int num3) {
return num1 + num2 + num3;
}
}
2.3 我们遇到过的方法重载
System.out.println();
System.out.println(10);
System.out.println(10.0);
System.out.print();
System.out.print(10);
System.out.print(10.0);