Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Java的一些基础知识点复习 #83

@QiYongchuan

Description

@QiYongchuan

方法的重载 overload

定义:一个类中方法名字相同,但是参数列表不同的方法。

注意:重载的方法,就是不同的方法,只是名称相同而已。
image

  • 形参的数量不同
  • 形参的类型不同
    均可以构成方法的重载(也就是说是不同的方法)
    static void add(){
        
    }
    static void add(int a,int b)
    {
        System.out.println(a+b);
    }
    static void add(double a,double b)
    {
        System.out.println(a+b);
    }

当返回值不同时,但形参形同时,无法构成

   static int add(int a,int b,int c){
        System.out.println(a+b+c);
        return a+b+c;
    }
    static double add(int a,int b,int c){
        System.out.println(a+b+c);
        return a+b+c;
    }

方法的调用机制

  • 当程序执行到方法时,会在栈中单独开一个空间(栈空间)
  • 执行完毕,或者执行到return语句后,就会返回到 调用方法的地方
  • 同理,main方法栈执行完毕之后,栈空间也会回收,整个程序退出

image

方法的传参

  • 基本数据类型传参:形参不影响实参的传递(本质上栈中main方法区与swap方法区是两个区,两者不会相互影响)
  • 引用数据类型传参:传递过程传递的其实是地址,所以栈方法指向的空间和main主方法指向的空间是一致的
    image

可变参数

Java中允许同一个类中多个同名 同功能但是参数个数不同的方法,封装成一个方法。

==>对方法重载的一种优化,不用因为参数个数不同而写多个方法了
image

可以把传入的参数nums 视为数组

    public int getSum(int... nums) {
        System.out.println("参数的个数" + nums.length);
        int tolNums = 0;
        for (int i = 0; i < nums.length; i++) {

            tolNums += nums[i];
        }
        return tolNums;
    }
  • 可以直接传递一个数组
  • 可变参数可以和普通类型参数放在一起传参,但是必须保证可变参数放在最后
  • 一个形参列表只允许出现一个可变参数,不可以多个可变参数一块。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions