方法的定义

方法的定义

方法是一段封装了特定业务逻辑功能的代码,给它起一个名称,通过名称可以反复调用执行。

方法的设计原则

原则说明
单一职责一个方法只干一件事,尽可能独立
可重复调用定义一次,多处反复调用
可互相调用方法可以调用其他方法,也可以被其他方法调用
减少重复避免代码冗余,提高可维护性
利于协作不同开发者负责不同方法,互不干扰

方法的定义格式

修饰符 返回值类型 方法名(参数列表) {
    方法体;
    return 返回值; // 返回值类型为 void 时不需要
}Code language: JavaScript (javascript)

曾经用过的方法

在之前的代码中其实已经大量使用了方法:

System.out.println("hello foxdevelop.com");   // 输出方法
System.arraycopy(a, 0, b, 0, 3);             // 数组复制方法
Arrays.sort(a);                               // 数组排序方法
int a = scan.nextInt();                       // 读取整型输入
double b = scan.nextDouble();                 // 读取浮点型输入
double c = Math.random();                     // 生成随机数
int[] d = Arrays.copyOf(a, a.length);         // 数组复制方法Code language: JavaScript (javascript)

方法的返回值

类型说明示例
无返回值用 void 表示,不返回数据public static void main(String[] args)
有返回值写具体的返回值类型,方法体中用 return 返回public static int add(int a, int b)
// 无返回值
public static void printHello() {
    System.out.println("hello");
}

// 有返回值
public static int add(int a, int b) {
    return a + b;
}Code language: PHP (php)

方法的参数

参数相当于原材料,传入方法后经过加工处理,可以返回结果(产品)。

public static int multiply(int a, int b) {
    return a * b;
}
// 调用
int result = multiply(3, 7); // 传入 3 和 7,返回 21Code language: PHP (php)
  • 方法可以无参数:public static void sayHi() { ... }
  • 方法可以有参数:public static void sayHi(String name) { ... }
  • 参数可以有多个,用逗号隔开:(int a, double b, String c)

完整示例

public static void main(String[] args) {
    System.out.println("www.foxdevelop.com");
    Scanner scan = new Scanner(System.in);
    int a = scan.nextInt();
}Code language: JavaScript (javascript)

上述代码中:

调用方法返回值类型参数
System.out.println(...)输出void1 个(字符串)
scan.nextInt()读取整数int无
scan.nextDouble()读取浮点数double无

方法调用过程

  1. 执行到方法调用处,跳转到被调用的方法
  2. 将实参传递给形参
  3. 执行方法体
  4. 遇到 return 或方法体结束,返回调用处继续执行

注意事项

要点说明
命名规范小驼峰命名法,见名知意(如 calculateSum)
参数传递基本类型是值传递,引用类型是地址传递
return有返回值的方法必须保证每条路径都有 return
方法不能嵌套方法内部不能再定义另一个方法,但可以在一个方法中调用其他方法

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注