OO Exercises Solutions
OO Exercises Solutions
Questão 6:
Class Diagrama:
Classe Veículo
- númeroChassi: String
- potênciaMotor: Double
- capacidade: Integer
Questão 7:
Na linguagem Java, uma possível implementação seria:
List<ContaVO> lista = new ArrayList<>(10);
Questão 8:
Na linguagem Java, uma possível implementação seria:
List<ContaVO> lista = new ArrayList<>();
Questão 9:
A. Verdadeiro.
B. Falso. O código compila sem a necessidade de um construtor explícito.
C. Falso. O método print é estático e não de instância.
D. Verdadeiro. É possível criar um objeto da classe M.
E. Verdadeiro. A variável estática y pode ser modificada usando a sintaxe M.y = 10.
Questão 10:
A. Falso. O código compila sem a necessidade de um construtor explícito.
B. Falso. O método print é estático, logo não é de instância.
C. Verdadeiro. A construção M m = new M() é válida.
D. Falso. A construção M m2 = new M(11, 10) não é válida, pois não existe um
construtor com esses parâmetros.
E. Verdadeiro. A variável estática y pode ser modificada dentro do método Main.
F. Verdadeiro. É possível sobrecarregar o método construtor de uma classe.
Questão 11:
a) A a1 = new B(); a1.imprime();
Resultado: "Imprime Filho B". A chamada ao método imprime é determinada pela classe
instanciada, B.
b) B b1 = new A();
Erro de compilação. Não é possível instanciar um objeto do tipo A em uma variável
do tipo B.
c) C c1 = new B();
Erro de compilação. Não é possível instanciar um objeto da classe B em uma variável
do tipo C.
d) A a1 = new B(); C c1 = (C) a1;
Erro em tempo de execução. Não é possível fazer um cast de B para C.
e) A[] lista = new A[3]; lista[0] = new C(); lista[1] = new B(); lista[2] = new
A();
Impressão:
"Imprime Filho C"
"Imprime Filho B"
"Imprime Pai"
Questão 12:
a) Se a classe A for final, não poderá ser estendida por outras classes.
b) Se a classe A for abstrata, não poderá ser instanciada diretamente, apenas suas
subclasses poderão ser instanciadas.
c) Se o método imprime for final, ele não poderá ser sobrescrito nas classes
filhas.
d) Para que o método imprime na classe B invoque o método da classe A, deve-se usar
super.imprime() dentro do método imprime da classe B.