Classe pronta e comentada, faltando o código comentado e com implementação completa do main()