Cursos / Informática para Internet / Programação Estruturada / Aula
Para entender a motivação das enumerações, vamos primeiro imaginar que precisamos declarar uma variável para representar o dia da semana no qual ocorreu a venda de um produto. Qual seria o tipo de dados que você utilizaria para declarar essa variável? Uma opção seria declará-la como do tipo int, usando os números de 1 a 7 para representar os dias da semana (domingo, segunda-feira, ..., sexta-feira). Outra opção seria usar caracteres ou Strings.
Pensando na variável declarada como do tipo int, temos os seguintes problemas:
Para contornar esses problemas, existe um recurso interessante que algumas linguagens fornecem: as enumerações. De forma geral, uma enumeração é um tipo de dados cujos valores são determinados por um conjunto fixo de constantes. Por exemplo, podemos declarar a seguinte enumeração em Java para representar os dias da semana:
Assim como as classes, enumerações em Java precisam ser criadas em arquivos separados. Observe o uso de public enum ao invés de public class na primeira linha da declaração da enumeração. Muitos ambientes de desenvolvimento Java possuem uma opção de menu para criar uma nova enumeração, assim como acontece com a criação de classes.
Ao invés de conterem variáveis e rotinas, as enumerações em Java contêm uma lista de constantes que representam os possíveis valores da enumeração. No caso do exemplo mostrado, existe uma constante para cada dia da semana. Note que as constantes não são declaradas como valores 1, 2, 3, etc., mas sim como nomes intuitivos sobre o que cada uma das constantes representa.
Uma vez declaradas as constantes da enumeração, fazemos uso delas da seguinte forma:
Note a declaração da variável “diaSemana” na rotina “main()” como do tipo “EnumDiaSemana”. Para lermos um valor para essa variável do teclado, temos que usar algum artifício como o mostrado pela função “pegarDiaSemana()”. Do teclado, nós lemos um número e depois convertemos seu valor para uma das opções da enumeração, como mostrado dentro do código da função “pegarDiaSemana()”.
Com a variável inicializada, podemos criar programas para manipular esse valor. Por fim, quando precisarmos imprimir essa informação na tela, faremos novamente uma conversão. Isto é mostrado pela função “nomeDiaSemana()”. Essa função recebe um valor do tipo “EnumDiaSemana” e converte para uma String que melhor representa o valor recebido. Na rotina “main()”, essa String é então utilizada para apresentar a informação para o usuário.
Versão 5.3 - Todos os Direitos reservados