1、方法概述

方法(method)就是一段具有独立功能的代码,可以在使用的时候就行调用,不使用就不调用。
作用:提高了代码的复用性。
方法使用前提须知:1、方法必须先创建才可以使用,该过程称为方法定义。2、方法创建后并不是直接运行的,需要手动使用后才执行。该过程称为方法调用。

2、方法的定义和调用

方法的定义:

  1. public static void 方法名(){
  2. }

方法的调用:
方法名();
方法必须先定义才可以调用,方法与方法直接时平级关系,就是说不能在方法中创建方法。

3、方法在内存中的调用过程

1、方法没有被调用的时候,都在方法区中的字节码文件中存储。
2、方法被调用的时候,需要进入到栈内存中运行。
方法 - 图1
方法加载进栈内存时,是先进后出。

  1. 调用main方法
  2. 将main方法加载进栈内存
  3. main方法调用eat方法
  4. 将eat方法加载进栈内存
  5. 执行eat方法内容
  6. 执行eat方法内容完毕,栈内存弹出eat方法
  7. main方法执行完毕
  8. 栈内存弹出main方法
  9. 程序结束

    4、带参数的方法定义和调用

    定义格式:public static void 方法名(数据类型 变量名1,数据类型 变量名2,...){.....}
    调用格式:方法名(参数1,参数2,...);
    注意:1、方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
    2、方法定义时,多个参数之间用逗号(,)分隔

    5、形参和实参

    形参:全称形式参数,是指方法定义中的参数。
    实参:全称实际参数,是指方法调用中的参数。

    6、带有返回值的方法定义和调用

    定义格式:
    1. public static 数据类型 方法名(数据类型 变量名1,...) {
    2. return 数据;
    3. }
    方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序会报错。
    调用格式:数据类型 变量名 = 方法名(参数1,...);
    方法的返回值通常会使用变量接受,否则该返回值将无意义。

    7、方法的通用格式

    1. public static 返回值类型 方法名(参数){
    2. 方法体;
    3. return 数据
    4. }
  • public static 修饰符
  • 返回值类型 方法操作完毕之后返回的结果数据,所对应的数据类型
    如果方法操作完毕,没有数据返回,这里写void,而且方法中一般不写return
  • 方法名 调用方法时候使用的标识
  • 参数 由数据类型和变量名组成。多个参数之间用逗号隔开
  • 方法体 完成功能的代码块
  • return 如果方法操作完毕,有数据返回,用于把数据返回给调用者
  • 定义方法时,要做到两个明确
    明确参数:主要是明确参数的类型和数量
    明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
  • 调用方法时
    void类型的方法直接调用即可
    非void类型的方法,推荐用变量接收调用

    8、方法的注意事项

  • 方法不能嵌套定义

  • 方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写
    如果要编写return,后面不能跟具体的数据。
  • return语句下面,不能编写代码,因为永远执行不到,属于无效代码。
  • return; 可以用于结束代码,也就是将方法从栈内存中弹出去,该过程称之为方法的弹栈。

    9、方法重载

  • 在同一个类中,定义了多个同名的方法,但每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。

  • 简单记:同一个类中,方法名相同,参数不同的方法
    参数不同:个数不同、类型不同、顺序不同

注意:世界方法之间是否是重载关系,只看方法名和参数,跟返回值无关。
方法重载的好处,不用记忆过多繁琐的方法名字。

10、方法的参数传递

方法参数传递为基本数据类型:传入方法中的,是具体的数值。
方法参数传递为引用数据类型:传入方法中的,是内存中的地址。
return语句只能带回一个数据,如果要返回多个数据,可以用数组类型返回。