Considere as classes:
public class A{
public int mx(B b){
b.mw();
return b.mz();
}
}
public class B{
public void mw(){}
public int mz(){
return 0;
}
}
a. Use tipos abstratos de forma que a classe A não tenha mais uma referência direta para um objeto da classe B mas possa continuar funcionando normalmente da mesma forma que funciona atualmente (2,0)
Considere um sistema com as seguintes classes:
public class Estado{
private String nome;
private ArrayList<Cidade> cidades;
}
public class Cidade{
private String nome;
private ArrayList<Escola> escolas;
}
public class Escola{
private String nome;
private ArrayList<Estudante> estudantes;
}
public class Estudante{
private Strig cpf;
private int nivelLeitura;
}
a. Implemente gets e sets para TODOS os atributos de TODAS as classes. (1,0)
Projete as seguintes funcionalidades (não precisa implementar os métodos, escreva apenas suas assinaturas):
b. saber nível de leitura médio de um estado (0,5)
c. saber nível de leitura médio de uma cidade (0,5)
d. saber nível de leitura médio de uma escola (0,5)
e. saber todos os estudantes do sistema que estao com nível de leitura abaixo da média do estado (0,5)
f. saber a quantidade total de estudantes de um estado (0,5)
g. saber que escolas estão abaixo da média 50 em nível de leitura (0,5)
h. saber as cidades que estão abaixo de uma determinada média (1,0)
Escreva um sistema de academia que mantem diversas informações sobre seus clientes. Essencialmente, o sistema deve manter as informações fixas de cpf e sexo de cada cliente, e ser capaz de registrar várias métricas físicas (peso, altura, bíceps, peito) um cliente.
O sistema deve ter as seguintes funcionalidades:
a. registrar cliente
b. pesquisar um cliente por cpf
c. registrar métricas físicas para um cliente
d. saber as métricas mais atuais de um cliente
e. saber o(s) cliente(s) que perdeu(ram) mais peso em toda a academia. A quantidade de peso que o cliente perdeu é a diferença entre o peso da última e da primeira métrica registrada para ele
f. saber quanto peso perdeu o cliente que perdeu mais peso em toda uma academia
g. saber se um cliente está em forma ou não. Um cliente está em forma quando seu peso está 10 unidades acima ou abaixo da parte em centímetros de sua altura. Um cliente com 1.87m de altura, por exemplo, estará em forma se seu peso estiver entre 77 e 97kg.
h. saber quais são todos os clientes que estão atualmente em forma.
i. saber seu cliente baixou de peso (se a diferença de peso entre suas duas últimas medidas é menor que 0)
j. saber o(s) cliente(s) mais marombados (os que têm a maior medida de bíceps)
k. detector de bomba: uma funcionalidade que retorna todos os clientes que aumentaram mais de 5cm em peito ou bíceps entre as duas últimas métricas
l. saber quantas mulheres (ou quantos homens) há na academia
Pontuações:
- Projetar modelos, relações entre modelos e distribuição de atributos entre os modelos: 5,0
- Cada uma das funcionalidades A - L, CASO você acerte o item anterior: 1,0
1) Fora os gets e sets, você NÃO precisa implementar o corpo de nenhum método. Se quiser, returne 0 ou null (caso haja tipo de retorno) para fazê-los compilar ou não escreva nada caso o retorno seja void.
2) em cada método, deixe comentado a questão/letra a que ele se refere. Exemplo:
class CaoChupandoManga{
//Questão 3f
public int balaiDeGato(){
return 0;
}
}
3) NÃO faça entrada e saída, caso implemente alguma coisa. Métodos devem retornar alguma coisa em vez de escrever alguma coisa e receber alguma coisa como parâmetro em vez de ler alguma coisa.