

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.
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.
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.


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
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.
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


Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
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
Em programação orientada a objetos, o princípio que restringe o acesso direto ao estado interno de um objeto e disponibiliza operações controladas para interação com seus dados corresponde ao:
encapsulamento.
polimorfismo.
acoplamento.
paralelismo.
Abstração em Programação Orientada a Objetos – POO (ou ObjectOriented Programming, OOP) corresponde a uma visão ou representação de uma entidade que inclui apenas os atributos mais significativos.
Com relação à JAVA e a OOP, assinale (V) para a afirmativa verdadeira e (F) para a falsa.
( ) O Java emprega uma adesão consistente aos princípios orientados a objetos, tendo a abstração como supressão intencional, ou ocultação, de alguns detalhes de um processo ou artefato, focando nas características e comportamentos essenciais de um objeto do mundo real.
( ) Java não permite classes sem pais, pois a herança é mandatória e centralizada, e usa dynamic binding (Ligação Dinâmica ou Tardia) como comportamento padrão para métodos de instância em Java para vincular chamadas de método às definições de métodos, que corresponde ao Polimorfismo (de inclusão ou sobreposição).
( ) Java usa interfaces para fornecer uma forma de suporte à herança múltipla, que não possui todas as desvantagens da herança múltipla real.
As afirmativas são, respectivamente,
F – F – F.
V – V – V.
V – F – F.
V – F – V.
F – F – V.
Na programação orientada a objetos, os pilares fundamentais definem como estruturar sistemas de forma modular, segura e de fácil manutenção. Assinale a alternativa que identifica corretamente o princípio responsável por ocultar os detalhes internos de implementação de uma classe e expor apenas uma interface controlada para uso externo:
Polimorfismo, que permite que diferentes objetos respondam de formas distintas ao mesmo método.
Instanciação, que consiste na criação de objetos a partir de uma classe.
Encapsulamento, que restringe o acesso direto aos atributos e dados internos de uma classe, controlando a interação com o objeto exclusivamente por meio de métodos públicos (getters, setters e outros métodos de interface).
Abstração, que consiste em permitir que subclasses acessem diretamente os atributos privados da classe base para facilitar a reutilização de código.
Herança, que permite que uma classe derive atributos e comportamentos de outra classe.
Durante o desenvolvimento de um sistema orientado a objetos, um programador utilizou mecanismos para proteger os atributos, reutilizar código e permitir comportamentos diferentes em subclasses.
Nesse contexto, analise as afirmativas a seguir:
I. Encapsulamento restringe o acesso direto aos atributos da classe.
II. Herança permite reutilizar o código.
III. Polimorfismo permite diferentes implementações para um mesmo método.
IV. Classes abstratas não podem ser instanciadas diretamente.
Assinale a alternativa CORRETA.
Apenas as afirmativas I, II e III estão corretas.
Apenas as afirmativas I e III estão corretas.
Apenas as afirmativas II, III e IV estão corretas.
Todas as afirmativas estão incorretas.
Todas as afirmativas estão corretas.


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
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()