方法

62 阅读2分钟

方法的定义

将重复高使用的代码封装为方法使用,提高程序的开发效率,提高代码书写质量

package com.itheima.define;

public class MethodsDemo1 {
    public static void main(String[] args){
        int rs=sum(10,20);
        System.out.println(rs);
    }
    public static int sum(int a,int b){
        int c = a + b;
        return c;
    }
}
  • 方法定义写在class类中,与main方法平级
  • 声明方法类型,并返回对应类型的返回值
  • 方法可以选择是否声明形参,当声明多个形参时,用逗号隔开,不能设置默认值
  • 当函数不需要返回数据时,需要将函数声明为void类型

方法的执行过程

image.png

  1. 将class文件在方法区中执行,将方法放入栈内存中执行
  2. 栈内存的执行方式是先进后出,将main方法放入后,将sum方法放入
  3. 执行main方法,当执行到sum调用时,将新参传入sum方法进行方法的执行,当方法执行结束后,将返回值返回给main的调用变量上,清除sum方法
  4. 继续执行main方法,当运行到调用方法,按照以上步骤运行,直到main方法的执行结束,清除main方法

方法的参数传递

  • 形参 声明方法时的临时存储变量
  • 实参 传递给形参的实际运算值
  • 基本数据类型参数的传递是值传递,传递的是实参的副本,被调用的方法中不会改变实参的值
  • 引用数据类型参数的传递是引用地址的传递,传递的是实参的地址,被调用的方法中会改变实参的值

方法的重载

一个类中,出现多个相同方法名,方法的形参不同,说明这个方法名的方法进行了重载 形参的个数、类型、顺序不同,不关心形参名称

package com.itheima.overload;

public class MethodOverloadDomo1 {
    public static void main(String[] args) {
    }

    public static void test() {
        System.out.println("test1");
    }

    public static void test(int a) {
        System.out.println("test2" + a);
    }

    void test(double a) {

    }

    void test(double a, int b) {

    }

    void test(int b, double a) {

    }

    int test(int a, int b) {
        return a + b;
    }
}
``