Ir para o conteúdo

Questões sobre Imutabilidade

Questão 1
O que caracteriza um objeto imutável?
  • A. Seus atributos podem ser alterados a qualquer momento.
  • B. Seu estado não pode ser alterado após a criação.
  • C. Possui obrigatoriamente métodos setters.
  • D. Pode ter apenas atributos públicos.
  • Questão 2
    Qual palavra reservada do Java é frequentemente utilizada para implementar imutabilidade em atributos?
  • A. static
  • B. abstract
  • C. final
  • D. protected
  • Questão 3
    Qual das práticas abaixo é recomendada para criar uma classe imutável?
  • A. Declarar atributos como public.
  • B. Fornecer métodos setters para todos os atributos.
  • C. Declarar atributos como private e final.
  • D. Permitir acesso direto aos atributos.
  • Questão 4
    Uma classe possui apenas atributos private final, mas também possui métodos setters. Ela pode ser considerada imutável?
  • A. Sim, porque os atributos são final.
  • B. Não, pois métodos setters permitem alterar o estado.
  • C. Sim, desde que utilize construtor.
  • D. Sim, porque final garante imutabilidade completa.
  • Questão 5
    Analise o código abaixo.
    
    class Person {
        private final String name;
    
        public Person(String name) {
            this.name = name;
        }
    
        public String name() {
            return name;
        }
    }
    

    Qual característica torna essa classe imutável?
  • A. O método name() retorna String.
  • B. O atributo é final e não existe setter.
  • C. O atributo é privado.
  • D. O construtor recebe parâmetros.
  • Questão 6
    Qual afirmação sobre atributos final é correta?
  • A. Impedem qualquer alteração no estado interno dos objetos referenciados.
  • B. Impedem a reatribuição da variável após a inicialização.
  • C. Tornam automaticamente a classe imutável.
  • D. Permitem alterar o valor apenas uma vez por método.
  • Questão 7
    Analise o código abaixo.
    
    class Team {
        private final List members = new ArrayList<>();
    
        public List getMembers() {
            return members;
        }
    }
    

    Qual afirmação é correta?
  • A. A lista não pode receber novos elementos.
  • B. O atributo members pode apontar para outra lista.
  • C. A referência é final, mas os elementos da lista podem ser alterados.
  • D. A classe é obrigatoriamente imutável.
  • Questão 8
    Como objetos imutáveis normalmente realizam modificações em seus dados?
  • A. Alterando diretamente os atributos privados.
  • B. Utilizando métodos setters.
  • C. Criando uma nova instância com os dados modificados.
  • D. Tornando os atributos públicos temporariamente.
  • Questão 9
    O que é um record em Java?
  • A. Um tipo especial para representar objetos de dados imutáveis.
  • B. Uma interface para armazenar registros em arquivos.
  • C. Um tipo de coleção da API Collections.
  • D. Um substituto para classes abstratas.
  • Questão 10
    Ao declarar um record, quais elementos são gerados automaticamente pelo compilador?
  • A. Apenas os atributos.
  • B. Apenas os getters.
  • C. Construtor, métodos de acesso, equals, hashCode e toString.
  • D. Apenas equals e hashCode.