Ich glaube dich verwirrt das return.
Das Schlüsselwort "return" zeigt an, dass eine Methode hier abgebrochen wird, wenn eine Methode nicht vom Typ "void" ist muss hinter return noch der Wert stehen, dessen Typs die Methode ist. Also bei der public int Methode muss für jeden möglichen Weg (bei bed. Anw. gibt es mehrere Wege: if und else) ein Integer zurückgegeben werden. Also muss bei der fak Methode natürlich ein return stehen, aber das bedeutet nicht, dass das in der Konsole ausgegeben wird. Um in die Konsole zu schreiben musst du die Methode System.out.println() aufrufen.
Nochmal als Verdeutlichung:
Eine Methode berechnet immer etwas. Also eine Integer Methode ist eine Methode, die etwas berechnet und dann hinterher eine Zahl zurückgibt.
Eine void-Methode berechnet auch, gibt aber kein Ergebnis zurück.
Daher das wäre das vielleicht einleuchtender:
public class MyClass{
public static int fak(int n){
//Gebe folgenden Wert als Ergebnis zurück:
return (n<2)? 1 : n*fak(n);
}
public static void main(String[] args){
int fakultaetVon5 = fak(5);
System.out.println(""+fakultaetVon5);
}
}