Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação orientada a objetos 1 Questionário unidade 1 Questão 01 - Considere a seguinte estrutura de classes: a classe Postagem representa o caso geral, e as classes Carta, Telegrama e Encomenda representam classes especializadas que herdam da classe Postagem. Assinale a alternativa correta: R: Um método que receba como parâmetro um objeto da classe Postagem poderá receber também um objeto das classes Carta, Telegrama e Encomenda. Comentário: com o uso do polimorfismo de classes, também conhecido como polimorfismo de objetos ou polimorfismo dinâmico, podemos tratar um objeto de uma classe como se fosse de outra, desde que a outra classe seja uma superclasse. Em outras palavras, quando uma classe pode ser utilizada, qualquer uma de suas subclasses também poderá ser. No exemplo do exercício, se um objeto da classe Postagem pode ser usado, um objeto de quaisquer de suas subclasses também poderá ser. Afinal, uma Carta é um tipo de Postagem, assim como um Telegrama e uma Encomenda. Questão 02 - Qual a novidade introduzida pelo paradigma estruturado que continua sendo adotada até hoje, mesmo quando utilizamos o paradigma orientado a objetos? R: A proibição do uso de desvios incondicionais. Comentário: Questão 03 - Qual das alternativas abaixo não se aplica ao conceito de “encapsulamento”? R: Promover a reutilização de código. Comentário: o encapsulamento significa que devemos isolar, ocultar, encapsular (colocar uma cápsula em torno de) um conceito. Qualquer dado e comportamento relacionados ao conceito modelado pelo objeto devem estar no próprio objeto. Além disso, se um dado ou comportamento diz respeito ao conceito modelado pelo objeto, ele não deve aparecer em nenhum outro objeto. Questão 04 - Qual é a motivação para o surgimento do paradigma orientado a objetos? R: O tratamento simultâneo de dados e comportamentos. Comentário: a ideia básica por trás do paradigma orientado a objetos é o desenvolvimento simultâneo de dados e dos comportamentos que manipulam esses dados numa única entidade, o objeto. Assim, o objeto modela um conceito tanto com os dados relacionados a esse conceito quanto com os comportamentos que utilizam e manipulam esses mesmos dados. Questão 05 - Qual é a relação entre classe e objeto? R: O objeto é uma instância de uma classe. Comentário: a classe é um conjunto de objetos que compartilham da mesma estrutura interna. Se dois objetos pertencem à mesma classe, ambos possuem os mesmos métodos e atributos, ainda que os valores armazenados pelos atributos sejam diferentes. Quando escrevemos um código de computador, estamos descrevendo uma classe com a qual vários objetos podem ser instanciados a partir dessa mesma classe. Questão 06 - Quando usamos as expressões “paradigma estruturado” e “paradigma orientado a objetos”, usamos o termo “paradigma” com qual significado? R: Linguagem de programação e análise de sistemas. Comentário: nesse sentido, o termo “paradigma” é utilizado para se referir tanto à análise de sistemas quanto às linguagens de programação. Temos análise estruturada de sistemas e linguagens estruturadas de programação, assim como temos análise de sistemas orientada a objetos e linguagens de programação orientadas a objetos. Questão 07 - Sobre a agregação, podemos dizer: R: É uma associação em que pode ser entendido o relacionamento entre “o todo e a parte”. Comentário: quando temos duas classes que se relacionam com uma associação e, além disso, reconhecemos em uma delas o conceito de “todo” e na outra o conceito de “parte”, dizemos que a associação caracteriza uma agregação. Questão 08 - Sobre a associação, podemos dizer: R: É uma maneira de se relacionar classes entre si. Comentário: cada classe deve abstrair um conceito por completo. Em geral, diferentes conceitos se relacionam no problema estudado. Por exemplo, o conceito de pessoa relaciona-se com o conceito de endereço e o de conta bancária. Assim, se esses conceitos forem abstraídos nas classes Pessoa, Endereço e Conta Corrente, essas classes podem se relacionar com o uso da associação. Questão 09 - Sobre a generalização, podemos dizer: R: É a maneira com que se podem definir atributos e métodos comuns a várias classes. Comentário: quando identificamos que diversas classes possuem atributos e/ou métodos em comum, podemos defini-los uma única vez numa classe que representa o caso geral. Com o uso da generalização, podemos então definir as classes especializadas que irão herdar as características (atributos e métodos) da classe geral. Assim, definem- se os atributos e métodos das classes especializadas uma única vez, promovendo o reúso de código. Questão 10 - Sobre polimorfismo, é errado afirmar que: R: Ajuda a economizar memória e aumentar a velocidade de processamento. Comentário: como praticamente todo recurso de orientação a objetos, o polimorfismo não ajuda a economizar memória ou poder de processamento. A orientação a objetos visa tornar o trabalho de desenvolvimento de sistemas mais fácil, permitindo que o desenvolvedor crie algoritmos cada vez mais complexos. Historicamente, esse paradigma passa a ser mais difundido conforme o custo de memória e de poder de processamento vai se tornando mais barato.
Compartilhar