Buscar

Compilado - Programação Orientada a Objetos I 2019

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
Questões de Múltipla Escolha 
 
Pergunta: A respeito dos conceitos de programação orientada a objetos e da 
linguagem de programação C#, assinale a opção correta: 
Resposta: D) Na linguagem C# os métodos abstract de classe abstract não 
tem implementação definida. As subclasses dessa classe abstrata definem 
implementação para tais métodos. 
 
Pergunta: Sobre polimorfismo, é errado afirmar que: 
Resposta: A) Ajuda a economizar memória e aumentar a velocidade de 
processamento. 
 
Pergunta: Sobre a agregação, podemos dizer: 
Resposta: A) É uma associação em que pode ser entendido o 
relacionamento entre “o todo e a parte” 
 
Pergunta: Considere o trecho de código em C# abaixo e escolha a alternativa 
correta 
 
Resposta: E) As variáveis número e numero são variáveis são diferentes. 
 
Pergunta: Considere a seguinte estrutura de classes: a classe Postagem representa 
o caso geral, e as classes Carta, Telegrama e Encomenda representam classes 
especializadas que herdam da classe Postagem. Assinale a alternativa correta: 
Resposta: Um método que receba como parâmetro um objeto da classe 
Postagem poderá receber também um objeto das classes Carta, Telegrama 
e Encomenda. 
 
Pergunta: Sobre a declaração e uso de classes, métodos e atributos 
especificamente na linguagem de programação C#, é correto afirmar que: 
Resposta: A) Em uma mesma classe pode-se declarar dois métodos que 
apresentam o mesmo nome. 
 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
Pergunta: Ao se executar o seguinte trecho de código, qual será a saída gerada 
no console? 
 
Resposta: A) 10 
 
Pergunta: Qual a novidade introduzida pelo paradigma estruturado que continua 
sendo adotada até hoje , mesmo quando utilizamos o paradigma orientado a 
objetos? 
Resposta: A) A proibição do uso de desvios incondicionais. 
 
Pergunta: Quando usamos as expressões “paradigma estruturado” e “paradigma 
orientado a objetos”, usamos o termo “paradigma” com qual significado? 
Resposta: Linguagem de programação e análise de sistemas. 
 
Pergunta: Qual das alternativas abaixo não se aplica ao conceito de 
“encapsulamento”? 
Resposta: Promover a reutilização de código. 
 
 
Pergunta: Analise as afirmativas a seguir: 
I – Mensagem é uma chamada a um objeto para invocar um de seus métodos, 
ativando um comportamento por sua classe. Também pode ser direcionada 
diretamente a uma classe (atráves de uma invocação .... Estático) 
II – Herança é o mecanismo pelo qual uma classe pode estender outra classe, 
aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). 
III – Associação é o mecanismo pelo qual um objeto utiliza os recursos de outros. 
Elas podem ter a forma “um-para-um”, quando um objeto troca mensagens com 
outro, ou “um-para-muitos”, quando um objeto troca mensagens com uma 
coleção de outros objetos. 
Sobre as afirmativas apresentadas, assinale a alternativa correta: 
Resposta: E) As afirmativas I, II e III estão corretas. 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 
Pergunta: Um objeto pode ser definido como: 
Resposta: A) Uma instancia de uma classe 
 
Pergunta: Sobre a associação podemos dizer: 
Resposta: A) É uma maneira de se relacionar classes entre si. 
 
Pergunta: Sobre a generalização podemos dizer 
Resposta: E) É a maneira com que se podem definir atributos e métodos 
comuns a várias classes. 
 
Pergunta: Relacione as palavras-chave da linguagem C# à sua respectiva 
descrição. 
Palavra-chave: 
I – this 
II – base 
III – throw 
Descrição 
(P) Usado para gerar uma exceção 
(Q) Em um método construtor, refere-se a superclasse 
A relação correta é: 
Resposta: E) II – Q, III – P 
 
Pergunta: A descrição abaixo refere-se a qual das técnicas apresentadas pelo 
paradigma de Programação Orientada a Objetos 
“É uma forma de reutilização de software na qual uma nova classe é criada, 
observando membros de uma classe existente e aprimorada com capacidades 
novas ou mesmo modificadas de acordo com a necessidade da classe atual” 
Resposta: d) Herança 
 
Pergunta: Heranças podem ser definidas como: 
Resposta: b) A possibilidade do uso de uma classe em outra previamente 
existente reutilizando seus métodos e atributos. 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 
Pergunta: Entre as principais vantagens da Programação Orientada a Objetos, 
podemos citar: 
Resposta: e) Tem uma alta usabilidade. 
 
Pergunta: Um atributo serve para: 
Resposta: a) Indicar as possíveis informações armazenadas por um objeto 
de uma classe, representando o estado de cada objeto. 
 
Pergunta: Considere as afirmativas a seguir: 
I – A classe Object pode ser herdeira de qualquer outra classe podendo receber 
serviços das classes pais. Ela suporta todas as classes na hierarquia de classes 
recebendo serviços de baixo nível como herança. 
II – A classe Object é classe base fundamental de todas as classes, ela é a raiz da 
hierarquia de tipos. 
III – Qualquer método da classe Object pode ser sobrescrito nas subclasses 
utilizando o modificador virtual. 
 
Podemos afirmar que: 
Resposta: b) Apenas a afirmativa II está correta. 
 
Pergunta: Os erros gerados durante a execução de um programa implementado 
na linguagem C# devem ser controlados com uma estrutura, que pode combinar o 
uso de qual dos seguintes blocos de tratamento de exceção, apresentados a 
seguir: 
Podemos afirmar que: 
Resposta: b) No mínimo com try e catch ou try e finally 
 
Pergunta: O que é modificador static? 
Resposta: b) Quando aplicado a um atributo, indica que ele terá o mesmo 
valor para todas as instâncias da classe. 
 
 
 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
Pergunta: O que significa “encapsular atributos”? 
Resposta: Significa que os atributos são declarados como privados e se u 
acesso é feito por métodos que garantem a integridade dos dados. 
 
Pergunta: Observe o código a seguir. O que pode ser dito a respeito das classes 
Program e Console? 
 
Resposta: A classe Program depende da classe Console . 
 
Pergunta: Considere o código a seguir e assinale qual será a saída no console 
resultante de sua execução 
 
Resposta: Erro de cast inválido. 
 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
Pergunta: Entre as frases abaixo, coloque a letra “O” para vantagem dos 
Programas Orientados a Objetos e a letra “E” para as vantagens dos Programas 
Estruturados: 
( E ) Em termos de velocidade de processamento tem um desempenho superior. 
( E ) O aprendizado do paradigma bem mais fácil no início. 
( O ) Uma distribuição de código um pouco mais lógica, funcional e melhor 
encapsulada, tornando a manutenção e a extensão do código mais fácil e com 
menos riscos de inserção de erros. 
( O ) É mais fácil gerenciar o desenvolvimento deste tipo de software em grandes 
equipes, partindo de uma especificação UML antes de iniciar o desenvolvimento 
do software em si. 
( E ) Sem a necessidade de ter uma base conceitual bem formado, bastante saber 
poucos comandos e para fazer um programa simples. 
Resposta: a) E – E – O – O – E 
 
Pergunta: Dadas as declarações abaixo: 
1) int[] a = new int[5]; 
2) float b = new float[3]; 
3) char[] c = new char [] {‘a’, ‘b’, ‘c’, ‘d’, ‘e’}; 
4) double d = double[]; 
5) String e[4]; 
Quais criarão um vetor? 
Resposta: a) 1 e 3 
 
Pergunta: O que é uma interface? 
Resposta: C) Ela pode ser entendida como uma classe abstrata sem 
atributos e que defina apenas métodos abstratos 
 
Pergunta: Se uma classe especializa (herda de) uma classe abstrata: 
Resposta:d. Ela será concreta se sobrescrever todos os métodos abstratos 
da superclasse. 
 
 
 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
Pergunta: Sobre classes abstratas, assinale a alternativa correta. 
Resposta: Uma classe abstrata pode declarar métodos concretos e 
abstratos. 
 
Pergunta: Sobre o mecanismo de tratamento de exceções, podemos dizer: 
Resposta: Pode tornar o programa mais tolerante a falhas. 
 
Pergunta: Sobre o tratamento de exeções, podemos dizer: 
Resposta: a. Com um bloco try, podemos tratar várias exceções, cada uma 
tratada em um bloco catch. 
 
Pergunta: Uma classe não pode: 
Resposta: A) Herdar de uma classe abstrata e uma classe concreta. 
 
Pergunta: Leia a definição a seguir: 
“É o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse 
podem invocar métodos que tem a mesma identificação, mas comportamentos 
distintos, especializados para cada classe, derivada, usando para tanto uma 
referência a um objeto do tipo da superclasse” 
Qual o conceito definido no trecho acima? 
Resposta: c) Polimorfismo 
 
Pergunta: Dos conjuntos de ferramentas fornecidos pelo C# qual não é utilizado 
para a programação de laços? 
Resposta: e) switch case 
 
Pergunta: Observe o trecho de código abaixo e responda qual alternativa 
apresenta o conteúdo das variáveis primeiro e segundo, respectivamente. 
 
Resposta: C) False e True. 
 
Pergunta: Ao se executar o seguinte trecho de código, quantas vezes o método 
Console.WhiteLine () será executado? 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 
Resposta: A) 5 vezes. 
 
Pergunta: Qual será a saída gerada pela execução do seguinte código? 
 
Resposta: C) I = 10. 
 
Pergunta: Observe o seguinte trecho de código e responda, qual o valor será 
armazenado na variável S: 
 
Resposta: E) “Ação”. 
 
Pergunta: Segundo a Microsoft quais os pilares da programação orientada a 
objetos? 
Resposta: c) Herança, polimorfismo, encapsulamento 
 
 
Pergunta: Qual a relação entre classe e objeto? 
Resposta: O objeto é uma instância de uma classe 
 
Pergunta: Quando compilamos um código fonte e m alguma das linguagens do 
Framework.NET, nós obtemos: 
Resposta: um código compilado em Linguagem Intermediária que pode ser 
executado em qualquer plataforma que possua um Frame work.NET 
instalado; 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 
Pergunta: Qual das alternativas abaixo está correta com relação ao Frame 
work.NET? 
Resposta: É um conjunto de ferramentas necessárias para se executar qual 
quer sistema .NET 
 
Pergunta: Considere o trecho de código e assinale a alternatica que traz a saída 
que é apresentada quando o programa é executado. 
 
Resposta: A) Carmen, Prata. 
 
 
 
 
 
 
Pergunta: Considere o trecho de código e assinale a alternatica que traz a saída 
que é apresentada quando o programa é executado. 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 
Resposta: A) Prata, Prata. 
 
Pergunta: Observe o código abaixo e assinale a alternativa correta: 
 
Resposta: C) A classe Exemplo apresenta um método construtor. 
 
 
 
 
 
 
 
 
Pergunta: Assinale a alternativa que explica corretamente qual é o erro do código 
abaixo: 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 
Resposta: B) A classe Data não possui um construtor, que não recebe 
nenhum parâmetro. 
 
Pergunta: Observe o código abaixo e assinale a alternativa correta: 
 
Resposta: E) O código compila sem erros. 
 
 
Pergunta: Considere o seguinte trecho de código e assinale a alternativa correta: 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 
Resposta: a. O código é um exemplo de polimorfismo. 
 
Pergunta: A abstração de conceitos do mundo real em classes e objetos é a 
principal motivação para a formalização do paradigma orientado a objetos. Com 
isso em mente , assinale a alternativa correta: 
Resposta: a. Uma classe representa um conjunto de objetos que 
compartilham as mesmas características e comportamentos. 
 
Pergunta: Leia as definições de laços a seguir: 
I – Possui três componentes para controle de suas interações (voltas de laço) sendo 
que o primeiro comportamento refere-se à declaração da variável de controle do 
laço. O segundo componente é uma expressão lógica que tem condição de 
encerramento a cada interação e o terceiro componente é o controle do laço que 
determinará o passo de cada interação. 
II – É usado quando não sabemos o número de vezes que devemos executar um 
bloco de código, mas apenas a condição que deve ser satisfeita para executar a 
condição é uma expressão booleana que deverá ser verdadeira para garantir pelo 
menos a primeira ou a próxima interação caso contrário o bloco não será 
executado. 
III – É usado para quando queremos que o bloco do código seja executado pelo 
menos uma vez. A condição satisfeita se encontra no fim do bloco do código e 
não no começo. 
Resposta: d) I-for, II-while, III-do while 
 
Pergunta: O programa a seguir apresenta um erro, mas todos do mesmo tipo: 
namespace ProvaHr 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
{ 
 public class ContaCorrente 
 { 
 private int numero; 
 private String cliente; 
 private float saldo; 
 private static int ultimoNumero = 1000; 
 public ContaCorrente(String cliente) 
 { 
 this.numero = ++ultimoNumero; 
 this.cliente = cliente; 
 } 
 public void depositar(float valor) 
 { 
 saldo += valor; 
 } 
 public void sacar(float valor) 
 { 
 if (valor < saldo) 
 saldo -= valor; 
 else 
 Console.WriteLine("Saldo insuficiente"); 
 } 
 } 
 public class ContaEspecial : ContaCorrente 
 { 
 public double limite; 
 public ContaEspecial(String cliente, double limite) : base(cliente) 
 { 
 this.limite = limite; 
 } 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 public void sacar(float valor) 
 { 
 if (valor < (saldo + limite)) 
 saldo -= valor; 
 else 
 Console.WriteLine("Saldo insuficiente"); 
 } 
 } 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 ContaCorrente c1 = new ContaCorrente("Maria"); 
 c1.depositar(100); 
 ContaEspecial c3 = new ContaEspecial("Paula", 500.00); 
 c3.sacar(50); 
 } 
 } 
} 
 
Considere as possíveis soluções para o erro, sem comprometer a segurança: 
 
I – Colocar o construtor padrão nas classes ContaCorrente e ContaEspecial 
II – Alterar a privacidade dos atributos número, cliente e saldo de private para 
proteced 
II – Alterar a privacidade de todos os métodos depositar e sacar para private 
 
Resposta: e) Nenhuma das soluções corrige o programa 
 
Pergunta: Dado o código abaixo com as seguintes classes: A, B e Program: 
 class A 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 { 
 public override String ToString() 
 { 
 return “4”; 
 } 
 } 
 class B : A 
 { 
 public override String ToString() 
 { 
 return base.ToString() +3; 
 } 
 } 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Console.WriteLine(new B()); 
 } 
 } 
 
Qualo resultado será apresentado como saída de execução do programa 
Program? 
Resposta: b) O programa compila e o número 43 é exibido 
 
Pergunta: Considerando o seguinte trecho de programa: 
 
 class Program 
 { 
 static void Main(string[] args) 
 { 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 string n1 = "Joao Carlos"; 
 int x; 
 Aluno b11 = new Aluno(); 
 Aluno b12 = new Aluno(n1); 
 x = b11.result(n1); 
 n1 = b12.result(x); 
 
Se o programa não apresenta erros, pode-se concluir em relação a classe Aluno: 
 
I – Ela não necessita de sobrecarga do método construtor. 
II – Ela possui um método cujo cabeçalho é public int result(string v) sendo v uma 
variável que será utilizada dentro do método 
III – Ela possui um método cujo cabeçalho é public string result(int v) sendo v uma 
variável que será utilizada dentro do método 
 
Assinale a alternativa correta: 
Resposta: b) As conclusões II e III estão corretas. 
 
Pergunta: Dada a seguinte tela de saída: 
 
Considerando as três propostas de programa a seguir: 
Programa I 
Static void Main(string[] args) 
{ 
 int a=345, b=543, c=435; 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 Console.WriteLine(“seq\n{1}\n{0}\n{2}”, b, a, c); 
 Console.ReadKey(); 
} 
Programa II 
Static void Main(string[] args) 
{ 
 int a=345, b=543, c=435; 
 Console.WriteLine(“seq\n{0}\n{1}\n{2}”, a, b, c); 
 Console.ReadKey(); 
} 
 
Programa III 
Static void Main(string[] args) 
{ 
 int a=345, b=435, c=543; 
 Console.WriteLine(“seq\n{0}\n{2}\n{1}”, a, b, c); 
 Console.ReadKey(); 
} 
 
Qual a afirmação é correta? 
Resposta: d) Mais de um programa mostram a tela. 
 
Pergunta: Qual a tela de saída do programa a seguir: 
static void Main(string[] args) 
{ 
 string s, s1, d1, e1, m1; 
 s1 = “Orientação”; 
s = “Objeto”; 
s += (“ a “+s1); 
d1 = s.Substring(0,6); 
e1 = s.Substring(s.Length - 10, 10); 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
m1 = s.Substring(6,3); 
Console.WriteLine(e1+m1+d1); 
}: 
Resposta: a) Orientação a Objeto 
 
Pergunta: Observe o código a seguir: 
 public class Pessoa 
 { 
 private String nome; 
 private String humor; 
 public Pessoa(String nome) 
 { 
 this.nome = nome; 
 this.humor = "bom"; 
 } 
 public void saudar() 
 { 
 Console.WriteLine("Meu nome é " + nome + "."); 
 Console.WriteLine("Hoje estou de " + humor + "humor."); 
 } 
 
Qual das alternativas mostra um comento valido para se criar um objeto dessa 
classe? 
Resposta: e) Pessoa p1 = new Pessoa (“Maria”) 
 
Pergunta: Considere o programa a seguir: 
namespace Prova 
{ 
 abstract class Classe1 
 { 
 public virtual int soma(int a) 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 { 
 return a + 1; 
 } 
 } 
 class Classe2 : Classe1 
 { 
 public override int soma(int a) 
 { 
 return a + 2; 
 } 
 } 
 class Classe3 : Classe1 
 { 
 public int soma(int a) 
 { 
 return base.soma(a + 3); 
 } 
 } 
 class Classe4 : Classe3 
 { 
 public int soma(int a) 
 { 
 return base.soma(a + 4); 
 } 
 } 
 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Classe2 c2 = new Classe2(); 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 Classe3 c3 = new Classe3(); 
 Classe4 c4 = new Classe4(); 
 Console.WriteLine("{0} {1} {2}", c2.soma(0), c3.soma(0), c4.soma(0)); 
 } 
 } 
} 
 
Qual é o resultado apresentado na tela? 
Resposta: a) 2 4 8 
 
Pergunta: Observando o programa a seguir: 
namespace ConsoleAplication1 
{ 
 public class Data { 
 public int dia, mes, ano; 
 public Data(int d, int m, int a) 
 { 
 dia = d; mes = m; ano = a; 
 } 
 public virtual void get() 
 { 
 Console.WriteLine(dia + "/" + mes + "/" + ano); 
 } 
 public override string ToString() 
 { 
 return dia + "/" + mes + "/" + ano; 
 [....] 
 } 
 public class Funcionario : Pessoa { 
 public Data admissao; 
 public float salario; 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 public Funcionario(string nome, int id, Data nasc, Data admiss, float sal) : 
base(nome, id, nasc) { 
 admissao = admiss; 
 salario = sal; 
 } 
 } 
 public class Gerente : Funcionario { 
 public string deparamento; 
 public Data inicioGerencia; 
 public Gerente(string depto, Data inic, float sal, Data adm, string nome, int 
id): base(nome, id, nasc, adm, sal) { 
 departamento = depto; 
 inicioGerente - inic; 
 } 
 } 
 public class Cliente : Pessoa { 
 public double limCredito; 
 public Cliente(string nome, int id, Data nasc, double lim): base(nome, id, 
nasc) { 
 limCredito = lim; 
 } 
 } 
 public class Banco { 
 public static float valorEmprestimo(Pessoa p) { 
 float valor; 
 if(p is Gerente) { 
 valor = ((Gerente)p).salario * 10; 
 } 
 else if(p is Funcionario) { 
 valor = ((Funcionario)p).salario * 5; 
 } 
 Else { 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 valor = 0; 
 } 
 } 
 
 
Qual dos métodos a seguir implementa o POLIMORFISMO? 
Resposta: e) Banco.valorEmprestimo 
 
Pergunta: No programa abaixo qual o código que deve ser colocado no quadro 1 
para que a saída corresponda à tela. 
 
“TELA COM PALAVRA CONTA” 
 
 static void Main(string[] args) 
 { 
 List<char> palavra = new List<char>(); 
 palavra.Add('c'); 
 palavra.Add('o'); 
 palavra.Add('n'); 
 palavra.Add('t'); 
 palavra.Add('a'); 
 palavra.Add('t'); 
 palavra.Add('o'); 
 
 foreach (char c in palavra) { 
 Console.Write(c); 
 } 
 Console.ReadLine(); 
 } 
 
Resposta: palavra.RemoveAt(6); 
palavra.Remove(‘t’); 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
palavra.Remove(‘a’); 
palavra.Add(‘a’); 
 
 
 
Questões Dissertativas 
 
Pergunta: Ao longo da história da computação, foram utilizados basicamente três 
paradigmas de desenvolvimento de sistemas. O primeiro foi um paradigma sem 
nome, o qual, mais tarde, ficou conhecido como Paradigma Não Estruturado, 
justamente pelo fato de ter sido substituído pelo Paradigma Estruturado. 
Atualmente o principal paradigma de desenvolvimento de sistemas é o Paradigma 
Orientado a Objetos. 
Explique quais são os dois componentes de um paradigma de desenvolvimento de 
sistemas. 
Resposta: Atributos e métodos; 
os atributos descrevem as características da classe 
e os métodos, as ações que a classe executa. 
 
Pergunta: Segundo diversos autores, o principal recurso introduzido pelo 
Paradigma Orientado a Objetos é a herança e uma de suas consequências, o 
polimorfismo. Explique o que é herança e como ela permite que se utilizepolimorfismo entre objetos.. 
Resposta: Atributos e métodos; 
os atributos descrevem as características da classe 
e os métodos, as ações que a classe executa. 
 
Pergunta: Uma vez que são definidas as classes e que são utilizadas dentro odo 
programa em forma de objetos, estes podem assumir duas formas de existência 
dentro do programa: objetos transientes ou objetos persistentes. Qual a diferença 
entre objetos transientes e objetos persistentes? 
Resposta: Transientes trabalham em meios voláteis, em memória, uma vez 
finalizada a execução do programa todos os dados referentes ao objeto 
são perdidos. 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
Persistentes trabalham em meios não voláteis, discos ou banco de dados, 
permitindo que mesmo após finalizada a execução do programa os dados 
possam ser recuperados em uma próxima execução. 
 
 
Pergunta: A principal inovação introduzida pelo Paradigma Estruturado em 
relação ao Paradigma Não Estruturado foi o abndono do uso de desvios 
incondicionais. Assim uma linguagem estruturada só utiliza desvios condicionais 
como “if”, “for”, “while” e “do-while”. O próximo paradigma, o Paradigma 
Orientado a Objetos inova ao introduzir o conceito de objeto (entre diversos outros 
conceitos). Explique o que é um objeto e explique suas partes componentes 
Resposta: Objeto é uma instancia de uma classe, capaz de armazenar 
estados, reagir a mensagens e se relacionar a outros objetos 
 
Pergunta: Considerando a afirmação a seguir: 
“As filas são estruturas baseadas no princípio FIFO (first in, first out), em que os 
elementos que foram inseridos no início são os primeiros a serem removidos” 
Baseando-se neste princípio, crie uma lista enumerada de inteiros chamada “Lista” 
e enfileire os números 1,2,3,4 e depois, retire da fila dois elementos. Enfileire o 
número 5 e mostre na tela a fila completa. 
 class Program 
 { 
 public static void Main(string[] args) 
 { 
 
 List<int> Lista = new List<int>(); 
 Lista.Add(1); 
 Lista.Add(2); 
 Lista.Add(3); 
 Lista.Add(4); 
 Lista.RemoveRange(0, 2); 
 Lista.Add(5); 
 foreach (int i in Lista) 
 { 
 Console.WriteLine(i); 
Compilado – Programação Orientada a Objetos I – UNIP Elaborado por Bortolotti 
 Atualizado em 18/03/2019 – v1 
 
 } 
 } 
 
P) Considere o seguinte programa: 
class program 
{ 
 public static void Main(string[] args) 
 { 
 int a; 
 for ( ) 
 { 
 Console.WriteLine(a); 
 } 
 } 
} 
Qual o código deve ser escrito no retângula vermelho para que a saída gerada pelo 
programa seja a seguinte? 
 
Resposta: a = 10; a >= 5; a--

Continue navegando