Re: [java-list] bug Java - protected

2002-04-18 Por tôpico Rosfran Lins Borges

 Protected dá acesso do atributo/método tanto a todas as subclasses
dessa classe, quanto às classes do pacote no qual a mesma classe está
incluído. O modificador friendly, quando vc não coloca modificador nenhum, é
mais restritivo que o protected. A seguinte sequência apresenta os
especificadores de acesso em Java, do mais abrangente ao mais restrito:
  public - protected - friendly (nenhum modificador) - private


Rosfran Lins Borges
Analista de Sistemas - NDS
[EMAIL PROTECTED]
Fóton® Informática e Serviços
Fone: (61) 328 5060 R.: 204

- Original Message -
From: Tomaz Foa Binsztajn [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, April 12, 2002 4:59 PM
Subject: Re: [java-list] bug Java - protected


 Gaúcho:

 Posso estar falando bobagem (se estiver, me corrija), mas o protected não
 promove acesso de pacote a variável.
 Na minha opinião, você poderia acessar a variável nome de SuperClasse
dentro
 da classe Teste porque elas estão no mesmo pacote. Não vejo de errado
nisso...

 []s

 Tomaz

 On Thursday 11 April 2002 08:19, you wrote:
  Alguém sabe se no jdk1.4 o problema do protected já foi resolvido ?
 
  Para quem não sabe, o modificador protected não funciona como deveria.
 
  Na verdade, em Java, quando você declara uma variável protegida, ela
acaba
  tendo acessibilidade pública.
 
  O único encapsulamento provido pelo protected é o encapsulamento em
relação
  ao pacotes. Mas no caso da implementação de classes desvinculadas de
  pacotes, o modificador protected infelizmente não funciona...
 
  Duvida? :^)) faça um teste: implemente uma classe com algum membro
  protected e depois tente acessá-lo de outra classe que não seja
estendida
  da primeira:
 
  class Superclasse
  {
  protected String nome = null;
  }
 
  public class Teste
  {
  static public void main(String[] args)
  {
  new Teste();
  }
 
  Teste()
  {
  Superclasse pai = new Superclasse();
 
  // isso não deveria ser acessível somente pela classe
  // Superclasse ou uma de suas subclasses ??
  pai.nome = oo;
  }
  }
 
 
  -- 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]

 -

 -- 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]
 -


-- 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] 
-




Re: [java-list] bug Java - protected

2002-04-17 Por tôpico Tomaz Foa Binsztajn

Gaúcho:

Posso estar falando bobagem (se estiver, me corrija), mas o protected não 
promove acesso de pacote a variável.
Na minha opinião, você poderia acessar a variável nome de SuperClasse dentro 
da classe Teste porque elas estão no mesmo pacote. Não vejo de errado nisso...

[]s

Tomaz

On Thursday 11 April 2002 08:19, you wrote:
 Alguém sabe se no jdk1.4 o problema do protected já foi resolvido ?

 Para quem não sabe, o modificador protected não funciona como deveria.

 Na verdade, em Java, quando você declara uma variável protegida, ela acaba
 tendo acessibilidade pública.

 O único encapsulamento provido pelo protected é o encapsulamento em relação
 ao pacotes. Mas no caso da implementação de classes desvinculadas de
 pacotes, o modificador protected infelizmente não funciona...

 Duvida? :^)) faça um teste: implemente uma classe com algum membro
 protected e depois tente acessá-lo de outra classe que não seja estendida
 da primeira:

 class Superclasse
 {
   protected String nome = null;
 }

 public class Teste
 {
   static public void main(String[] args)
   {
   new Teste();
   }

   Teste()
   {
   Superclasse pai = new Superclasse();

   // isso não deveria ser acessível somente pela classe
   // Superclasse ou uma de suas subclasses ??
   pai.nome = oo;
   }
 }


 -- 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]
 -

-- 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] 
-




Re: [java-list] bug Java - protected

2002-04-17 Por tôpico Rodrigo Miguel

Bug??
Posso estar errado, mas eu acho que o modificador protected permite o acesso
pelas classes de mesmo pacote e classes derivadas, e não somente às classes
derivadas.
Até a versão 1.1 do JDK (se não me engano) existia o modificador private
protected que fazia exatamente isso que você está imaginando, restringia o
acesso somente às classes derivadas e não às de mesmo pacote. Mas esse
modificador foi extinto a partir das versões posteriores.

[]s
Rodrigo Miguel


- Original Message -
From: Gaucho [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, April 11, 2002 8:19 AM
Subject: [java-list] bug Java - protected


 Alguém sabe se no jdk1.4 o problema do protected já foi resolvido ?

 Para quem não sabe, o modificador protected não funciona como deveria.

 Na verdade, em Java, quando você declara uma variável protegida, ela acaba
 tendo acessibilidade pública.

 O único encapsulamento provido pelo protected é o encapsulamento em
relação
 ao pacotes. Mas no caso da implementação de classes desvinculadas de
 pacotes, o modificador protected infelizmente não funciona...

 Duvida? :^)) faça um teste: implemente uma classe com algum membro
 protected e depois tente acessá-lo de outra classe que não seja
estendida
 da primeira:

 class Superclasse
 {
 protected String nome = null;
 }

 public class Teste
 {
 static public void main(String[] args)
 {
 new Teste();
 }

 Teste()
 {
 Superclasse pai = new Superclasse();

 // isso não deveria ser acessível somente pela classe
 // Superclasse ou uma de suas subclasses ??
 pai.nome = oo;
 }
 }


 -- 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]
 -



-- 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] 
-




Re: [java-list] bug Java - protected

2002-04-15 Por tôpico Renato

Gaucho, 

um exemplo de que está correto é a classe Applet.
Ela é uma subclasse de java.awt.Panel, mas está em seu
próprio pacote, java.applet.

Você utiliza protected quando você não quer um método
disponível genericamente para objetos aleatórios, 
mas quer que a subclasse tenha acesso a ele.

Abraços,

Renato.

 --- Marcelo Alves [EMAIL PROTECTED] escreveu: 
Gaucho,
 
 O modificador protected funciona EXATAMENTE como
 deveria, está na especificacao da linguagem Java. Se
 não acreditar olhe os seguintes docs (escrito pelos
 criadores do Java) :
 


http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36191
 e


http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#104285
 
 [Em vermelho, a parte que define isso]
 6.6.1 Determining Accessibility
   a.. A package is always accessible. 
   b.. If a class or interface type is declared
 public, then it may be accessed by any code,
 provided that the compilation unit (§7.3) in which
 it is declared is observable. If a top level class
 or interface type is not declared public, then it
 may be accessed only from within the package in
 which it is declared. 
   c.. An array type is accessible if and only if its
 element type is accessible. 
   d.. A member (class, interface, field, or method)
 of a reference (class, interface, or array) type or
 a constructor of a class type is accessible only if
 the type is accessible and the member or constructor
 is declared to permit access: 
 a.. If the member or constructor is declared
 public, then access is permitted. All members of
 interfaces are implicitly public. 
 b.. Otherwise, if the member or constructor is
 declared protected, then access is permitted only
 when one of the following is true: 
 a.. Access to the member or constructor
 occurs from within the package containing the class
 in which the protected member or constructor is
 declared. 
 b.. Access is correct as described in
 §6.6.2. 
 c.. Otherwise, if the member or constructor is
 declared private, then access is permitted if and
 only if it occurs within the body of the top level
 class (§7.6) that encloses the declaration of the
 member. 
 d.. Otherwise, we say there is default access,
 which is permitted only when the access occurs from
 within the package in which the type is declared. 
 
 
 
 - Original Message - 
 From: Gaucho [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Thursday, April 11, 2002 8:19 AM
 Subject: [java-list] bug Java - protected
 
 
  Alguém sabe se no jdk1.4 o problema do protected
 já foi resolvido ?
  
  Para quem não sabe, o modificador protected não
 funciona como deveria.
  
  Na verdade, em Java, quando você declara uma
 variável protegida, ela acaba
  tendo acessibilidade pública.
  
  O único encapsulamento provido pelo protected é o
 encapsulamento em relação
  ao pacotes. Mas no caso da implementação de
 classes desvinculadas de
  pacotes, o modificador protected infelizmente
 não funciona...
  
  Duvida? :^)) faça um teste: implemente uma classe
 com algum membro
  protected e depois tente acessá-lo de outra
 classe que não seja estendida
  da primeira:
  
  class Superclasse
  {
  protected String nome = null;
  }
  
  public class Teste
  {
  static public void main(String[] args)
  {
  new Teste();
  }
  
  Teste()
  {
  Superclasse pai = new Superclasse();
  
  // isso não deveria ser acessível somente pela
 classe
  // Superclasse ou uma de suas subclasses ??
  pai.nome = oo;
  }
  }
  
  
  -- 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] 
 

-
  
  

___
Yahoo! Empregos
O trabalho dos seus sonhos pode estar aqui. Cadastre-se hoje mesmo no Yahoo! Empregos 
e tenha acesso a milhares de vagas abertas!
http://br.empregos.yahoo.com/

-- 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] 
-




Re: [java-list] bug Java - protected

2002-04-15 Por tôpico Luiz Carlos Bentes dos Anjos
Todo membro protected eh tb um membro friendly.
[]´s

 Luiz Reginaldo [EMAIL PROTECTED] escreveu: 
Opa! O protected não tem acessibilidade pública! Um membro protected éacessível na classe em que foidefinido, e também em suas subclasses.Um grande abraço,Luiz Reginaldo- Original Message -From: "Gaucho" <[EMAIL PROTECTED]>To: <[EMAIL PROTECTED]>Sent: Thursday, April 11, 2002 8:19 AMSubject: [java-list] bug Java - protected Alguém sabe se no jdk1.4 o problema do protected já foi resolvido ? Para quem não sabe, o modificador protected não funciona como deveria. Na verdade, em Java, quando você declara uma variável protegida, ela acaba tendo acessibilidade pública. O único encapsulamento provido pelo protected é o encapsulamento emrelação ao pacotes. Mas no caso da implementação de classes desvinculadas de pacotes, o modificador "protected" infelizmente não funciona... Duvida? :^)) faça um teste: implemente uma classe com algum membro "protected" e depois tente acessá-lo de outra classe que não sejaestendida da primeira: class Superclasse { protected String nome = null; } public class Teste { static public void main(String[] args) { new Teste(); } Teste() { Superclasse pai = new Superclasse(); // isso não deveria ser acessível somente pela classe // Superclasse ou uma de suas subclasses ?? pai.nome = "oo"; } } -- 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] --- 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.htmregras da lista: http://www.soujava.org.br/regras.htmhistorico: http://www.mail-archive.com/java-list%40soujava.org.brpara sair da lista: envie email para [EMAIL PROTECTED] -oYahoo! Empregos
O trabalho dos seus sonhos pode estar aqui. Cadastre-se hoje mesmo no Yahoo! Empregos e tenha acesso a milhares de vagas abertas!

Re: [java-list] bug Java - protected

2002-04-15 Por tôpico Orbitall 1 Centro de Competencia


Hehehe,


Seguinte:

se vc fizer

package XYZ;
class A {}

package XYZ;
class B extends A {}

tudo bem.

-

Mas se vc fizer:

package ABC;
class A {}

package XYZ;
class B extends A {}
nao vai rolar

ai tem q usar protected, que na verdade, é mais acessivel que default.

[]s
Leandro





Luiz Carlos Bentes dos Anjos [EMAIL PROTECTED] on 15/04/2002 10:15:45

Please respond to [EMAIL PROTECTED]

To:   [EMAIL PROTECTED]
cc:
Subject:  Re: [java-list] bug Java - protected





Todo membro protected eh tb um membro friendly.

[]´s



  Luiz Reginaldo [EMAIL PROTECTED] escreveu:  Opa! O protected não
tem acessibilidade pública! Um membro protected é
acessível na classe em que foidefinido, e também em suas subclasses.

Um grande abraço,

Luiz Reginaldo

- Original Message -
From: Gaucho
To:
Sent: Thursday, April 11, 2002 8:19 AM
Subject: [java-list] bug Java - protected


 Alguém sabe se no jdk1.4 o problema do protected já foi resolvido ?

 Para quem não sabe, o modificador protected não funciona como deveria.

 Na verdade, em Java, quando você declara uma variável protegida, ela
acaba
 tendo acessibilidade pública.

 O único encapsulamento provido pelo protected é o encapsulamento em
relação
 ao pacotes. Mas no caso da implementação de classes desvinculadas de
 pacotes, o modificador protected inf! elizmente não funciona...

 Duvida? :^)) faça um teste: implemente uma classe com algum membro
 protected e depois tente acessá-lo de outra classe que não seja
estendida
 da primeira:

 class Superclasse
 {
 protected String nome = null;
 }

 public class Teste
 {
 static public void main(String[] args)
 {
 new Teste();
 }

 Teste()
 {
 Superclasse pai = new Superclasse();

 // isso não deveria ser acessível somente pela classe
 // Superclasse ou uma de suas subclasses ??
 pai.nome = oo;
 }
 }


 -- LISTA SOUJAVA 
 http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
 dúvidas mais comuns: http://www.souja! va.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]
 -



-- 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]
-
o



Yahoo! Empregos
O trabalho dos seus sonhos pode estar aqui. Cadastre-se hoje mesmo no
Yahoo! Empregos e tenha acesso a milhares de vagas abertas!




-- 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]
-




Re: [java-list] bug Java - protected

2002-04-14 Por tôpico Marcelo Alves



Gaucho,

 O modificador 
protected funciona EXATAMENTE como deveria,está na 
especificacao da linguagem Java. Se não acreditar olhe os seguintes docs 
(escrito pelos criadores do Java) :

 http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36191
e
 
http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#104285

 [Em vermelho, a parte que 
define isso]
6.6.1 Determining 
Accessibility

  A package is always accessible. 
  If a class or interface type is declared 
  public, then it may be accessed by any code, provided that the compilation 
  unit (§7.3) in 
  which it is declared is observable. If a top level class or interface type is 
  not declared public, then it may be accessed only from within the package in 
  which it is declared. 
  An array type is accessible if and only if 
  its element type is accessible. 
  A member (class, interface, field, or 
  method) of a reference (class, interface, or array) type or a constructor of a 
  class type is accessible only if the type is accessible and the member or 
  constructor is declared to permit access: 
  
If the member or constructor is declared 
public, then access is permitted. All members of interfaces are implicitly 
public. 
Otherwise, if the member or 
constructor is declared protected, then access is permitted only when one of 
the following is true: 

  
Access to the member or 
constructor occurs from within the package containing the class in which 
the protected member or constructor is declared. 
Access is correct as described in 
§6.6.2. 
Otherwise, if the member or constructor 
is declared private, then access is permitted if and only if it occurs 
within the body of the top level class (§7.6) 
that encloses the declaration of the member. 
Otherwise, we say there is default 
access, which is permitted only when the access occurs from within the 
package in which the type is declared. 



- Original Message - 
From: "Gaucho" [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, April 11, 2002 8:19 AM
Subject: [java-list] bug Java - 
protected
 Alguém sabe se no jdk1.4 o problema do protected já foi resolvido 
?  Para quem não sabe, o modificador protected não funciona como 
deveria.  Na verdade, em Java, quando você declara uma variável 
protegida, ela acaba tendo acessibilidade pública.  O 
único encapsulamento provido pelo protected é o encapsulamento em 
relação ao pacotes. Mas no caso da implementação de classes 
desvinculadas de pacotes, o modificador "protected" infelizmente não 
funciona...  Duvida? :^)) faça um teste: implemente uma classe 
com algum membro "protected" e depois tente acessá-lo de outra classe 
que não seja estendida da primeira:  class 
Superclasse { protected String nome = null; } 
 public class Teste { static public void main(String[] 
args) { new Teste(); }  Teste() 
{ Superclasse pai = new Superclasse();  // isso não 
deveria ser acessível somente pela classe // Superclasse ou uma de suas 
subclasses ?? pai.nome = "oo"; } }  
 -- 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] 
 
- 



[java-list] Re:[java-list] bug Java - protected

2002-04-14 Por tôpico xjava

Seguinte Gaucho, pelo que eu sei, isso não é nenhum bug,
esse é o comportamento correto de um membro protected,
pois por definição, um membro declarado protected tem
visibilidade no pacote ou então em subclasses fora do
pacote, seria uma forma de visibilidade maior
que default (membro declarado sem modificador de
acesso e enxergado apenas dentro do pacote) e menor do
que public(este sim disponível aoende quer que a clase
apareça), para um maior esclarecimento, sugiro o link
para o jls:
http://java.sun.com/docs/books/jls/second_edition/html/na
mes.doc.html#104333
Abraços, Marcelo Sousa Ancelmo.

 Alguém sabe se no jdk1.4 o problema do protected já
foi resolvido ?

 Para quem não sabe, o modificador protected não
funciona como deveria.

 Na verdade, em Java, quando você declara uma variável
protegida, ela acaba
 tendo acessibilidade pública.

 O único encapsulamento provido pelo protected é o
encapsulamento em relação
 ao pacotes. Mas no caso da implementação de classes
desvinculadas de
 pacotes, o modificador protected infelizmente não
funciona...

 Duvida? :^)) faça um teste: implemente uma classe com
algum membro
 protected e depois tente acessá-lo de outra classe
que não seja estendida
 da primeira:

 class Superclasse
 {
   protected String nome = null;
 }

 public class Teste
 {
   static public void main(String[] args)
   {
   new Teste();
   }

   Teste()
   {
   Superclasse pai = new Superclasse();

   // isso não deveria ser acessível
somente pela classe
   // Superclasse ou uma de suas
subclasses ??
   pai.nome = oo;
   }
 }


 -- 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 java-list-
[EMAIL PROTECTED]
 ---
--




__
Quer ter seu próprio endereço na Internet?
Garanta já o seu e ainda ganhe cinco e-mails personalizados.
DomíniosBOL - http://dominios.bol.com.br



-- 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]
-




RES: [java-list] bug Java - protected

2002-04-14 Por tôpico Gaucho



Sim 
cara,

eu 
realmente não acho que isso seja um defeito (foi uma decisão (estranha) de 
projeto da equipe que criou o Java), mas quando vou ensinar aos meus alunos o 
conceito de "membros protegidos" sem eles usarem pacotes, fica sem 
sentido.

A 
definição em Orientação a Objetos (nada a ver com Java) é que um membro 
protegido só pode ser acessado pela classe que o declarou ou uma de suas 
subclasse.

Em 
Java, isso só ocorre quando você agrupar as classes dentro de um pacote. Se você 
não usar pacotes, o modificador protected se comporta igual ao public. (porque 
Java considera todas as classes em um mesmo "pacote padrão" se um pacote não for 
declarado explicitamente)

Lembra 
que "pacotes" é uma técnica adotada pelo Java mas que não é definida em 
Orientação a Objetos.

É isso 
aí, não precisa ficar defendendo o Java, melhor é discutir o comportamento da 
linguagem, buscando aprender mais com a opinião de todos.

E não 
precisa ficar citando os criadores do Java :^) Se as tuas opiniões forem 
espertas, elas valem tanto quanto a deles :^))

Um 
abraço,

 Felipe 
Gaúcho


[java-list] bug Java - protected

2002-04-12 Por tôpico Gaucho

Alguém sabe se no jdk1.4 o problema do protected já foi resolvido ?

Para quem não sabe, o modificador protected não funciona como deveria.

Na verdade, em Java, quando você declara uma variável protegida, ela acaba
tendo acessibilidade pública.

O único encapsulamento provido pelo protected é o encapsulamento em relação
ao pacotes. Mas no caso da implementação de classes desvinculadas de
pacotes, o modificador protected infelizmente não funciona...

Duvida? :^)) faça um teste: implemente uma classe com algum membro
protected e depois tente acessá-lo de outra classe que não seja estendida
da primeira:

class Superclasse
{
protected String nome = null;
}

public class Teste
{
static public void main(String[] args)
{
new Teste();
}

Teste()
{
Superclasse pai = new Superclasse();

// isso não deveria ser acessível somente pela classe
// Superclasse ou uma de suas subclasses ??
pai.nome = oo;
}
}


-- 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] 
-