Um tipo de dados define uma coleção de valores de dados e um conjunto de operações pré-definidas sobre ele. O sistema de tipos de uma linguagem de programação define como um tipo é associado com cada expressão na linguagem e inclui suas regras para equivalência e compatibilidade de tipos. Entender seu sistema de tipos é uma das partes mais importantes para entender a semântica de uma linguagem de programação. De acordo com essa afirmação e com os conceitos da linguagem de programação Java, é correto afirmar que:
- A)o tipo de dado matriz é um agregado homogêneo de elementos de dados no qual um elemento individual é identificado por sua posição na agregação. Na linguagem Java, os elementos de uma matriz não precisam ser do mesmo tipo
Errada, porque em Java uma matriz/array e homogenea quanto ao tipo dos elementos, ainda que possa armazenar objetos de referencia compatíveis por polimorfismo.
- B)a enumeração é um tipo de dado ordinal definido pelo usuário e fornece uma maneira de declarar e agrupar coleções de constantes nomeadas
Certa, porque enum em Java define um tipo proprio com constantes nomeadas, funcionando como uma enumeracao criada pelo usuario.
- C)um ponteiro em Java é um tipo de dado em que as variáveis têm uma faixa de valores que consistem em endereços de memória
Errada, porque Java nao expõe ponteiros como tipo de dado para o programador; a linguagem usa referencias de objetos, nao enderecos manipulados diretamente.
- D)a herança múltipla na linguagem Java segue o mesmo formato e comportamento da linguagem C++
Errada, porque Java nao adota heranca multipla de classes como C++; ela permite uma classe estender apenas uma classe e implementar varias interfaces.
Gabarito: B
Quando a questao fala em sistema de tipos, ela esta puxando sua atencao para a forma como a linguagem organiza valores, variaveis e regras de uso. Em Java, isso aparece muito claramente em tipos primitivos, classes, arrays e enums, cada um com seu papel bem definido. O ponto central aqui eh perceber que a linguagem nao trata tudo como texto solto: ela classifica os dados e impõe limites para evitar confusao, como tentar somar banana com calculadora sem avisar o compilador. No caso das enumeracoes, Java oferece um tipo especial para representar um conjunto fixo de constantes nomeadas. Isso facilita a leitura, melhora a seguranca de tipos e evita o uso de valores magicos espalhados no codigo. Em termos conceituais, a enumeração eh um tipo de dado definido pelo usuario, com comportamento semelhante a um tipo ordinal, pois seus valores sao finitos e ordenados na declaracao. Por isso o gabarito esta na alternativa B. Ela descreve corretamente a enumeração como um tipo de dado ordinal definido pelo usuario que agrupa constantes nomeadas. Em Java, enum nao eh apenas um conjunto de constantes soltas: ele cria um tipo proprio, com valor bem definido, podendo inclusive ter metodos e atributos. A base conceitual vem da propria especificacao da linguagem Java, que trata enum como uma forma especial de classe. As demais alternativas escorregam em pontos importantes. Arrays em Java sao homogeneos quanto ao tipo dos elementos, nao heterogeneos. Java tambem nao tem ponteiros expostos como C ou C++, e heranca multipla de classes nao funciona como em C++; em Java, a heranca de implementacao e unica, embora uma classe possa implementar varias interfaces.