方法的概念

命令型语言程序单元

程序的3类语句
• 声明语句(Declarative Statement) 定义了在程序中使用的需要自定义的术语
• 命令语句(Imperative Statement) 描述了潜在的算法里的步骤
• 注释(Comment) 一些解释说明,不被执行

命令型程序或程序单元的结构
image.png

过程和过程调用

过程就是实现一个任务的一组指令的集合,它能够被其它程序单元使用。
程序单元执行过程中,可以条用某个过程来完成一个特定任务。
image.png

声明方法的语法

image.png
方法的声明由三部分组成:方法的修饰符、方法头和方法体。其中,方法头和方法体是必须的,而方法修饰符可以有0个或多个。

调用方法

如何调用方法

• 使用“方法调用表达式”
(1)如果方法返回一个值,则对方法的调用表达式通常就当做一个值处理。

  1. int r = sum (10, 20);
  2. System.out.println(sum(1, 10));

(2)使用方法调用表达式语句
如果方法没有返回值,即返回值类型为void,则对方法调用必须使用方法调用表达式语句。

  1. System.out.println("The end.");

调用方法时的控制流转移与参数传递

• 控制流转移
- 当调用一个方法时,程序控制流就转移到被调用方法;当被调用方法执行完return语句或执行到表示方法结束的右大括号时,控制流返回到方法调用点,继续执行方调用点之后的下一条指令。
• 参数传递
- 当控制流从方法调用点转移到被调用方法时,同时会把实参的值传给形参;
- 当控制流从被调用方法返回方法调用点时,会带回返回值到方法调用点。
image.png
image.png
声明方法时定义的参数num1和num2是形式参数,简称形参。
调用方法时使用的参数x和y是实际参数,简称实参。
方法调用过程中,会把实的值传给形参。
方法返回的时候,会把返回值带回。
用这个例子分析方法调用过程中的控制流转移与值传递。
在Java中,调用方法时,会把实参的值专递给形参,而不会把实参的地址传递给形参,这称为值传递。

方法中的return语句

return语句用于方法的返回。当程序执行到return语句时,终止当前方法的执行,返回调用这个方法的语句。
对带回值的方法而言,return语句是必须的;对不带回值得方法,return语句可省略。

  1. package com.buptnu.sample;
  2. public class RetrunStatment
  3. {
  4. public static void main(String[] args)
  5. {
  6. // TODO Auto-generated method stub
  7. int i = 10, j = -5;
  8. System.out.println("The sign of " + i + " is " + sign(i) + ".");
  9. System.out.println("The sign of " + j + " is " + sign(j) + ".");
  10. }
  11. public static String sign(int n)
  12. {
  13. if (n > 0)
  14. return "Plus";
  15. else if (n == 0)
  16. return "Zero";
  17. else
  18. return "Minus";
  19. }
  20. }

变量作用域

• 变量的作用域 变量的作用域是指变量可以在程序中引用的范围。
• 局部变量
- 在方法中定义的变量称为局部变量。
- 局部变量的作用域从声明变量的地方开始,直到包含该变量的块结束为止。
- 局部变量必须在使用之前进行声明和赋值。
- 参数实际上就是一个局部变量。一个方法的参数的作用域涵盖整个方法。
image.png
可以在一个方法中的不同块里声明同名的局部变量,但是不能再嵌套块中或同一块中两次声明同一个局部变量。
image.png