Questões OO

Propaganda
1. O operador ponto é usado para:
A) atribuir um valor aos atributos do objeto.
B) acrescentar novos comportamentos ao objeto.
C) criar um novo objeto.
D) acessar atributos e métodos públicos de um objeto.
2. Enumere as classes conceituais no seguinte cenário: “Em uma biblioteca os
exemplares de livros são emprestados aos usuários. É possível ainda fazer uma reserva,
se um livro não estiver disponível”.
3. Em um posto de gasolina os carros são abastecidos de gasolina, álcool ou diesel nas
bombas apropriadas. Enumere alguns atributos (mínimo de três) da classe
Abastecimento.
4. O que está errado no trecho de código abaixo?
type
Math = class
public
function menor(a1, a2: integer): integer;
end;
function Math.menor(a1, a2: integer): integer;
begin
if a1 < a2 then
result := a1
else
result := a2;
end;
begin
writeln(Math.menor(10, 5));
end.
5. O que será impresso pelo programa abaixo? Justifique sua resposta.
type
B = class
private
x, y, z : integer;
public
procedure print;
end;
procedure B.print;
begin
writeln('x = ', x, '; y = ', y, '; z = ', z);
end;
var
obj : B;
begin
obj := B.Create;
obj.print;
readln;
end.
6. Considere a definição das classes abaixo:
type
C1 = class
private
procedure m1;
public
procedure m2;
protected
procedure m3;
end;
C2 = class(C1)
private
procedure m4;
public
procedure m5;
end;
Que métodos estão disponíveis para uma referência da classe C2?
7. Observe a seguinte definição de classes:
type
CBase = class
public
procedure m1;
procedure print;
end;
CFilha = class(CBase)
public
procedure print;
end;
Que métodos estão disponíveis para uma instância da classe CFilha? Dê sua resposta na
forma: NomeDaClasse.nomeDoMétodo
8. Observe o código abaixo:
type
ClasseA = class
protected
x : integer;
procedure m1;
end;
ClasseB = class(ClasseA)
private
y : integer;
public
procedure m2;
end;
ClasseC = class(ClasseA)
private
z : integer;
public
procedure m3;
end;
Que métodos estão disponíveis para uma referência da ClasseC? Quais dos atributos (x,
y, z) podem ser usados na implementação do método m2?
9. O que está errado no trecho de código abaixo?
type
C1 = class
procedure m1;
end;
C2 = class
procedure m2;
end;
C3 = class(C1, C2)
procedure m3;
end;
10. Observe a definição das classes abaixo:
type
C1 = class
protected
procedure m1;
end;
C2 = class(C1)
public
procedure m2;
end;
C3 = class(C2)
public
procedure m3;
end;
Que métodos estão disponíveis para uma referência da classe C3?
11. Reescreva o código a seguir de modo a eliminar a duplicação de código nas classes.
type
C1 = class
private
x, y: integer;
public
procedure m1;
procedure m2;
end;
C2 = class
private
x, z: integer;
public
procedure m1;
procedure m3;
end;
procedure C1.m1;
begin
writeln(x);
end;
procedure C1.m2;
begin
writeln(y);
end;
procedure C2.m1;
begin
writeln(x);
end;
procedure C2.m3;
begin
writeln(z);
end;
12. Observe a definição de uma classe em Delphi
TCirculo = class
private
x: double;
y: double;
raio: double;
public
constructor Create(x: double;
y: double; raio: double);
function perimetro: double;
function area: double;
end;
e a criação de um objeto da classe:
circulo := TCirculo.Create(0, 0, 1);
Quais atributos e métodos podem ser acessados usando-se o objeto circulo?
13. Descreva alguns atributos (mínimo de cinco) da classe “Partida” pertencente a uma
aplicação “Campeonato de Futebol”.
14. O que são ATRIBUTOS e OPERAÇÕES de uma classe? E o que são MÉTODOS?
15. Qual das seguintes afirmações é verdadeira em Delphi?
A) Se não for especificado um construtor para a classe, um construtor padrão é
utilizado.
B) Um objeto pode ser uma classe.
C) Uma classe deve ter pelo menos um método.
D) Uma classe pode ser um objeto.
16. Um método de uma classe,
A) é sempre público;
B) é sempre privado;
C) é sempre protected;
D) pode ser público ou protected, mas não private
E) pode ser público, protected ou private.
17. Examine as seguintes declarações:
area: integer;
Form1: TForm1;
Qual das seguintes afirmações é verdadeira?
A) area e Form1 são referências
B) area e Form1 são variáveis primitivas
C) area é uma referência e Form1 é uma variável primitiva.
D) area é uma variável primitiva e Form1 é uma referência.
18.
program Teste;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
Foguete = class
private
a : integer;
b : integer;
public
procedure setnum(i, j: integer);
procedure shownum;
end;
Espaconave = class
private
a : integer;
b : integer;
public
procedure setnum(i, j: integer);
procedure shownum;
end;
{ Foguete }
procedure Foguete.setnum(i, j: integer);
begin
a := i;
b := j;
end;
procedure Foguete.shownum;
begin
writeln(a, ' ', b);
end;
{ Espaconave }
procedure Espaconave.setnum(i, j: integer);
begin
a := i;
b := j;
end;
procedure Espaconave.shownum;
begin
writeln(a, ' ', b);
end;
var
obj1: Foguete;
obj2: Espaconave;
begin
obj1 := Foguete.Create;
obj2 := Espaconave.Create;
obj1.setnum(3, 4);
obj2 := obj1;
obj1.shownum();
obj2.shownum();
readln;
end.
O programa acima apresenta um erro. A razão deste erro é:
A) duas classes não podem ter as mesmas variáveis.
B) duas classes não podem ter métodos com os mesmos nomes.
C) não podem ser usadas duas classes com a mesma interface.
D) não podem ser usados objetos de diferentes tipos em comandos de atribuição.
19. Na programação orientada a objetos, dados e funções comuns a todos os objetos de
um mesmo tipo são definidos em:
A) um método.
B) uma classe.
C) uma função.
D) uma variável.
20. Examine a seguinte seção de código:
var
area: integer;
Form1: TForm1;
Quantos objetos foram criados?
A) dois – um de cada tipo.
B) dois – um para cada variável.
C) nenhum – existe uma referência para um objeto, mas nenhum objeto ainda.
D) um – existe uma referência para um objeto, logo deve existir um objeto.
21. O modificador de visibilidade ____________________ (public, protected, private),
quando usado, faz com que atributos e métodos possam ser vistos somente dentro da
classe onde eles foram definidos.
22. Prover acesso a um objeto somente através dos seus métodos mantendo privados os
detalhes de implementação é chamado de:
A) encapsulamento.
B) herança
C) modularidade
D) polimorfismo.
23. O conceito de classes derivadas está presente em:
A) encapsulamento.
B) herança.
C) ocultação de dados.
D) tipos abstratos de dados.
24. Herança é uma maneira de
A) adicionar novas características a classes existentes, sem ter de reescrevê-las.
B) melhorar o encapsulamento dos dados.
C) organizar os dados.
D) passar argumentos para os objetos das classes.
25. Para ser acessível a um método em uma subclasse, um atributo na superclasse deve
ser:
A) default
B) protected
C) public
D) public ou protected
26. Qual é a diferença entre private e protected?
A) membros privados não podem ser acessados pelas subclasses, mas os membros
protected podem.
B) membros private e membros protected na superclasse podem ambos ser acessados
pelas subclasses.
C) membros protected de uma classe podem ser acessados por instâncias de objetos
desta classe.
D) membros protected não podem ser acessados pelas subclasses, mas os membros
privados podem.
27. A definição correta em Java para uma classe TestClass que não pode ter subclasses
é:
A) final class TestClass { }
B) abstract class TestClass { }
C) native class TestClass { }
D) static class TestClass { }
E) private class TestClass { }
28. A respeito do construtor default de uma classe em Java, pode-se afirmar que:
A) toda classe em Java tem um construtor default
B) a classe tem de ter pelo menos um construtor definido para ter um construtor default
C) uma classe tem um construtor default se ela não define nenhum outro construtor
D) toda classe em Java herda um construtor default da classe Object
E) a linguagem Java não tem o conceito de um construtor default
Download