Na orientação a objetos, construtores e destrutores são méto...
I. Em DELPHI, uma chamada do tipo MeuVeiculo := TVeiculo.Create; invocará o construtor padrão TObject.
II. Em DELPHI, linhas de código do tipo MeuVeiculo.Destroy; e MeuVeiculo : = nil; libera a memória que foi alocada para o objeto MeuVeiculo, como também limpa a referência a ele.
III. Em JAVA, se nenhum construtor for explicitamente definido pelo programador da classe, um construtor padrão é incluído para a classe pelo compilador Java.
IV. Java possui uma gerência automática de memória, ou seja, quando um objeto não é mais referenciado pelo programa, é automaticamente destruído.
Está correto o que se afirma e
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - I, II, III e IV.
A questão aborda os conceitos centrais da programação orientada a objetos (POO) com foco nos construtores e destrutores em duas linguagens de programação: Delphi e Java. Para resolver esta questão, é necessário entender o funcionamento desses métodos nas respectivas linguagens.
I. Em Delphi, ao criar um objeto com TVeiculo.Create, estamos chamando um construtor da classe TVeiculo. Se não houver um construtor explícito na classe TVeiculo, o Delphi chama o construtor padrão da classe base, que é TObject. Isso está correto.
II. O código MeuVeiculo.Destroy no Delphi é usado para destruir um objeto explicitamente. No entanto, é boa prática usar a instrução Free no lugar de Destroy, pois Free verifica se o objeto é diferente de nil antes de chamar Destroy. Atribuir nil a um ponteiro de objeto serve para evitar acessar memória que já foi liberada, o que poderia causar erros. Esta afirmação também está correta.
III. No Java, se uma classe não tiver um construtor definido pelo programador, o compilador fornecerá um construtor padrão sem parâmetros que não faz nada, exceto invocar o construtor da superclasse. Assim, esta afirmação é verdadeira.
IV. Java tem um sistema de gerenciamento de memória chamado coletor de lixo (garbage collector). Quando um objeto não é mais referenciado, ou seja, nenhum outro objeto ou variável mantém uma referência a ele, o coletor de lixo pode, eventualmente, liberar a memória ocupada por ele. Portanto, essa afirmação é correta.
Com base nessas explicações, todas as afirmações I, II, III e IV são verdadeiras, o que torna a alternativa E a resposta correta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Opção III: você não precisa criar construtores para toda classe, quando você não cria construtores, um construtor padrão é criado automaticamente.
Opção IV: refere-se a garbage collection. a GC limpa automaticamente objetos sem vinculos.
Não conheco DELPHI, por isso nao posso comentar as outras afirmaçoes.
@DanJuh CasalConcurseiro, em Java, o código fonte é compilado para bytecode e o bytecode é interpretado pela máquina virtual Java. Logo, é correto afirmar que o compilador cria automaticamente um construtor default caso nenhum seja informado.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo