

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Em programação orientada a objetos, o uso do conceito de polimorfismo implica que
um objeto pode assumir diferentes formas, com diferentes métodos e atributos, dependendo do contexto em que for instanciado.
uma classe pode herdar métodos e atributos de diferentes superclasses, podendo ser utilizada em lugar de qualquer de suas superclasses.
um método pode ter diferentes versões, sendo que cada versão pode ser definida com parâmetros e tipos de retorno diferentes.
um mesmo método definido em uma interface pode executar diferentes comportamentos, dependendo do objeto no qual for chamado.
No paradigma de programação orientado a objetos, uma instância de uma classe é conhecida como:
Interface.
Atributo.
Objeto.
Herança.
Método.
Considerando os relacionamentos entre classes e os fundamentos de programação orientada a objetos, assinale a alternativa que apresenta uma relação de composição.
Automóvel - Carro
Lobo - Mamífero
Peixe - Animal
Carro - Marca
No contexto da Programação Orientada a Objetos, o Princípio do Aberto/Fechado (OCP − Open/Closed Principle) orienta a evolução de sistemas de software. Nesse contexto, é correto afirmar que:
O OCP incentiva a extensão de funcionalidades por meio de herança direta de classes concretas.
O OCP recomenda o uso de abstrações, como interfaces ou classes abstratas, para permitir a extensão de comportamento sem modificar o código existente.
O OCP estabelece que uma classe deve possuir apenas uma única responsabilidade.
O OCP não se aplica a linguagens orientadas a objetos como Java.
O OCP exige que todas as classes sejam declaradas como final para evitar modificações futuras.
Uma classe denominada Figura define um método desenhar(), mas não o implementa. Esse método não possui argumento de entrada, nem retorna valor. As classes Triangulo, Quadrado e Circulo são subclasses de Figura, e cada uma define o método desenhar() com a mesma assinatura do método citado anteriormente, porém com implementações distintas. O conceito de programação orientada a objetos que permite que instâncias de Triângulo, Quadrado e Circulo sejam tratadas como objetos do tipo Figura, fazendo com que o método desenhar() específico seja invocado em função do tipo do objetivo é:
Encapsulamento.
Polimorfismo.
Pacote.
Sobrecarga de métodos.
Classe.
Em programação orientada a objetos com tipagem estática, considere uma hierarquia de tipos em que:
1.Métodos podem ser sobrescritos (overriding ) em subclasses;
2.Métodos podem ser sobrecarregados (overloading) dentro de uma mesma classe ou escopo;
3.O sistema de tipos suporta covariância de retorno (o tipo de retorno pode ser mais específico na sobrescrita);
4.Não há suporte à contravariância em parâmetros de métodos sobrescritos (ou seja, a assinatura deve manter compatibilidade estrita nos parâmetros);
5.A resolução de sobrecarga ocorre em tempo de compilação, enquanto a sobrescrita utiliza despacho dinâmico (dynamic dispatch).
Analise as sentenças a seguir e assinale a alternativa correta:
A sobrecarga permite múltiplos métodos com o mesmo nome diferenciados por assinatura, sendo resolvida em tempo de compilação, enquanto a sobrescrita mantém a mesma assinatura (com possível covariância no retorno) e é resolvida em tempo de execução.
A sobrecarga e a sobrescrita são ambas resolvidas em tempo de execução, uma vez que o sistema de tipos precisa inspecionar o tipo dinâmico dos objetos envolvidos para selecionar a implementação mais adequada, sendo diferenciadas apenas pelo fato de a sobrescrita ocorrer em hierarquias de herança.
Na sobrescrita, a escolha do método é feita em tempo de compilação com base no tipo estático da referência, enquanto na sobrecarga a decisão depende do tipo dinâmico dos argumentos fornecidos em tempo de execução, especialmente em cenários com herança e múltiplas implementações possíveis.
A sobrecarga exige que os métodos possuam tipos de retorno covariantes para permitir distinção entre assinaturas semelhantes, enquanto a sobrescrita admite variação nos parâmetros desde que haja compatibilidade estrutural e semântica entre os métodos envolvidos.
Na sobrescrita, é permitido alterar os tipos dos parâmetros de forma contravariante, desde que o sistema de tipos consiga garantir substituibilidade em tempo de execução, mantendo o tipo de retorno idêntico ao da superclasse para preservar a consistência da chamada.
Em sistemas baseados em programação orientada a objetos, o polimorfismo de inclusão (subtipagem) permite que uma referência tipada por uma superclasse ou interface seja associada, em tempo de execução, a instâncias de diferentes tipos concretos pertencentes à mesma hierarquia. Considere um cenário em que:
*Há uma hierarquia de tipos com sobrescrita de métodos (overriding);
*As chamadas de métodos são realizadas por meio de referências da superclasse;
*O mecanismo de despacho de métodos seleciona a implementação com base no tipo dinâmico do objeto;
*Não há uso de métodos estáticos, nem ocultação de métodos (method hiding);
*O comportamento de vinculação tardia (late binding) está corretamente implementado.
A esse respeito, assinale a alternativa correta:
O mecanismo descrito caracteriza despacho dinâmico (dynamic dispatch), no qual a implementação invocada é determinada em tempo de execução com base no tipo concreto do objeto, assegurando o polimorfismo por subtipagem.
A seleção do método a ser executado ocorre em tempo de compilação com base no tipo estático da referência, caracterizando static binding e garantindo polimorfismo de inclusão.
O comportamento descrito depende da utilização de polimorfismo paramétrico (parametric polymorphism), no qual tipos genéricos são definidos em tempo de compilação, sendo necessário que o compilador determine previamente as instâncias de tipos concretos para permitir a seleção dinâmica de métodos.
A resolução do método depende da presença de sobrecarga de métodos (overloading), em que múltiplas versões de um mesmo método são definidas com assinaturas diferentes, sendo a escolha realizada em tempo de compilação com base nos tipos dos argumentos fornecidos.
A ausência de métodos estáticos impede a ocorrência de polimorfismo, pois a vinculação dinâmica exige que os métodos sejam resolvidos antecipadamente pelo compilador para que possam ser corretamente associados às chamadas em tempo de execução.
Durante o desenvolvimento de um sistema interno do Conselho Regional de Enfermagem para gerenciamento de profissionais registrados, uma analista implementou a seguinte estrutura na linguagem Java:

Considerando os fundamentos de orientação a objetos em Java, assinale a alternativa correta.
O método exibirDados() somente poderia ser executado caso fosse declarado como static.
A classe Enfermeiro corresponde ao modelo estrutural utilizado para criação de objetos, enquanto enf1 representa uma instância concreta criada em memória.
Os atributos nome e registroCoren pertencem exclusivamente ao compilador Java, não podendo armazenar dados em tempo de execução.
A instrução new Enfermeiro() realiza compilação dinâmica da classe durante a execução da aplicação.
O objeto enf1 impede a criação de novas instâncias da classe Enfermeiro dentro da mesma aplicação.
No processo de construção de uma solução no paradigma da orientação a objetos, um Técnico em TI precisa permitir que diferentes implementações do método “Notificador” sejam usadas sem alterar o código que dispara a notificação. Diante do exposto, o conceito do paradigma da orientação a objetos que permite implementar o comportamento desejado pelo Técnico é denominado como:
Herança.
Abstração.
Agregação.
Polimorfismo.
Na programação Orientada a Objetos (POO), suportada por linguagens como Java e Python, existem pilares fundamentais que permitem a reutilização e a organização eficiente do código. Assinale a alternativa correta que define o conceito de "Polimorfismo" neste paradigma.
Definição de uma classe que não pode ser instanciada e serve apenas como modelo base para outras classes.
Técnica de ocultar os detalhes internos de implementação de um objeto, expondo apenas uma interface pública segura.
Mecanismo que permite criar uma nova classe a partir de uma classe existente, aproveitando seus atributos e métodos.
Capacidade de um objeto ser referenciado de várias formas, permitindo que métodos com a mesma assinatura em classes diferentes (geralmente herdeiras) tenham comportamentos distintos.
Processo de criação de uma instância concreta de uma classe, alocando memória para o objeto durante a execução.
Encapsulamento consiste em ocultar os detalhes internos de implementação de um objeto, expondo apenas uma interface bem definida.
Certo
Errado
Leia o fragmento de texto a seguir.
Um objeto é um indivíduo único dentro do conjunto que é a classe. Se voltarmos aos exemplos do mundo real, é possível exemplificar um objeto da classe mamífero como a VACA MIMOSA, da classe carro como o GOL AZULZINHO DO MEU PAI, e da classe funcionário como JOÃO SILVA. Um objeto é acessado por uma variável cujo tipo é a classe a qual ele pertence. Quando um programa faz uso de uma variável, ela precisa ser declarada para que espaços de memória sejam alocados e ela seja utilizada no processamento. Com os obj etos, existe essa mesma exigência. Os objetos precisam ser declarados e instanciados para que existam e possam ser utilizados.
Fonte: ASCENCIO, A. F. G.; DE CAMPOS, E. A. V. Fundamentos da programação de computadores: algoritmos, Pascal, C/C++ (padrão ANSI) e Java. 3. ed. São Paulo: Pearson Education do Brasil, 2012. p. 472. (adaptado).
Considere um sistema que foi modelado com as seguintes características:
▪ As classes expõem seus atributos como privados.
▪ O acesso aos atributos ocorre exclusivamente por meio de métodos.
▪ Há uma classe base que define comportamentos genéricos.
▪ Classes derivadas especializam esses comportamentos.
▪ Objetos são manipulados por referências do tipo da classe base.
Com base nos princípios da orientação a objetos, marque alternativa CORRETA.
O encapsulamento limita apenas o acesso direto aos atributos, não se estendendo ao controle de comportamento dos objetos, que é independente da visibilidade dos métodos, demandando outras ações para manutenção da integridade do código.
A herança permite o reaproveitamento de atributos e métodos, mas inviabiliza o polimorfismo, quando objetos são acessados por referências da superclasse, como no caso de uma ContaUsuário que herda os atributos e os métodos de Conta.
O polimorfismo ocorre em tempo de compilação, pois a escolha do método a ser executado depende do tipo estático da referência utilizada para a instância do objeto, que influenciará esses e outros processos de execução do código.
O encapsulamento controla o acesso aos dados, a herança promove especialização e reuso, e o polimorfismo possibilita que objetos de subclasses sejam tratados como da superclasse, com vinculação dinâmica de métodos.
A modelagem orientada a objetos prioriza a reutilização de código, dispensando a necessidade de definir responsabilidades claras para cada classe do sistema, uma vez que a estrutura organizacional do paradigma demanda essa abordagem.
Na programação orientada a objetos, o mecanismo que permite a uma classe derivada reutilizar e estender comportamentos de uma classe base denomina-se
encapsulamento.
sobrecarga.
associação.
abstração.
herança.
Considere que as classes Java abaixo encontram-se no mesmo pacote.
public abstract class Pessoa {
private String nome;
}
public class Funcionario extends Pessoa {
}
public class Professor extends Pessoa {
}
public class Aluno {
}
Assinale a alternativa com o trecho de código que cria uma instância de objeto corretamente.
Funcionario funcionario = new Pessoa()
Pessoa professor = new Professor()
Pessoa pessoa = new Pessoa()
Pessoa aluno = new Aluno()
No contexto do desenvolvimento de um sistema orientado a objetos em Java, um Analista de Sistemas está implementando uma hierarquia de classes para representar diferentes tipos de operações financeiras em um sistema de uma agência de fomento. Durante a implementação, objetos das subclasses são manipulados por meio de referências da superclasse para permitir maior generalização. Em determinado ponto do sistema, torna-se necessário recuperar o tipo específico do objeto para acessar comportamentos exclusivos definidos na subclasse, realizando uma conversão explícita da referência genérica para uma mais específica. Considerando os conceitos de orientação a objetos, assinale a alternativa que representa CORRETAMENTE esse tipo de conversão.
Upcasting.
Downcasting.
Late Binding.
Static Polymorphism.
Generalization.
No paradigma de orientação a objetos, assinale a alternativa correta.
Encapsulamento consiste em restringir o acesso direto a certos atributos ou métodos de um objeto, expondo interfaces controladas para interação com seus dados e comportamentos.
Polimorfismo significa que uma classe não pode possuir métodos com comportamentos diferentes em contextos distintos.
Herança impede qualquer forma de reuso de código entre classes.
Baixo acoplamento e alta coesão são características indesejáveis em projetos orientados a objetos.
Sobre Programação Orientada a Objetos (POO), informe verdadeiro (V) ou falso (F) para as assertivas abaixo e, em seguida, marque a opção que apresenta a sequência correta.
( ) Encapsulamento significa que os detalhes de implementação de uma classe ficam ocultos, de modo que outros objetos interajam com ela somente por meio de seus métodos públicos.
( ) Uma nova classe de objetos pode ser criada convenientemente por meio de herança — ela (subclasse) começa com as características de uma classe existente (superclasse), possivelmente personalizando-as e adicionando aspectos próprios.
( ) Polimorfismo permite que uma variável de tipo de superclasse referencie objetos de subclasses diferentes e invoque métodos que se comportam de maneira distinta conforme o tipo real do objeto.
( ) Reutilização de classes significa empregar a mesma definição de classe para criar múltiplas instâncias e também utilizá-la como base para novas estruturas por meio de herança ou composição, evitando duplicação de código.
(V); (V); (V); (V).
(F); (V); (F); (V).
(V); (F); (V); (F).
(F); (F); (F); (F).
Sobre Encapsulamento na Programação Orientada a Objetos, analise os itens e assinale a alternativa CORRETA:
I - Protege o estado interno de um objeto e restringe o acesso direto aos seus dados.
II - Tem a capacidade de ocultar detalhes internos de implementação de uma classe ou objeto.
III - Não garante manter a integridade dos dados e protegê-los de mudanças indevidas.
IV - Baseia-se no princípio de ocultação de informações, em que os detalhes internos de implementação ficam invisíveis para usuários.
Somente I e II estão corretos.
Somente I, II e III estão corretos.
Somente II, III e IV estão corretos.
Somente I e III estão corretos.
Somente I, II e IV estão corretos.
Considere os conceitos fundamentais da Programação Orientada a Objetos (POO) e analise as afirmações a seguir, relacionadas a herança, polimorfismo, sobrescrita de métodos, encapsulamento e ligação dinâmica:
I. Em um sistema orientado a objetos, quando um método é sobrescrito em uma subclasse, a versão do método executada é determinada em tempo de execução, de acordo com o tipo real do objeto referenciado.
II. O encapsulamento garante que os atributos de uma classe sejam sempre inacessíveis fora dela, independentemente da existência de métodos públicos de acesso.
III. Uma referência do tipo de uma superclasse pode apontar para um objeto de uma subclasse, possibilitando o uso do polimorfismo.
IV. Métodos declarados como privados (private) em uma superclasse podem ser sobrescritos por subclasses, desde que mantenham a mesma assinatura.
V. O uso de classes abstratas permite a definição de métodos sem implementação, os quais devem ser obrigatoriamente implementados pelas subclasses concretas.
Assinale a alternativa que apresenta a sequência CORRETA, de cima para baixo:
V – F – V – F – V
V – V – V – F – V
F – F – V – F – V
V – F – F – F – V
F – V – V – V – F
O conceito de abstração de processo está entre os mais antigos nos projetos de linguagens de programação. Como evolução das abstrações de processos, surgiu a abstração de dados. A programação orientada a objetos é, portanto, uma aplicação do princípio de abstração para tipos de dados, com a peculiaridade de ser capaz ainda de fornecer suporte à herança e vinculação dinâmica de chamadas aos subprogramas do tipo criado, os métodos. Um propósito para essa vinculação dinâmica é permitir que os sistemas de software sejam mais bem estendidos durante o desenvolvimento e a manutenção. Essa característica é conhecida como:
herança
polimorfismo
encapsulamento
ponteiro dinâmico