public Livro (String t, String a, int n)
Alguém pode dizer que parâmetros devem ser passados
para este construtor de Livro? Nem eu.
A regra de ouro do jogo é a seguinte: os nomes dos parâmetros
devem indicar os seus significados. Esta é a única forma de
se garantir que uma outra pessoa (possivelmente um membro da sua equipe
do projeto) possa compreender o que a sua classe faz.
public class DadosPessoais {
private long identidade;
private String cpf;
private String Endereco;
private int anoNascimento;
}
saldoTotal
, pois ele (deveria)
ser exatamente igual ao saldo! Outro exemplo: na classe Pessoa, será
que faz sentido um dos atributos da classe ser o ano atual? Tudo bem, fica
mais fácil para se fazer as contas da idade da pessoa, você
pode implementar um método mudaAno()ou coisa parecida, mas
isto não é natural! E a naturalidade da implementação
é uma das principais características da orientação
a objetos! Para que nadar contra a corrente? Você provavelmente
irá apenas se cansar... class Pessoa {Este exercício estava completamente correto! Mas imagine o trabalho para se saber o bairro de uma determinada pessoa:
private String nome;
...
private DadosPessoais dados;
...
Pessoa (String nome, String sobrenome,
DadosPessoais dadosPessoais, String telefone)
{
...
}
...
DadosPessoais getDados()
{
return dados;
}
...
}
class DadosPessoais {
private boolean ehCasado;
...
private Endereco endereco;
...
DadosPessoais(boolean ehCasado, String cpf, Endereco endereco,
int anoNascimento)
{
...
}
...
Endereco getEndereco()
{
return endereco;
}
...
}
class Endereco {
...
private String bairro;
...
String getBairro()
{
return bairro;
}
}
Pessoa p;
...
DadosPessoais dp = p.getDados();
Endereco e = dp.getEndereco();
String bairro = e.getBairro();
System.out.println(bairro);
Será que esta granularidade tão
fina da implementação é realmente necessária?
O que vocês tem de verificar é se o problema que vocês
estão tratando realmente precisa de todo este detalhamento. Para o
controle academico do CIn, por exemplo, as unicas informações
necessárias para as "Pessoa"s seriam seus nomes, talvez endereços
e numero de matrícula. Não há a necessidade de tanto
trabalho assim...
A decisão é de vocês. A minha sugestão: não
compliquem, a não ser que o problema seja realmente complicado. Nestes
exercícios vocês podem até achar fácil lidar
com esta complexidade, mas quando vocês forem fazer algum projeto
grande mesmo, ou até mesmo o projeto da disciplina, vocês com
certeza terão muito mais trabalho do que realmente precisariam ter.
Carlos Figueira Filho( csff@cin.ufpe.br) |