wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Desenvolvimento sis 2tri

Total questions: 20

Worksheet time: 15mins

Name
Class
Date
1.

Qual dos problemas abaixo é característico do paradigma procedural quando comparado à programação orientada a objetos?

a)

Alta coesão entre dados e comportamento

b)

Facilidade na reutilização de código

c)

Código fortemente acoplado e difícil de manter

d)

Modularidade baseada em classes e objetos

2.

Em Python, ao criar uma classe, qual é o propósito principal do método __init__?

a)

Criar variáveis globais

b)

Chamar métodos estáticos

c)

Inicializar os atributos de um novo objeto

d)

Definir o nome da classe

3.

Qual dos seguintes é um exemplo válido de encapsulamento em Python?

a)

Criar uma função dentro de outra função

b)

Utilizar listas aninhadas

c)

Tornar um atributo privado usando __ antes do nome

d)

Usar import para esconder funções

4.

Sobre métodos privados em Python, o que ocorre ao declarar def __calcular_total(self): dentro de uma classe?

a)

O método será acessível de qualquer lugar do código

b)

Será automaticamente convertido em método estático

c)

O método será acessível apenas dentro da própria classe

d)

O Python impedirá a criação do método

5.

O que o decorador @property permite em uma classe Python?

a)

Executar o método como uma função estática

b)

Definir valores constantes

c)

Acessar métodos como se fossem atributos

d)

Ocultar o método de outras classes

6.

Assinale a alternativa que representa corretamente o uso de um método estático:

a)

@staticmethod acima da definição e nenhum uso de self

b)

@classmethod e uso de self como primeiro argumento

c)

Método que só pode ser acessado fora da classe

d)

Método que sempre retorna uma instância da classe

7.

Qual a diferença principal entre @classmethod e @staticmethod em Python?

a)

Ambos recebem self, mas usam escopos diferentes

b)

@classmethod recebe cls e pode acessar atributos de classe, @staticmethod não

c)

@staticmethod pode modificar atributos da instância

d)

@classmethod impede herança, enquanto @staticmethod não

8.

Dado o seguinte código, o que será impresso?

class Exemplo:

def __init__(self):

self.__valor = 10

def get_valor(self):

return self.__valor

obj = Exemplo()

print(obj.get_

valor())

a)

0

b)

10

c)

Erro de execução

d)

__valor

9.

O que o princípio de encapsulamento visa garantir?

a)

Que todos os métodos sejam públicos

b)

Separar código em vários arquivos

c)

Controle de acesso aos dados da classe

d)

Uso obrigatório de herança

10.

Sobre a herança em Python, assinale a opção correta:

a)

Uma classe não pode herdar de mais de uma classe

b)

palavra-chave extends é usada para herança

c)

A palavra-chave super() permite acessar métodos da superclasse

d)

Métodos herdados não podem ser sobrescritos

11.

O que é uma subclasse em Python?

a)

Um método que pertence a mais de uma classe

b)

Uma função decorada com @subclass

c)

Uma classe derivada de outra que herda seus atributos e métodos

d)

Uma variável definida dentro de outra classe

12.

Quando não é aconselhado usar herança em Python?

a)

Quando há uma forte relação "é um" entre classes

b)

Quando classes compartilham atributos comuns

c)

Quando o relacionamento entre as classes é "tem um"

d)

Quando queremos reaproveitar código base

13.

Sobre o uso de propriedades em classes Python, o que o decorador @propriedade.setter permite?

a)

Tornar um atributo somente leitura

b)

Definir o valor de uma propriedade controladamente

c)

Criar atributos estáticos

d)

Evitar o uso do método init

14.

O que é verdadeiro sobre métodos de instância em Python?

a)

São métodos que não têm acesso à instância

b)

Utilizam o @staticmethod

c)

Recebem self como primeiro argumento

d)

Não podem acessar atributos da classe

15.

O que é sobrescrita (override) de métodos em Python?

a)

Quando um método é duplicado com outro nome

b)

Quando uma subclasse redefine um método da superclasse

c)

Quando um método se torna private

d)

Quando um método perde seu retorno

16.

Em qual situação a herança pode gerar problemas em Python?

a)

Quando usada com o padrão de composição

b)

Quando usada para acessar atributos protegidos

c)

Quando há múltiplas heranças mal planejadas

d)

Quando as classes não utilizam super()

17.

Dado o código abaixo, o que será impresso?

class A:

def falar(self):

return "Classe A"

class B(A):

def falar(self):

return "Classe B"

print(B().

falar())

a)

Classe A

b)

Classe B

c)

Erro de Compilação

d)

Nenhuma saída

18.

Qual é o propósito do super() dentro de uma subclasse?

a)

Criar um atributo privado

b)

Referenciar a instância atual

c)

Referenciar a superclasse e acessar seus métodos

d)

Evitar herança múltipla

19.

Qual alternativa representa uma situação onde a herança pode ser evitada em favor da composição?

a)

Quando subclasses apenas adicionam atributos

b)

Quando queremos reutilizar código de múltiplas classes independentes

c)

Quando usamos @property

d)

Quando a superclasse é abstrata

20.

Em Python, como definimos que um atributo é considerado “privado”?

a)

Declarando com global

b)

Nomeando com dois sublinhados iniciais, como __atributo

c)

Usando private na declaração