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 {
private String nome;
...
private DadosPessoais dados;
...
Pessoa (String nom, String sobrenom,
DadosPessoais dadosPessoais, String tel)
{
...
}
...
DadosPessoais dados()
{
return dados;
}
...
}
class DadosPessoais {
private boolean ehcasado;
...
private Endereco endereco;
...
DadosPessoais (boolean ehCasado, String numCpf,
Endereco end, int anoNasc)
{
...
}
...
Endereco endereco()
{
return endereco;
}
...
}
class Endereco {
...
private String bairro;
...
String bairro()
{
return bairro;
}
}
Este exercício estava completamente
correto! Mas imagine o trabalho para se saber o bairro de uma
determinada pessoa:
Pessoa p;
...
DadosPessoais dp = p.dados();
Endereco e = dp.endereco();
String bairro = e.bairro();
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 DI, 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@di.ufpe.br) |