Prévia do material em texto
Qual das opções abaixo contém conceitos apenas do paradigma orientado a objetos? atribuição, algoritmo variável, estrutura condicional classe, estrutura de repetição método, classe, herança função, variável Explicação: A resposta é a letra a, que possui três conceitos que se aplicam a orientação a objetos. 2. Qual dos comandos abaixo define uma relação de herança em Python? class Carro extends Veiculo class Carro is Veiculo class Carro inherits Veiculo Carro is Veiculo class Carro(Veiculo) : Explicação: A resposta é a letra a, que tem a sintaxe correta para definir, em Python, que a classe Carro é uma extensão da classe Veiculo. 3. Qual é a saída do comando abaixo: >>> a='10' >>> print(a*2) `20¿ 100 20 Erro! 1010 Explicação: A variável a contém uma string. Usar o operador "*" vai repeti-la 4. Qual é o objetivo do comando super() na declaração abaixo? class Carro(Veiculo): def __init__(self,vel,marca): super().__init__(vel) self.marca = marca Permite que a classe herde o método da superclasse. Nenhuma das respostas anteriores está correta. Uso de polimorfismo em Python. Inicializa a variável vel. Apenas a sintaxe normal para a definição de uma classe simples em Python. Explicação: A resposta é letra a. É desse modo que se implementa a sobrecarga de métodos em Python, possibilitando extender a funcionalidade da superclasse para as classes filhas. 5. Seja a classe definida como FormaGeométrica em Python, qual das opções abaixo poderia ser uma classe herdada dessa classe? class Pessoa(FormaGeometrica) class Carro(FormaGeometrica) Nenhuma das opções está correta. class Quadrado(FormaGeometrica) class Animal(FormaGeometrica) Explicação: A resposta é class Quadrado(FormaGeometrica), classe Quadrado, porque uma subclasse herda as propriedades da superclasse, e como só existe uma única forma geométrica entre as opções ela é a resposta correta. 6. A função abaixo em Python ilustra um conceito muito importante no paradigma funcional. def fatorial(valor): if valor == 0: return 1 else: return valor * fatorial(valor-1) Qual é esse conceito? Linguagens de script Orientação a objetos Tipagem dinâmica Multiparadigmas Recursividade Explicação: A resposta é a letra c. A função implementa a função fatorial que chama a ela mesma no comando else. Esse conceito de uma função chamar ela mesma é definido por recursividade. 7. Considere a seguinte definição da classe fração: class Fracao: def __init__(self,num,den): self.num = num self.den = den Qual seria um possivel cabeçalho para um método de multiplicar duas frações? fracao.multiplicar(f1) f.multiplicar(f) Nenhuma das anteriores está correta. def mul(fracao1, fracao2) def __mul__(self,fracao): Explicação: A resposta é: def __mul__(self,fracao): onde é passado como parâmetro um objeto da classe Fracao de onde serão retirados o numerador e o denominador. Abaixo o código desse método: def mul(self,fracao): return Fracao(self.num*fracao.num, self.den*fracao.den) 8. O que o código abaixo imprime? class Vendas: def __init__(self, id): self.id = id id = 100 val = Vendas(123) print (val.id) 123 Id Nada. Vai dar pau 100 Nenhuma das anteriores Explicação: O construtor vai fazer a atribuição para a variável id do objeto val