目录
一、方法的概念及使用
1.1 方法的概念
1.2 方法的定义
1.3 方法调用的执行过程
1.4 实参和形参的关系
1.5 没有返回值的方法
二、方法的重载
2.1 方法重载存在的原因
2.2 方法重载的概念
一、方法的概念及使用
1.1 方法的概念
方法就是一个代码片段. 类似于 C 语言中的 " 函数"。 是能够模块化的组织代码 ( 当代码规模比较复杂的时候 ).方法可以 做到代码被重复使用 , 一份代码可以在多个位置使用 .方法 让代码更好理解更简单。 直接调用现有方法开发 , 不必重复造轮子。
1.2 方法的定义
// 方法定义修饰符 返回值类型 方法名称 ([ 参数类型 形参 ...]){方法体代码 ;[ return 返回值 ];}
举个例子,编写一个实现两个数相加的方法.代码如下。
import java.util.Scanner;
public class Test {
//方法的定义
public static int add(int a,int b){
return (a+b);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int result = add(m,n);
System.out.println(result);
}
}
注意事项:
1. 修饰符:现阶段直接使用 public static 固定搭配(后续讲解类和对象的时候会说明)2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void3. 方法名字:采用小驼峰命名4. 参数列表:如果方法没有参数, () 中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开5. 方法体:方法内部要执行的语句6. 在 java 当中,方法必须写在类当中7. 在 java 当中,方法不能嵌套定义8. 在 java 当中,没有方法声明一说
1.3 方法调用的执行过程
注意事项:
1.定义方法的时候 , 不会执行方法的代码 . 只有调用的时候才会执行 .2.一个方法可以被多次调用 .
1.4 实参和形参的关系
Java中形参是方法在调用是用来接收传递过来的值,形参的名字可以随意,对方法都没有影响,形参只是方法在定义是需要借助的一个变量,用来保存方法在调用时传递过来的值。
比如:
public class Test {
public static int getSum(int N){ //N是形参
return N*(N+1)/2;
}
public static void main(String[] args) {
getSum(10);
getSum(100);
}
}
如上代码,N是形参,用来接收方法调用时传递的值,10和100是实参,在方法调用时,形参N用来保存实参10和100.
注意:在Java中,实参的值永远都是拷贝到形参中,形参和 实参本质是两个实体。
1.5 没有返回值的方法
方法的返回值是可选的,根据自己的需求,返回值可有可无,没有返回值时,返回值类型必须是void
如下代码就是一个没有返回值的方法:
public class Test {
public static void print(int x,int y){
System.out.println("x = "+x+"\ny = "+y);
}
public static void main(String[] args) {
int x = 10;
int y = 20;
print(x,y);
}
}
二、方法的重载
2.1 方法重载存在的原因
我们先来看下面代码:
public class Test {
public static int add(int a,int b){
return a+b;
}
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a,b);
System.out.println("ret = "+ ret);
double a1 = 5.2;
double b1 = 6.6;
double ret1 = add(a1,b1);
System.out.println("ret1 = "+ ret1);
}
如上代码会报错,
由于参数类型不匹配
,
所以不能直接使用现有的
add
方法。为了解决以上问题,在学习Java之前,大家可能会使用暴力的方法解决,也就是写两个不同的方法,分别来实现整型的加法的浮点型的加法。但是在学习Java之后,我们不再使用暴力的方法,而是使用方法重载的方法来解决这一问题。
2.2 方法重载的概念
在
Java
中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。
举例代码来说明吧。
public class Test {
public static int add(int a,int b){
return a+b;
}
public static double add(double a,double b){
return a+b;
}
public static double add(double a,double b,int c){
return a+b+c;
}
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a,b);
System.out.println("ret = "+ ret);
double a1 = 5.2;
double b1 = 6.6;
double ret1 = add(a1,b1);
System.out.println("ret1 = "+ ret1);
double a2 = 2.5;
double b2 = 4.6;
int c2 = 15;
double ret2 = add(a2,b2,c2);
System.out.println("ret2 = " + ret2);
}
如上代码,我们发现,我们三个方法,而且方法名字也相等,都是add,只是参数类型以及参数数量或者类型的顺序不同而已,这其实就是所谓的方法重载。
注意:
1. 方法名必须相同2. 参数列表必须不同 ( 参数的个数不同、参数的类型不同、类型的次序必须不同 )3. 与返回值类型是否相同无关4. 编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法
以上就是方法重载相关知识的详解,欢迎大家来我的评论区进行讨论。