方法

作者: c_gentle | 来源:发表于2021-01-10 10:33 被阅读0次

    一、方法的定义和调用

    1、方法的定义

    方法:完成某一特定功能(如:求和,统计数量等)的代码块
    定义方法,语法格式:

    [修饰符] 返回值类型 方法名称(参数类型 参数名1,参数类型 参数名2,…)
    {
        方法体;
        [return 返回值;]
    }
    

    看看最熟悉的main方法的定义。


    image.png

    格式分析:
    修饰符:public、static等,static修饰的方法直接使用类名调用即可,目前都使用static修饰
    返回类型:限定返回值的类型,方法在完成一个功能后,是否需要给调用者返回一个结果?
    如果需要给调用者返回结果,就写上返回数据的类型
    如果不需要给调用者返回结果,此时使用关键字void,表示无返回
    方法名称:用于调用方法,遵循标识符规范,使用动词表示,首字母小写,采用用驼峰表示法
    形式参数:括号方法圆括号中的变量,可以有多个
    方法体:方法的{}中的代码,编写如何完成该功能的代码
    return关键字:在方法体中使用return关键字

    • 功能1:把值返回给该方法调用者,此时该方法不能使用void修饰
    • 功能2:结束当前方法
    • 注意:方法体没有return时,方法的返回类型声明为void,表示无返回。
      注意事项:
    • 方法必须定义在类中,在Java中最小的程序单元是类,必须先有类
    • 一个类中可以定义多个方法
    • 方法和方法是平行的,不能在方法中定义另一个方法
    • 方法的定义没有先后顺序

    2、方法的调用

    invoke:调用
    方法调用格式:因为方法是static修饰的,可以直接用方法所在类的名称调用。
    如果方法有返回类型,此时需要返回类型定义变量,接受方法返回的结果,并打印,这才有意义。
    调用方法的地方,可以称之为调用者

    二、方法的设计

    1、方法设计

    如何定义一个方法,主要是确定有没有参数,是什么参数,有没有返回,返回什么,这得结合具体需求来确定。
    形式参数:完成一个功能,存在哪些未知的因素,把它们作为参数
    返回类型:完成一个功能,要不要给调用者返回一个结果?
    如果需要给调用者返回结果,就写上返回数据的类型
    如果不需要给调用者返回结果,此时使用关键字void,表示无返回

    2、方法可变参数

    在方法中传递数组有一种更简单的方式——方法的可变参数,其本质是一个语法糖,目的是让开发者写代码更简单。
    方法的可变参数其底层是就是一个一维数组类型
    可变参数必须作为方法的最后一个参数,避免多个参数的歧义性
    推论:方法最多只有一个可变参数
    需求:定义一个方法,传入两个参数,一个double数组表示多个货品的价格,一个double类型的折扣,返回货品总价格(使用可变参数)

    static double getTotalPrice(double cutOff, double... arr) {
        double total = 0;
        for (double ele : arr) {
            total = total + ele;
        }
        return total * cutOff;
    }
    

    调用方法:

    public static void main(String[] args) {  
      double[] arr = new double[] { 10.0, 20.0, 30.0, 50.0, 30.0, 70.0, 90.0 };  
      double totalPrice = getTotalPrice(0.8, arr);   
     double totalPrice2 = getTotalPrice(0.8, 10.0, 20.0, 30.0, 50.0, 30.0, 70.0, 90.0);  
      System.out.println(totalPrice);}
    

    3、方法重载

    参数列表:参数的类型 + 参数的个数 + 参数的顺序
    方法签名:方法名称 + 方法参数列表,在同一个类中,方法签名是唯一的,否则编译报错
    方法的重载设计(Overload),表示在同一个类中,允许某方法存在一个以上的同名方法,只要它们的参数列表不同即可。
    方法重载判断原则:“两同一不同”
    两同:在同一个类中,方法名是相同的
    一不同:方法参数列表不同(参数类型、参数个数、参数顺序)
    只要参数类型、参数个数、参数顺序任意一个不同,就叫参数列表不同
    方法重载的作用:屏蔽了同一功能的方法由于参数不同所造成方法名称不同。
    注意:方法重载和方法的返回值类型无关,只是一般要求返回值类型相同。

    三、方法参数的值传递机制

    传递基本类型参数:传递参数值
    传递引用类型参数:传递参数所引用的堆空间地址值

    相关文章

      网友评论

          本文标题:方法

          本文链接:https://www.haomeiwen.com/subject/whrkaktx.html