Questões de Concurso
Comentadas sobre programação orientada a objetos em programação
Foram encontradas 798 questões
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):
I. Uma classe define seus atributos como privados e disponibiliza apenas métodos públicos para sua leitura e alteração, permitindo a realização de validações antes de qualquer modificação dos dados.
II. Uma classe base é estendida por diversas subclasses que compartilham comportamento comum, mas especializam determinadas operações conforme suas regras específicas.
III. Um mesmo método, definido na classe base, é reimplementado nas subclasses, de modo que sua execução produza comportamentos distintos conforme o tipo concreto do objeto em tempo de execução.
Com base nos conceitos fundamentais da programação orientada a objetos, assinale a opção que classifica corretamente as práticas descritas.
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.
Observe as assertivas abaixo e, em seguida, assinale a alternativa correta.
I. Em Java, uma classe que implementa uma interface deve fornecer implementações concretas para todos os métodos declarados nessa interface (a menos que a classe seja abstrata).
PORQUE
II. As interfaces em Java permitem que uma classe herde o comportamento e o estado de múltiplas superclasses, contornando a ausência de herança múltipla de classes.