Khan Academy: "Defining a Factorial Function", "Diagramming What Happens with a Function Call", "Recursive Factorial Function", and "Comparing Iterative and Recursive Factorial Functions"
The first video implements factorial as a function. Please note that a 'method' is often referred to as 'function' in some programming languages. The above resource uses the term 'function' instead of 'method' as the concepts are explained using Python.
The second video verifies the function design by manually diagramming what happens statement by statement and function call by function call. This lecture also introduces variable scoping.
The third video introduces recursion by implementing the factorial function using recursion. If you are familiar with proof by induction in mathematics, you will notice its conceptual similarity with recursion. Some verification is done by running the program for several cases.
The fourth video compares the loop implementation with the recursive implementation of the factorial function by stepping through them, side by side, using the same example inputs.
Please note that though these video lectures use Python programming language to explain methods/functions, the basic idea of method and method call is the same in Java programming language.