W pierwszej linii programu informujemy, że będziemy korzystali z klasy Scanner z biblioteki util javy. Klasa Scanner zostanie użyta do wczytywania danych wejściowych w naszym programie. W języku java wykonywanie programu rozpoczyna się od wywołania publicznej funkcji statycznej main() zawartej w klasie, której nazwa jest zgodna z nazwą programu (program musi zostać zapisany w pliku Sil_rek.java i następnie skompilowany do pliku Sil_rek.class). Definicja klasy Sil_rek rozpoczyna się w 3 linii programu. Linia 4 zawiera początek definicji funkcji main, jest to początek realizacji naszego algorytmu (blok START (1)). W kolejnej linii deklarujemy zmienną n typu integer, której za chwilę użyjemy do wczytania z klawiatury argumengtu funkcji silnia. W javie zmienne można deklarować w dowolnym miejscu przed ich użyciem, dlatego nie deklarujemy tutaj od razu zmiennej wynik. W 6 linii deklarujemy i inicjujemy zmienną klaw jako obiekt typu Scanner. Podajemy, że źródłem danych tekstowych będzie strumień System.in, czyli klawiatura.
Linie od 7 i 8 realizują operację wejścia/wyjścia (2), w której pobierane są dane wejściowe - n, liczba, dla której chcemy obliczyć wartość funkcji silnia.
W linii 9 deklarujemy zmienną wynik i przypisujemy do niej wynik działania funkcji silnia wywołanej z argumentem n.
W liniach 10 do 11 wypisujemy otrzymany wynik (blok wejścia-wyjścia (6)).
Nawias klamrowy } z linii 12 kończy funkcję main i zarazem działanie całego programu (blok końca algorytmu (7)).
W linii 15 deklarujemy funkcję silnia, którą użyliśmy w funkcji main. Funkcja będąca metodą tej samej klasy nie musi zostać zadeklarowana wcześniej, przed użyciem. Funkcja silnia przyjmuje jeden argument typu całkowitego (n) i zwraca w wyniku liczbę całkowitą. omiędzy nawiasami logicznymi { z końca linii 15 i } z linii 20 zawarte jest ciało funkcji - zestaw instrukcji wykonywany przez program po wywołaniu tej funkcji.
W linii 16 sprawdzamy czy n jest większe od 1 - blok (3) algorytmu. Jeżeli tak to w linii 17 określamy wynik funkcji jako n pomnożone przez wartość funkcji silnia (tej samej funkcji silnia, którą aktualnie definiujemy) dla n pomniejszonego o 1 (4). W tym miejscu funkcja silnia wywołuje samą siebie. Taką funkcję nazywamy funkcją rekurencyjną. Jeśli n nie jest większe od 1 to w linii 19 ustalamy wynik funkcji równy 1 (warunek zakończenia rekurencji) - blok (5).
Nawias klamrowy } z linii 20 kończy funkcję silnia, natomiast nawias klamrowy w linii 22 kończy definicję klasy Sil_rek.