Você está na página 1de 2

Exercício de Revisão da Questão 5 – N2 – Técnicas Avançadas de Programação

1- Um método construtor em uma classe tem o benefício de inicializar os atributos da


classe quando um objeto dessa classe é criado. No código, você está usando
construtores para inicializar os atributos das classes, o que é uma prática comum e útil
na programação orientada a objetos. Isso ajuda a garantir que os objetos da classe
sejam criados de maneira consistente e com valores iniciais apropriados. Por exemplo,
ao criar um objeto Motorista, você fornece o nome, CPF e CNH no construtor, e esses
valores são usados para inicializar os atributos correspondentes da classe Motorista.
Isso garante que um objeto Motorista seja sempre criado com essas informações
essencia

2- A principal utilidade de uma classe abstrata é fornecer uma estrutura comum e


definir métodos que devem ser implementados por suas subclasses, mas não fornece
uma implementação completa para esses métodos.
No código, a classe abstrata Pessoa define métodos abstratos como setCpf, getCpf,
setCodCliente, getCodCliente. Isso significa que todas as subclasses concretas (como
PessoaJuridica, PessoaFisica e Motorista) são obrigadas a implementar esses
métodos.

3- Os benefícios do uso de StringBuilder nesta situação:

Eficiência de Memória: Usar StringBuilder para construir uma string é mais eficiente em
termos de memória do que a concatenação direta de strings usando o operador +. Isso
ocorre porque StringBuilder permite que você modifique a string internamente sem criar
várias instâncias intermediárias.

Desempenho: Usar StringBuilder é mais rápido do que a concatenação direta de


strings, especialmente quando você está construindo uma string através de várias
operações de concatenação, como no seu caso.

Legibilidade do Código: StringBuilder permite que você construa strings de maneira


mais legível e concisa, com chamadas encadeadas de métodos append(). Isso torna o
código mais fácil de entender e manter, especialmente quando você está criando
strings longas com várias partes concatenadas.

4- A criação de uma classe abstrata, como a classe Pessoa no código, oferece


benefícios de modelagem de Hierarquias: Classes abstratas são frequentemente
usadas para modelar hierarquias de classes onde há uma relação de herança comum.
No seu exemplo, Pessoa é uma classe abstrata que pode servir como uma classe base
para outras classes mais específicas, como PessoaJuridica, PessoaFisica e Motorista.
Isso permite organizar e estruturar o código de maneira mais lógica e hierárquica.

5- A escolha entre private e protected depende do grau de encapsulamento e da


flexibilidade necessária para sua classe e hierarquia de herança. Use private quando
desejar restringir o acesso a membros internos da classe e forçar o uso de métodos
públicos para interagir com esses membros. Use protected quando quiser permitir que
subclasses acessem diretamente esses membros, fornecendo uma interface mais
flexível para extensão. Ambas as abordagens têm seu lugar e são úteis em diferentes
contextos.

Construtores e métodos set têm propósitos diferentes na programação orientada a


objetos e não substituem um ao outro, mas são usados em situações distintas.

6- A palavra-chave super em construtores em Java tem a função de chamar


explicitamente o construtor da classe pai (superclasse) a partir da classe filha
(subclasse). Isso é útil quando a classe filha estende a classe pai e deseja inicializar os
atributos herdados da classe pai ou realizar tarefas adicionais durante a construção de
um objeto da classe filha.

A principal função do super nos construtores é garantir que a inicialização da classe pai
seja executada antes da inicialização da classe filha. Sem o super, a classe filha não
teria acesso aos atributos ou métodos da classe pai durante a construção do objeto, o
que poderia levar a problemas de inicialização e comportamento inesperado

7- No código, os atributos adicionais codCliente e cpf não são usados explicitamente.


Eles são definidos nas classes, mas não são utilizados em nenhum dos métodos ou
operações nas classes Pessoa, PessoaJuridica, PessoaFisica e Motorista, ou seja, só
está ocupando memória

Você também pode gostar