一.方法
1.概述
将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能.
当我们需要这个功能的时候,就可以去调用.这样既实现了代码的复用性,也解决了代码冗余的现象.
2.分类
方法的分类:
- 无参数无返回值
- 无参数有返回值
- 有参数无返回值
- 有参数有返回值
二.定义方法
1.格式
修饰符 返回值类型 方法名(参数列表){
//代码省略...
return 结果(返回值);
}
- 修饰符: public static 固定写法
- 返回值类型:这个位置只要是数据类型都可以写, 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
- 方法名:其实就是自己定义的名称 ,符合标识符命名规则和规范
- 参数列表:这个位置其实就是声明变量可以声明多个变量,使用逗号隔开, 代表方法在运算过程中的未知数据,调用者调用方法时传递
- return:将方法执行后的结果带给调用者,方法执行到return ,整体方法运行结束(结束方法,并且把结果返回给调用者)
- 如果不需要返回结果给调用者,那么就不需要写return语句,所以返回值类型为void
三.调用方法
1.三种调用形式
- 直接调用 方法名(实际参数); 实际参数:具体的值
public static void main(String[] args) {
print();
}
public static void print() {
System.out.println("方法被调用");
}
- 赋值调用 数据类型 变量名 = 方法名(实际参数); 等于号的左边是用来接收方法的返回值的,所以数据类型和返回值类型相同
public static void main(String[] args) {
int sum = getSum(5,6);
System.out.println(sum);
}
public static int getSum(int a,int b) {
return a + b;
}
- 输出调用 System.out.println(方法名(实际参数));
public static void main(String[] args) {
System.out.println(getSum(5,6));
}
public static int getSum(int a,int b) {
return a + b;
}
不能用输出语句调用void 类型的方法。因为方法执行后没有结果,也就打印不出任何内容
public static void main(String[] args) {
System.out.println(printHello());// 错误,不能输出语句调用void类型方法
}
public static void printHello() {
System.out.println("Hello");
}
- 注意事项:
- 实际参数: 只有方法有参数的才会传实际参数,如果方法没有参数,那么小括号就空着
- 无返回值的方法只能直接调用,不能赋值调用和输出调用
- 有返回值的方法可以直接调用,也可以赋值调用,也可以输出调用
四.方法重载
1.概述
在同一个类中,出现了方法名相同,参数列表不同的方法,与返回值类型和修饰符无关.
- 参数列表:个数不同,数据类型不同,顺序不同.
- 重载方法调用:JVM通过方法的参数列表,调用不同的方法
public static void open(){}
public static void open(int a){}
static void open(int a,int b){}// 与最后一个冲突
public static void open(double a,int b){}
public static void open(int a,double b){}// 与第6个冲突
public void open(int i,double d){} // 与第5个冲突
public static void OPEN(){}// 不是重载 方法名不一致
public static void open(int i,int j){}// 与第3个冲突