Fatorial Java

Galera, conseguem me ajudar neste código?

Sei fazer fatorial no java, é que esse Main que o professor passou me deixou confuso.

public class Fatorial {
 // Colocar a lista de atributos que achar necessário.
 public Fatorial () {
 // implementar o código do construtor.
 }
 public void proximoValor () {
 // implementar o código
 }
 public int valorAtual () {
 // implementar o código
 }
 public static void main (String[] args) {
 int quantidade = Integer.parseInt(args[0]);
 Fatorial pg = new Fatorial();
 for (int i=0; i<quantidadeElementos; i++) {
 System.out.print (pg.valorAtual() + " ");
 pg.proximoValor();
 }
 }
}

Pelo que eu entendi, o programa recebe um número e calcula todos os fatoriais de 0 até aquele número (sem o incluir). Por exemplo, se a entrada é 6, a saída do programa é:

1, 1, 2, 6, 24, 120

Para implementar a solução que ele concebeu, você precisa fazer com que o objeto do tipo Fatorial mantenha em seu estado interno qual o último fatorial calculado, e o último inteiro utilizado para calcular aquele fatorial. Toda vez que o método proximoValor() for chamado, você incrementa o inteiro e multiplica o último fatorial por esse número novo.