Acho q a resposta a esta pergunta vai de opini�o pessoal.
 
Baseado na minha experi�ncia em orienta��o a objetos e Java, eu diria que o fato dos modificadores de controle de acesso (public, private, etc) serem relativos �s classes, e n�o aos objetos n�o � um problema, e sim uma caracter�stica. E esta pode vir a ajudar bastante em termos de praticidade, sem complicar, dificultar, ou ir contra as boas pr�ticas de programa��o oo.
 
Pode parecer meio "feio" no contexto de encapsulamento, mas: Se a classe Casa cont�m todos os detalhes de implementa��o de uma casa, incluindo todos os atributos e objetos, fazer com que a classe Casa s� tenha acesso aos seus atributos privados (e n�o aos das outras inst�ncias da classe Casa) � o mesmo que dizer: "precisamos esconder os detalhes de implementa��o entre uma casa e outra".
 
Deixando a an�lise conceitual de lado, e partindo para algo mais concreto, uma vez eu precisei implementar uma classe do tipo Matriz, que continha todas as opera��es sobre matrizes (soma, multiplica��o, invers�o, transposi��o, etc). Ela declarava os atributos privados:
private double mat[][];
private int linhas,colunas;
 
e os acessos a esta matriz era intermediado pelos m�todos get(int i, int j) e set(int i, int j, double valor), e as fun��es getLinhas() e getColunas(). Assim, os atributos "linhas" e "colunas" n�o s�o modific�veis por classes externas.
 
A vantagem (neste caso) do fato que os atributos privados s�o acess�veis � classe, e n�o apenas ao objeto � que eu poderia modificar os atributos "linhas" e "colunas" de qualquer objeto do tipo Matriz dentro da classe Matriz (necess�rio em alguns algoritmos), al�m da facilidade de utilizar o atributo "mat[][]" diretamente.
 
 
Luiz Felipe Molina
 
 
 
----- Original Message -----
From: "Jos� Augusto Cerqueira Cond�" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, November 08, 2002 5:45 PM
Subject: [java-list] Restri��o de acesso em classes x objetos

Colegas,

Recentemente me atentei a uma quest�o interessante. Os n�veis de restri��o
de acesso a atributos e m�todos de uma classe, implementados pela linguagem
java, se aplicam apenas a classes e n�o a objetos.

Tomem como exemplo a classe abaixo :


public Casa
{

private boolean alugada;

public casa()
{
}


public Casa criaNovaCasaAlugada()
{
Casa casa = (Casa)this.clone();
casa.alugada = true; 
}

public void setAlugada(boolean alugada)
{
this.alugada = alugada;
}

public boolean isAlugada()
{
return alugada;
}

}

Apesar de parecer estranho o atributo "alugada" estar sendo acessado
externamente, o m�todo "criaNovaCasaAlugada" est� correto do ponto de vista
da linguagem java. Mas em rela��o �s boas maneiras da Orienta��o Objetos,
isto n�o seria aberra��o (objetos acessando atributos protegidos de outros
objetos)?

Atenciosamente,

JConde
[EMAIL PROTECTED]

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns:
http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a