zoukankan      html  css  js  c++  java
  • java方法与方法的重载

    一 方法

    1.方法的概述

      在java中,方法就是用来完成解决某件事情或实现某个功能的办法。

      方法实现的过程中,会包含很多条语句用于完成某些有意义的功能——通常是处理文本,

    控制输入或计算数值。我们可以通过在程序代码中引用方法名称和所需的参数,实现在该

    程序中执行(或称调用)该方法。方法,一般都有一个返回值,用来作为事情的处理结果。

    2.方法的语法格式

    格式:

    修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){

    执行语句

    ………

    return 返回值;

    }

    修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等。

    返回值类型:用于限定方法返回值的数据类型void

    参数类型:用于限定调用方法时传入参数的数据类型

    参数名:是一个变量,用于接收调用方法时传入的数据

    return关键字:用于结束方法以及返回方法指定类型的值

    返回值:被return语句返回的值,该值会返回给调用者

      方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要

    接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值必须

    方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句

    可以省略。

    例如:求矩形面积

    public class MethodDemo01 {
        public static void main(String[] args) {
            int area = getArea(3, 5); // 调用 getArea方法
            System.out.println(" The area is " + area);
        }
    
        // 下面定义了一个求矩形面积的方法,接收两个参数,其中x为高,y为宽
        public static int getArea(int x, int y) {
            int temp = x * y; // 使用变量temp记住运算结果
            return temp; // 将变量temp的值返回
        }
    }

    3.方法调用图解

     4.方法的定义练习

    例如:定义无返回值无参数方法,如打印3行,每行3个*号的矩形

    public static void method02(){
            for (int i=0;i<3 ;i++ ){
                for (int j = 0;j<3 ;j++ ){ 
                System.out.print("*");
            }
                System.out.println();
            }
        }

    例如:定义有返回值无参数方法,如键盘录入得到一个整数

    public static int method03(){
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            return a;
        }

    例如:定义无返回值有参数方法,如打印指定M行,每行N个*号的矩形

    public static void method04(int m,int n){
            for (int i=0;i<m ;i++ ){
                for (int j = 0;j<n ;j++ ){ 
                System.out.print("*");
            }
                System.out.println();
            }
        }

    例如:定义有返回值有参数方法,如求三个数的平均值

    public static double method05(double a,double b,double c){
            double d = (a+b+c)/3;
            return d;
        }

    二 方法的重载

      我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型

    都不确定,因此要针对不同的情况去设计不同的方法。

    例如对两个整数相加、对三个整数相加以及对两个小数相加的功能

    public class MethodDemo02 {
        public static void main(String[] args) {
            // 下面是针对求和方法的调用
            int sum1 = add01(1, 2);
            int sum2 = add02(1, 2, 3);
            double sum3 = add03(1.2, 2.3);
            // 下面的代码是打印求和的结果
            System.out.println("sum1=" + sum1);
            System.out.println("sum2=" + sum2);
            System.out.println("sum3=" + sum3);
        }
    
        // 下面的方法实现了两个整数相加
        public static int add01(int x, int y) {
            return x + y;
        }
        // 下面的方法实现了三个整数相加
        public static int add02(int x, int y, int z) {
            return x + y + z;
        }
        // 下面的方法实现了两个小数相加
        public static double add03(double x, double y) {
            return x + y;
        }
    }

        程序需要针对每一种求和的情况都定义一个方法,如果每个方法的名称都不相同,

    在调用时就很难分清哪种情况该调用哪个方法。

        为了解决这个问题,Java允许在一个类中定义多个名称相同的方法,但是参数的类

    型或个数必须不同,这就是方法的重载。

    下面的三个方法互为重载关系:

    public static int add(int x,int y) {逻辑} //两个整数加法

    public static int add(int x,int y,int z) {逻辑} //三个整数加法

    public static int add(double x,double y) {逻辑} //两个小数加法

    接下来通过方法重载的方式进行修改,如下所示。

    public class MethodDemo03 {
        public static void main(String[] args) {
            // 下面是针对求和方法的调用
            int sum1 = add(1, 2);
            int sum2 = add(1, 2, 3);
            double sum3 = add(1.2, 2.3);
            // 下面的代码是打印求和的结果
            System.out.println("sum1=" + sum1);
            System.out.println("sum2=" + sum2);
            System.out.println("sum3=" + sum3);
        }
    
        // 下面的方法实现了两个整数相加
        public static int add(int x, int y) {
            return x + y;
        }
        // 下面的方法实现了三个整数相加
        public static int add(int x, int y, int z) {
            return x + y + z;
        }
        // 下面的方法实现了两个小数相加
        public static double add(double x, double y) {
            return x + y;
        }
    }

    注意:

      方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数个数或参数类型不相同。

    重载的注意事项: 

    重载方法参数必须不同:

      参数个数不同,如method(int x)method(int x,int y)不同

      参数类型不同,如method(int x)method(double x)不同g

      参数顺序不同,如method(int x,double y)method(double x,int y)不同

    重载只与方法名与参数类型相关与返回值无关

      如void method(int x)int method(int y)不是方法重载,不能同时存在

    重载与具体的变量标识符无关

      如method(int x)method(int y)不是方法重载,不能同时存在

  • 相关阅读:
    学生数据增删改查--顺序表
    应用3+2mvc第一次作业
    双色球随机选【代码】
    字符串穷举
    使用nuget发布自己的包
    VS CODE中配置JAVA格式化细节
    反射的理解(含一点xml)
    UdpClient实现udp消息收发
    c#背包问题代码
    利用TcpClient,简单的tcp消息收发
  • 原文地址:https://www.cnblogs.com/jiejava/p/13217226.html
Copyright © 2011-2022 走看看