Questões de Concurso
Sobre programação orientada a objetos em programação
Foram encontradas 955 questões
Com relação à arquitetura de software, à interoperabilidade de sistemas e a tecnologias associadas, julgue o item subsequente.
Em programação orientada a objetos, um objeto define as características e os comportamentos de um conjunto de classes.
A respeito dos conceitos fundamentais da orientação a objetos, da linguagem C# e de API (application programming interface), julgue o item subsequente.
No trecho de código C# a seguir, a classe Employee declara o método Payment(), a classe OutsourcedEmployee o sobrescreve com override, e, como a variável é do tipo Employee, mas referencia um objeto do tipo OutsourcedEmployee, a chamada e.Payment() executa o método redefinido na subclasse.

Considerando os conceitos fundamentais de arquitetura e linguagem orientadas a objetos, bem como o desenvolvimento e a integração via interfaces de programação de aplicações (API), julgue o item subsequente.
Na arquitetura orientada a objetos, o encapsulamento é o princípio que visa ocultar os detalhes de implementação interna e proteger o estado de um objeto, restringindo o acesso direto aos seus atributos e mediando a interação do meio externo por meio de métodos públicos definidos.
Analise as afirmativas a seguir sobre conceitos importantes em Java e considere V (verdadeira) ou F (falsa):


Assinale a alternativa correta:
Sobre o polimorfismo e o código acima, avalie as afirmações a seguir:
I - O polimorfismo permite que o método chamado seja determinado em tempo de execução (late binding).
II - A saída do programa será “Veículo movendo”, pois o tipo da variável v é Veículo.
III - No polimorfismo subclasses de uma classe podem definir seus próprios comportamentos únicos, compartilhando, ainda assim, algumas das funcionalidades da classe original.
Das afirmações acima, quais estão corretas?
O domínio possui as classes
ProcessoLicenciamento, ParecerTecnico, Vistoria e DocumentoObrigatorio.
O arquiteto definiu que a classe ProcessoLicenciamento atuará como Aggregate Root. Durante uma revisão de código, constatou-se que um desenvolvedor criou um repositório exclusivo para a classe Vistoria, permitindo que sistemas externos alterem o status de uma vistoria diretamente no banco de dados, sem passar pelas regras de validação contidas em ProcessoLicenciamento.
À luz dos padrões táticos do DDD, a abordagem do desenvolvedor está incorreta porque viola o seguinte princípio:
A orientação a objetos baseia-se em pilares fundamentais para promover flexibilidade e reutilização de código.
O conceito que permite a referências do tipo genérico Aeronave invocar comportamentos específicos diferentes, dependendo do tipo do objeto real apontado em tempo de execução, é
A partir de 2019, o projeto migrou para a comunidade open source sob o nome Laminas Project, mantendo a mesma arquitetura e os mesmos conceitos fundamentais. Entre seus principais componentes estão o sistema de módulos, o Service Manager (gerenciador de serviços baseado em injeção de dependências), o Event Manager e o sistema de rotas.
Considere o seguinte trecho de código representando um controller em uma aplicação baseada no Zend Framework (ZF2/ZF3):
<?php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel;
class ProdutoController extends AbstractActionController { private $produtoService; public function __construct(ProdutoService $produtoService) { $this->produtoService = $produtoService; } public function listarAction() { $produtos = $this->produtoService->buscarTodos(); return new ViewModel([ 'produtos' => $produtos, ]); } }
Considerando a arquitetura e os conceitos do Zend Framework (versões 2 e 3), e o funcionamento do framework, assinale a afirmativa correta.
Uma software house mantém um sistema de desenho técnico. A equipe perce beu que, sempre que surge um novo tipo de figura, como triângulo ou losango, várias partes do código precisam ser alteradas, especialmente rotinas que usam if/else ou switch para verificar o tipo da figura antes de desenhá-la.
Com base nos princípios OCP e LSP, assinale a afirmativa INCORRETA.
(__)Uma classe abstrata serve como modelo para outras classes e não permite que instâncias (objetos) sejam criadas diretamente a partir dela.
(__)Classes concretas são aquelas que implementam todos os métodos definidos em sua hierarquia, permitindo a criação de objetos operacionais.
(__)Uma classe abstrata pode conter métodos concretos, com implementação definida, além de assinaturas de métodos abstratos sem corpo.
(__)Toda classe abstrata deve possuir pelo menos dez métodos abstratos para ser considerada válida pelo compilador da linguagem.
Após análise, assinale a alternativa que apresenta a sequência correta dos itens acima, de cima para baixo:
static int soma(int x, int y) { return x + y; } static double soma(double x, double y) { return x + y; } public static void main(String[] args) { int meuNum1 = soma(8, 5); double meuNum2 = soma(4.3, 6.26); }
Sobre o código acima exposto, temos um exemplo claro de qual ocorrência em relação ao método soma?
( ) 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.
I- O polimorfismo permite que objetos de classes diferentes sejam tratados por uma mesma abstração, de modo que a seleção do comportamento concreto possa ocorrer em tempo de execução, desde que os tipos envolvidos respeitem o contrato definido por uma interface, classe abstrata ou hierarquia compatível.
II- A herança deve ser utilizada sempre que duas classes compartilham atributos com nomes semelhantes, pois a reutilização estrutural é critério suficiente para estabelecer relação “é-um”, mesmo que os comportamentos esperados das subclasses violem substitutibilidade em relação à superclasse.
III- A redução de condicionais baseadas em tipo concreto pode aumentar a extensibilidade do módulo quando novas políticas de cobrança são adicionadas por meio de novas implementações de uma abstração, sem exigir alteração direta da lógica cliente que consome o contrato comum.
IV- O encapsulamento consiste em tornar todos os atributos privados e todos os métodos públicos, garantindo baixo acoplamento automaticamente, independentemente da exposição de detalhes internos por métodos de acesso e da estabilidade da interface pública da classe.
Analisadas as sentenças, estão CORRETAS apenas:
I. Uma classe pode ser entendida como um modelo que define atributos e métodos, enquanto um objeto corresponde a uma instância criada a partir dessa classe.
II. A herança permite que uma classe aproveite atributos e métodos de outra, favorecendo a reutilização de código e a organização em hierarquias.
III. A sobrecarga de métodos ocorre quando métodos possuem o mesmo nome e a mesma lista de parâmetros, diferenciando se pelo conteúdo executado internamente.
Está(ão) correta(s):