为一段给定的代码添加注释，解释该段代码的功能和实现方法。


以下是一段Java代码：
public static int factorial(int num) {
    if (num == 0)
        return 1;
    else
        return(num * factorial(num-1));
}
这是一个计算阶乘的函数，实现方法为递归。

/**
 * 计算阶乘
 * @param num 阶乘数
 * @return num的阶乘
 */
public static int factorial(int num) {
    if (num == 0) //当num等于0时，返回1
        return 1; 
    else
        return(num * factorial(num-1)); //否则通过递归，返回num的阶乘
}