WorksheetsQuiz de Programação Orientada a Objetos
Total questions: 10
Worksheet time: 5mins
O que é uma classe em programação orientada a objetos?
Um tipo de dado primitivo
Um modelo para criar objetos com propriedades e métodos
Uma função que retorna valores aleatórios
Um arquivo de configuração
Em JavaScript, como se implementa a herança entre classes?
Utilizando a palavra-chave `extends`
Usando o operador `+`
Através da função `inherit()`
Com a palavra-chave `implements`
Qual das alternativas melhor define encapsulamento?
Tornar todos os atributos públicos
Esconder detalhes internos de implementação e expor apenas o necessário
Permitir acesso irrestrito a todos os métodos
Compartilhar variáveis globais entre funções
O que é polimorfismo em programação orientada a objetos?
Capacidade de uma função executar apenas uma tarefa
Capacidade de um objeto assumir várias formas, dependendo do contexto
Criação de variáveis estáticas
Uso de apenas métodos privados
Qual princípio SOLID está relacionado à ideia de que uma classe deve ter apenas uma razão para mudar?
Princípio da Responsabilidade Única (SRP)
Princípio da Substituição de Liskov (LSP)
Princípio da Segregação de Interface (ISP)
Princípio da Inversão de Dependência (DIP)
O que são funções de ordem superior em JavaScript?
Funções que não aceitam parâmetros
Funções que retornam ou recebem outras funções como argumento
Funções que só podem ser usadas em classes
Funções que não possuem retorno
Qual das opções abaixo representa corretamente a criação de um objeto a partir de uma classe em JavaScript?
`let obj = new MinhaClasse();`
`let obj = MinhaClasse.create();`
`let obj = MinhaClasse.prototype();`
`let obj = Object.create(MinhaClasse);`
No contexto de encapsulamento em JavaScript, como se pode tornar um atributo privado em uma classe?
Declarando o atributo com `var`
Utilizando o símbolo `#` antes do nome do atributo
Declarando o atributo como `public`
Usando a palavra-chave `static`
Qual das alternativas abaixo exemplifica polimorfismo?
Duas classes diferentes implementando um método com o mesmo nome, mas comportamentos distintos
Uma função que retorna sempre o mesmo valor
Um atributo que nunca muda de valor
Um método que só pode ser chamado uma vez
Sobre os princípios SOLID, o que significa o Princípio da Inversão de Dependência (DIP)?
Módulos de alto nível não devem depender de módulos de baixo nível, ambos devem depender de abstrações
Classes devem ser abertas para modificação
Interfaces devem ser grandes e genéricas
Objetos devem ser criados diretamente dentro das classes
