欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

方法的定义、调用、重载

程序员文章站 2024-03-25 23:55:52
...

方法

方法就是语句块的集合,包含于类或者对象中,实现某一个功能,相当于类的一个行为。

方法的设计原则:方法的本质就是一个功能。设计方法的时候,一个方法只完成一个功能,保持方法的原子性,有利于后期扩展。方法的命名规则采用驼峰标识法。

方法的定义

方法包含方法头和方法体,没有具体实现方法的方法属于抽象方法,方法头包含修饰符、返回值类型、方法名、参数类型。方法体包含具体的语句,定义该方法的功能。

  • 修饰符:(可选)定义该方法的访问类型,告诉编译器如何调用该方法。
  • 返回类型:有的方法功能实现完需要返回值,根据值的类型需要声明对应的数据类型,有的方法实现完功能但是没有返回值,这种情况返回值类型需要使用关键字void
  • 方法名:方法的实际名称,标识符。方法名与参数列表(参数个数,参数类型,参数排列顺序)共同构成方法签名。(唯一)
  • 参数类型:(可选)方法可以不包含参数。
  • 方法体:定义该方法的功能,方法体包含具体的实现语句。
修饰符 返回值类型 方法名(参数类型 形式参数){
    方法体
    //return 返回值;
}

方法的调用

  • 调用方法(没有static修饰):对象名.方法名(实参列表)
  • 当方法有返回值时,方法的调用通常被当作一个值,即把方法当成一个值赋值给变量。
int max = max(5,55);
  • 如果方法的返回类型是void的时候,方法的调用一定是一条语句。
System.out.println();

示例:

package method;

public class MaxDemo {
    public static void main(String[] args) {
        //这里a,b为实际参数,把5赋值给a,55赋值给b
        int max = max1(5,55);
        System.out.println(max);

        max2(55,66);
    }

    //定义一个比较大小的方法
    //a,b均属与形式参数,可不写。
    //不用static修饰方法的话,要调用方法需要实例化MaxDemo类,通过对象调用方法
    public static int max1(int a,int b){
        //定义一个变量result,用于存放比较结果。
        int result = 0;
        if(a>b){
            result = a;
        }else{
            result = b;
        }
        return result;
    }
    
    public static void max2(int a,int b){
        int result = 0;
        if(a>b){
            result = a;
        }else{
            result = b;
        }
        System.out.println(result);
    }
}

方法的定义、调用、重载

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数。

方法的重载的规则:

  • 方法名必须相同
  • 参数列表(参数类型,参数个数,参数的排列顺序)必须不同
  • 方法的返回类型可以相同也可以不同。
  • 返回类型不同不足以成为方法的重载。

实现的原理:方法名称相同时,编译器会根据调用方法的参数个数,参数类型等取逐个匹配,选择对应的方法,如果匹配失败,则编译器会报错。

示例(求两个整数的均值和求两个小数的均值):

public class MethodOverload {
    //方法的重载
    public static void main(String[] args) {
        //整数
        int resultInt = avg(15,20);
        System.out.println(resultInt);
        //小数
        double resultDouble = avg(1.11,3.33);
        System.out.println(resultDouble);
    }
    //求两个整数的平均数
    public static int avg(int a,int b){
        return (a+b)/2;
    }
    //求两个小数的平均数
    public static double avg(double a,double b){
        return (a+b)/2;
    }
}

方法的定义、调用、重载