Java方法

扫码查看

方法概述

为了避免重复的代码过多,Java中提出了方法的概念。方法就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。

方法的定义

方法的专业术语

  • 参数:进入方法的数据
  • 返回值:从方法中出来的数据
定义格式:

格式详解:

  • 修饰符:现阶段的固定写法,public static。具体怎么写,根据需求来确定
  • 返回值类型:也就是方法最终产生的数据结果是什么类型
  • 方法名称:方法的名字,规则和变量一样,小驼峰
  • 参数类型:进入方法的数据是什么类型
  • 参数名称:进入方法的数据对应的变量名称。注意:参数如果有多个,使用逗号进行分隔
  • 方法体:方法需要做的事情,若干行代码
  • return:两个作用,第一停止当前方法,第二将后面的返回值还给调用处
  • 返回值:也就是方法执行后最终产生的数据结果。注意:return后面的“返回值”,必须和方法名称前面的“返回值类型”,保持对应。

注意:

如果要定义一个方法就必须两个明确。明确返回值类型,明确参数列表。

如何确定方法是否有要定义参数

  • 有参数:方法需要一些外界数据条件,才能完成方法的功能主体的时候,就必须定义参数。例如:两个数字相加,必须知道两个数字是各自多少,才能相加。
  • 无参数:方法不需要任何外界数据条件,自己就能独立完成方法功能主体,就可以定义为无参数。例如:定义一个方法,打印10次HelloWorld。

如何确定方法是否有要定义返回值

  • 有返回值:方法的运行结果,外界的代码还需要使用,必须定义返回值。例如:求 和
  • 无返回值:方法的运行结果,外界的代码无需在使用,可以不定义返回值。例如:打印 hello world

注意事项:

  • 对于有返回值的方法,可以使用单独调用、打印调用或者赋值调用。
  • 但是对于无返回值的方法,只能使用单独调用,不能使用打印调用或者赋值调用。

调用方法的三种形式

  • 直接调用:直接写方法名调用
  • 赋值调用:调用方法,在方法前面定义变量,接收方法返回值
  • 输出语句调用: 在输出语句中调用方法, System.out.println(方法名()) 。

需求

定义2个int 数字相加的方法

分析:定义方法的两个明确

  • 明确返回值类型:方法计算的是整数的求和,结果也必然是个整数,返回值类型定义为int类型。
  • 明确参数列表:计算哪两个整数的和,并不清楚,但可以确定是整数,参数列表可以定义两个int类型的 变量,由调用者调用方法时传递

代码实现

package demo02;

public class MyDemo02MethodDefine {
    public static void main(String[] args) {
        //直接调用
        getSum(1, 2);
        //赋值调用
        int result = getSum(3, 4);
        System.out.println("2个int数的和是" + result);
        //输出语句调用:
        System.out.println(getSum(5, 6));
    }

    public static int getSum(int i, int j) {
        System.out.println("方法执行了");
        //方法体
        int result = i + j;
        //返回结果到方法的调用处
        return result;
    }

}

代码运行之后结果

调用方法的流程图解

使用方法的时候,注意事项:

  • 方法应该定义在类当中,但是不能在方法当中再定义方法。不能嵌套。
  • 方法定义的前后顺序无所谓。
  • 方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。
  • 如果方法有返回值,那么必须写上“return 返回值;”,不能没有。
  • return后面的返回值数据,必须和方法的返回值类型,对应起来。
  • 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己。
  • 对于void方法当中最后一行的return可以省略不写。
  •  一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。

代码举例

public class Demo04MethodNotice {

    public static int method1() {
        return 10;
    }

    public static void method2() {
//        return 10; // 错误的写法!方法没有返回值,return后面就不能写返回值。
        return; // 没有返回值,只是结束方法的执行而已。
    }

    public static void method3() {
        System.out.println("AAA");
        System.out.println("BBB");
//        return; // 最后一行的return可以省略不写。
    }

    public static int getMax(int a, int b) {
        /*int max;
        if (a > b) {
            max = a;
        } else {
            max = b;
        }
        return max;*/

        if (a > b) {
            return a;
        } else {
            return b;
        }
    }

}
01-06 14:22
查看更多