(七)方法

一、方法的定义和调用

1.1 方法

  • 方法用于定义可重用的代码及组织和简化代码
  • 在其他某些语言中,方法称为 过程 或者 函数

1.2 方法的定义

① 方法由修饰符、返回值类型、方法名、参数列表和方法体组成。

modifier returnValueType methodName(formalParams){
        methodPart
}

② 举例

public static int max(int num1, int num2){
        int result;
        if(num1 > num2){
                result = num1;
        } else {
                result = num2;
        }
        return result;
}

③ 注意

  • static 是静态修饰符,一般都是用这个;
  • 定义在方法头中的参数称为 形参,但调用方法时给方法传递的的参数称为 实参

  • 当方法有返回值时,称为 带返回值方法;当没有返回值则称为 void 方法,此时 returnVulueTypevoid

1.3 方法的调用

① 方法的调用是指执行方法中的代码。

② 调用方法

  • 当方法有返回值,就把方法当作一个值调用;

    1. 有返回值的方法的调用也可以当作语句调用
    2. 对于带返回值的方法而言,return 语句是必需的。
  • 当方法没有返回值,必须使用语句来调用方法。

③ 开始时,程序控制权掌握在main 方法手里;main 调用了方法后,程序控制权转移到被调用的方法,(若有参数,则将实参传递给方法)执行完方法体的代码后控制权又还给了 main 方法

main 方法是由 Java虚拟机调用的。main 方法头固定,修饰符是 public , static, 返回值类型是 void,方法名是 main,形参 String[] args 表示参数是一个 String 型数组。

⑤ 每次调用一个方法,系统会开辟一段内存区域——调用堆栈 ,来保存方法中的参数和变量。可以用堆栈的思想来理解方法的调用过程。

1.4 关于 void 方法

  • void 方法不需要 return 语句,但它能用于流程控制,用于结束方法

    if (score <= 0) {
            return;
    }
    

1.5 按值传递

① 按值传递是指按照实参的值传递给形参。

② 实参与形参在次序和数量上要相匹配,类型要兼容。(类型兼容是指可以进行隐式转换,例如int可以传给double)

③ 当实参是一个变量的时候,按值传参后不改变这个变量(实参)。

④ 形参在方法内部拥有自己的内存空间,在调用时分配。

二、模块化代码和方法的重载

2.1 模块化代码

模块化代码是指将不同功能的代码分入不同方法。

模块化使得代码易于维护、调试和复用。

2.2 方法的重载

Java允许使用同一个方法名定义不同方法,但参数的类型和数量不同,称为方法的重载。

当需要调用哪一个就使用对应参数调用,Java方法总是寻求最精确匹配的方法。

三、局部变量

局部变量的作用域从声明的地方到包含该方法的块结束。

可以再非嵌套块中声明同名局部变量,但不可以在嵌套块中。