Java教程

Java方法

本文主要是介绍Java方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

方法

语句的集合,它们在一起执行一个功能

  • 方法是解决一类问题的步骤的有序组合
  • 方法包含在类或对象中
  • 方法在程序中被创建,在其他地方被引用

设计原则

  • 方法本意是功能块,实现某个功能的语句块的集合
  • 保持方法的原子性,一个方法只完成一个功能,利于后期维护与扩展

方法定义

方法包含一个方法头和一个方法体

  • 修饰符:修饰符,可选,告诉编译器如何调用该方法。定义了该方法的访问类型。
  • 返回值类型:方法可能有返回值。returnValueType是方法返回值的数据类型。
  • 方法名:方法实际名称。方法名和参数表共同构成方法签名。
  • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参/变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以没有参数。
    • 形式参数:在方法被调用时,用于接收外界输入的数据。
    • 实际参数:调用方法时实际传给方法的数据。
  • 方法体:方法体包含具体的语句,定义该方法的功能。

方法的重载

重载是在一个类中,有相同的方法名,不同的形参

重载规则

  • 方法名称必须相同
  • 参数列表必须不同(个数、类型、参数排列顺序等)
  • 方法的返回类可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

Main方法传参

package method;

public class MainMethod {
    public static void main(String[] args) {
        for (String arg : args) {
            System.out.println(arg);
        }
    }
}
# 编译
D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>javac MainMethod.java
# 运行
D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>java MainMethod
错误: 找不到或无法加载主类 MainMethod
# 无法直接运行,需要到src目录下
D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>cd ..
# 包名.类名,运行成功,但无输出,因没有传递参数
D:\KuangStudy\CODE\JavaSE\BaseGrammar\src>java method.MainMethod
# 运行,传递'this is main method'
D:\KuangStudy\CODE\JavaSE\BaseGrammar\src>java method.MainMethod this is main method
this
is
main
method

方法的可变参数

  • JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法
  • 在方法声明中,在指定参数类型后加一个省略号(...
  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明
public static void main(String[] args) {
    double sum = 0;
    sum = add(sum, 1, 2, 3, 4, 5);
    System.out.println(sum);
}
public static double add(double sum, int... arg) {
    for (int i : arg) {
        sum += i;
    }
    return sum;
}

递归

  1. Java栈是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。

  2. 递归会多次调用方法,易导致栈溢出。

递归结构

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
  • 递归体:什么时候需要调用自身方法。
// 计算n!
public int calc(int n) {
    if (n == 1) {
        return n;
    } else {
        return n * calc(n - 1);
    }
}
这篇关于Java方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!