Java方法及方法重载的详解

目录

一、方法的概念及使用

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. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void
3. 方法名字:采用小驼峰命名
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. 编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法
以上就是方法重载相关知识的详解,欢迎大家来我的评论区进行讨论。

你可能感兴趣的:(JavaSE,java,开发语言)