Carlos, o fato da Inner Class ser private nao faz diferenca. 

Michael, rodei o teu codigo nos seguintes compiladores:

jdk 1.1.8_008
jdk 1.2.2_008
jdk 1.3.1
jdk 1.4 (beta) 

Que sao todas as versoes que eu tenho na minha maquina (para testes de compatibilidade)

O teu programa compila em todas as versoes. 

Usei o JBuilder 4 para os testes. Nesse ponto esse IDE eh realmente muito bom, eh o 
ambiente mais facil para trocar de JDK que eu jah vi, fiz esses testes em menos de 5 
minutos, alias, descobri isso por causa dessa thread, valeu.
Nao compilei com command line porque eh um saco arrumar classpath a mao para cada 
versao (eu sei que jah deveria ter batchs prontos para isso, mas...)

E como acabou o feriadao, vou ficando por aqui nessa conversa.

[]'s

Silvio




On Sun, 08 July 2001, "masterjedi2000" wrote:

> 
> Michael !!!!! mude o modificador de declaracao da classe
> filha!!!!!! como vc quer um construtor publico se a
> classe é privada... nunca vi isso..
> Abraços
> Carlos Maurício
> > Tecnicamente a documentacao diz o q vc falou, BUT...
> >
> > Erro no meu compilador (1.2.2 - JDK, Sun Microsystems)
> no teu programa:
> >
> > pacote2\ClasseFilha.java:19: No method matching
> > printProtected(java.lang.String) found i
> > n class pacote2.ClasseFilha.
> >              printProtected
> ("chamando 'printProtected'na Inner Class em
> > filha");
> >
> >                            ^
> > 1 error
> >
> > Estranho... :-) Tvz isso soh se aplike ao 1.3.x ou
> superior. Acredito q seja
> > um bug nas versoes anteriores, pq segundo o q eu tb
> entendo deveria
> > compilar, mas jah faz 6 meses q venho encontrando
> esses problemas com o
> > 1.1.x e o 1.2
> >
> > Sobre meu exemplo original:
> >
> > No compilador q vem com o VisualAge 3.02, dah os erros
> q eu falei (1.1.x)...
> > No meu JDK 1.2, daki de casa, tb dah pau...
> >
> > Alguem podia tentar compilar meu codigo no 1.3???
> > Pai.java
> >
> > package pai;
> >
> > public class Pai {
> >    protected void algo() {
> >    }
> > }
> >
> >
> *********************************************************
> >
> > Filho.java
> >
> > package filho;
> >
> > import pai.*;
> >
> > public class Filho extends Pai {
> >    private class InnerClass {
> >       public InnerClass() {
> >          algo(); //ERRO DE VISIBILIDADE DE
> ACESSO!!!!!!!!
> >       }
> >    }
> > }
> >
> > >From: [EMAIL PROTECTED]
> > >Reply-To: [EMAIL PROTECTED]
> > >To: [EMAIL PROTECTED]
> > >Subject: Re: RES: [java-list] Basico de OO em JAVA -
> CUIDADO MESMO!!!!
> > >Date: 6 Jul 2001 07:38:34 -0700
> > >
> > >ou eu nao entendi o que vc esta querendo dizer, ou
> voce cometeu um pequeno
> > >engano.
> > >uma Inner Class pode chamar metodos protected da
> super class da classe
> > >container, acho que sempre pode,
> > >desde a introducao de Inner Classes (JDK 1.1, nao
> lembro mais ??, mas posso
> > >estar errado nesse ponto).
> > >
> > >o exemplo abaixo compila e executa sem erros. usei
> JDK 1.3.1
> > >os .java estao no zip.
> > >
> > >/*
> > >  * ClasseMae.java
> > >  *
> > >  * Created on July 6, 2001, 9:46 AM
> > >  */
> > >
> > >package pacote1;
> > >
> > >/**
> > >  *
> > >  * @author  SLD
> > >  * @version
> > >  */
> > >public class ClasseMae {
> > >
> > >     /** Creates new ClasseMae */
> > >     public ClasseMae() {
> > >     }
> > >
> > >     public void printPublic(String s) {
> > >         System.out.println(s);
> > >     }
> > >
> > >      protected void printProtected(String s) {
> > >         System.out.println(s);
> > >     }
> > >
> > >     void printPackage(String s) { // package
> > >         System.out.println(s);
> > >     }
> > >
> > >     private void printPrivate(String s) {
> > >         System.out.println(s);
> > >     }
> > >}
> > >
> > >
> > >/*
> > >  * ClasseFilha.java
> > >  *
> > >  * Created on July 6, 2001, 9:46 AM
> > >  */
> > >
> > >package pacote2;
> > >
> > >/**
> > >  *
> > >  * @author  SLD
> > >  * @version
> > >  */
> > >public class ClasseFilha extends pacote1.ClasseMae {
> > >
> > >     /** Creates new ClasseFilha */
> > >     public ClasseFilha() {
> > >         printPublic   ("chamando 'printPublic'    na
> classe filha");
> > >         printProtected("chamando 'printProtected' na
> classe filha");
> > >         // printPackage  ("chamando 'printPackage'
> na classe filha");
> > >// Erro pq eh de outro pacote
> > >         // printPrivate  ("chamando 'printPrivate'
> na classe filha");
> > >// Erro pq eh privada na ClasseMae
> > >
> > >         InnerClass1 inc = new InnerClass1();
> > >     }
> > >
> > >
> > >     private class InnerClass1 {
> > >         public InnerClass1() {
> > >             printPublic
> ("chamando 'printPublic'    na Inner Class em
> > >filha");
> > >             printProtected
> ("chamando 'printProtected' na Inner Class em
> > >filha");
> > >             // printPackage
> ("chamando 'printPackage'   na Inner Class em
> > >filha"); // Erro pq eh de outro pacote
> > >             // printPrivate
> ("chamando 'printPrivate'   na Inner Class em
> > >filha"); // Erro pq eh private na CLasse Mae
> > >         }
> > >     }
> > >
> > >     public static void main(String[] s) {
> > >         ClasseFilha cf = new ClasseFilha();
> > >     }
> > >
> > >}
> > >
> > >
> > >
> > >On Fri, 06 July 2001, "Michael Santos" wrote:
> > >
> > > >
> > > > Desculpe se vc se sentiu ofendido, mas perguntei
> qdo vc se certificou pq
> > > > antes da mudanca de outrubro (ou sera setembro?),
> todas as perguntas da
> > > > certificacao NAO DIZIAM QTAS OPCOES ESTAVAM CERTAS
> e pra mim cairam duas
> > > > perguntas ressaltando este ponto de acesso a
> private members.
> > > >
> > > > Perguntei qdo pq acho q vc deve ter tirado depois
> disso e tvz isso tenha
> > > > feito com q o fato de vc desconhecer este ponto
> sobre private nao tenha
> > >tido
> > > > tanto peso qto deveria... Isso nao eh bem um erro
> de compilacao, pq pode
> > > > levar a erros de modelagem e analise (nao sei se
> eh isso q vc faz). Se
> > >vc
> > > > quiser ser analista OO, precisa conhecer estes
> pontos...
> > > >
> > > > Mais uma curiosidade pra lista: protected eh uma
> caixinha de surpresas
> > >tb.
> > > > VC aprende desde o tutorial da Sun: protected
> permite q as subclasses e
> > >as
> > > > classes do mesmo pacote chamem o metodo. Entao em:
> > > >
> > > > package pai;
> > > >
> > > > public class Pai {
> > > >    protected void algo() {
> > > >    }
> > > > }
> > > >
> > > > package filho;
> > > >
> > > > import pai.*;
> > > >
> > > > public class Filho extends Pai {
> > > >    private class InnerClass {
> > > >       public InnerClass() {
> > > >          algo(); //ERRO DE VISIBILIDADE DE
> ACESSO!!!!!!!!
> > > >       }
> > > >    }
> > > > }
> > > >
> > > > class OutraClasse {
> > > >    public void algumMetodo() {
> > > >       Filho f = new Filho();
> > > >       f.algo(); //ERRO DE VISIBILIDADE DE
> ACESSO!!!!!!!!
> > > >    }
> > > > }
> > > >
> > > > vc nao espera q ocorram estes erros de compilacao.
> O segundo, da
> > > > OutraClasse, parece ateh aceitavel, jah q um
> metodo protected soh pode
> > >ser
> > > > chamado por outra classe do pacote ONDE ELE FOI
> DEFINIDO (ninguem fala
> > >isso
> > > > com estas palavras). Agora, esse primeiro, no qual
> uma InnerClass NAO
> > > > CONSEGUE CHAMAR UM METODO PROTECTED DA SUPERCLASSE
> DA OUTERCLASS parece
> > > > muito bizarro, jah q vc aprende q todos os metodos
> da outer class
> > >(Filho)
> > > > sao visiveis a InnerClass e algo() eh um metodo da
> classe Filho por
> > > > heranca...
> > > >
> > > > Bastante bizarro... Mas a solucao pra essa
> aberracao eh bem simples:
> > > >
> > > > package pai;
> > > >
> > > > public class Pai {
> > > >    protected void algo() {
> > > >    }
> > > > }
> > > >
> > > > package filho;
> > > >
> > > > import pai.*;
> > > >
> > > > public class Filho extends Pai {
> > > >    protected void algo() {
> > > >       super.algo();
> > > >    }
> > > >
> > > >    private class InnerClass {
> > > >       public InnerClass() {
> > > >          algo(); //COMPILA PERFEITAMENTE!!!!!!!!
> > > >       }
> > > >    }
> > > > }
> > > >
> > > > class OutraClasse {
> > > >    public void algumMetodo() {
> > > >       Filho f = new Filho();
> > > >       f.algo(); //COMPILA PERFEITAMENTE!!!!!!!!
> > > >    }
> > > > }
> > > >
> > > > Coisas do Java... Acho q vou traduzir e mandar pro
> Java Pitfalls da
> > > > JavaWorld... :-P
> > > >
> > > > ---------------------------------------------------
> -
> > > > Michael Nascimento Santos
> > > > Sun Certified Programmer for the Java 2 Platform
> > > > Analista/Consultor
> > > > Moderador SouJava - www.soujava.org.br
> > > > CPM Sistemas - www.cpm.com.br
> > > >
> > > > >From: "Edson Tirelli" <[EMAIL PROTECTED]>
> > > > >Reply-To: [EMAIL PROTECTED]
> > > > >To: <[EMAIL PROTECTED]>
> > > > >Subject: RES: [java-list] Basico de OO em JAVA -
> CUIDADO MESMO!!!!
> > > > >Date: Thu, 5 Jul 2001 17:41:15 -0300
> > > > >
> > > > >
> > > > >    Uuups... q viagem... foi mal por essa...
> > > > >    Valeu pelo exclarecimento. Como vc pode ver,
> nunca tinha precisado
> > > > >disso
> > > > >antes. Vou passar a testar o codigo antes de
> enviar. :P
> > > > >
> > > > >    Quanto a minha certificacao, garanto q vale
> tanto quanto a de qq
> > >um. Eh
> > > > >um pedaco de papel q diz q passamos numa prova.
> Agora na hora do
> > >trabalho
> > > > >serio, nao eh ela q vai entregar o sistema
> funcionando e dentro do
> > >prazo...
> > > > >erro de compilacao se resolve em 30 segundos...
> erro de logica e
> > >modelagem,
> > > > >eh outra historia...
> > > > >
> > > > >    Abraco,
> > > > >       Edson
> > > > >
> > > > >  ---
> > > > >  Edson Tirelli
> > > > >  System Analyst
> > > > >  Microsoft Certified Professional
> > > > >  Sun Certified Programmer for Java 2 Platform
> > > > >  try Automatos @ www.automatos.com
> > > > >
> > > > >
> > > > > > -----Mensagem original-----
> > > > > > De: Michael Santos
> [mailto:[EMAIL PROTECTED]]
> > > > > > Enviada em: quinta-feira, 5 de julho de 2001
> 16:45
> > > > > > Para: [EMAIL PROTECTED]
> > > > > > Assunto: RES: [java-list] Basico de OO em
> JAVA - CUIDADO MESMO!!!!
> > > > > >
> > > > > >
> > > > > > Acho q seu compilador foi escrito pela
> Microsoft, meu camarada...
> > >:-P
> > > > > > Isto nao compila nem aki nem na China, tenho
> certeza absoluta...
> > > > > > Nao preciso
> > > > > > nem testar, se vc tem:
> > > > > >
> > > > > > public class A {
> > > > > >   private int x;
> > > > > > }
> > > > > >
> > > > > > public class B extends A {
> > > > > >   public B() {
> > > > > >      x = 1;
> > > > > >   }
> > > > > > }
> > > > > >
> > > > > > e tentar compilar, vc vai receber
> ou "undefined variable: x" ou
> > > > > > "variable x
> > > > > > is not visible to B" ou alguma coisa assim...
> > > > > > A resposta anterior eh correta...
> > > > > >
> > > > > > Qdo vc se certificou?????????????
> > > > > >
> > > > > > -----------------------------------------------
> -----
> > > > > > Michael Nascimento Santos
> > > > > > Sun Certified Programmer for the Java 2
> Platform
> > > > > > Analista/Consultor
> > > > > > Moderador SouJava - www.soujava.org.br
> > > > > > CPM Sistemas - www.cpm.com.br
> > > > > >
> > > > > >     From: "Edson Tirelli"
> <[EMAIL PROTECTED]>
> > > > > > Reply-To: [EMAIL PROTECTED]
> > > > > > To: <[EMAIL PROTECTED]>
> > > > > > Subject: RES: [java-list] Basico de OO em
> JAVA - CUIDADO
> > > > > > Date: Thu, 5 Jul 2001 11:49:59 -0300
> > > > > >
> > > > > >
> > > > > >     Amigos,
> > > > > >
> > > > > >     Este assunto inclusive circulou aqui na
> lista a um tempo atras.
> > >Eh
> > > > >um
> > > > > > erro comum q eu tambem cometia no inicio, mas
> eh importante
> > >exclarecer:
> > > > >os
> > > > > > modificadores de acesso limitam o ACESSO
> EXTERNO aos atributos  da
> > > > >classe,
> > > > > > mas NAO LIMITAM A HERANCA.
> > > > > >     Isso quer dizer q se uma classe eh FILHA
> de outra, ela vai
> > >HERDAR
> > > > >TUDO
> > > > > > da classe MAE, podendo eventualmente
> sobrescrever algumas coisas
> > >(por
> > > > > > exemplo, o q NAO estiver definido como "final"
> na classe mae).
> > > > > >     Assim, no exemplo citado pelo colega:
> > > > > >
> > > > > > public class Mae {
> > > > > >     private   int x;
> > > > > >     protected int y;
> > > > > > }
> > > > > >
> > > > > > public class Filha extends Mae {
> > > > > >     // A FILHA HERDA O ATRIBUTO PRIVADO "X" E
> O ATRIBUTO PROTEGIDO
> > >"Y"
> > > > > >     public Filha() {
> > > > > >        x = 50;  // PERFEITAMENTE CORRETO
> > > > > >        y = 100; // PERFEITAMENTE CORRETO
> > > > > >     }
> > > > > > }
> > > > > >
> > > > > >      Pra tentar exclarecer o modificador
> private, observe essa nova
> > > > > > implementacao abaixo:
> > > > > >
> > > > > > public class Filha extends Mae {
> > > > > >     // A FILHA HERDA O ATRIBUTO PRIVADO "X" E
> O ATRIBUTO PROTEGIDO
> > >"Y"
> > > > > >     public Filha() {
> > > > > >        x = 50;  // PERFEITAMENTE CORRETO
> > > > > >        y = 100; // PERFEITAMENTE CORRETO
> > > > > >     }
> > > > > >
> > > > > >     public void m() {
> > > > > >         Mae amae = new Mae();
> > > > > >         amae.x = 30;     // ERRO DE
> COMPILACAO -> x eh atributo
> > >privado
> > > > >de
> > > > > > Mae
> > > > > >         amae.y = 20;     // CORRETO -> y eh
> atributo protegido de
> > >Mae
> > > > > >
> > > > > >         this.x = 50;     // CORRETO ->
> atributo x herdado
> > > > > >         this.y = 60;     // CORRETO ->
> atributo y herdado
> > > > > >     }
> > > > > > }
> > > > > >
> > > > > >      Observe q a diferenca entre atributos
> privados e protegidos eh
> > >q os
> > > > > > atributos protegidos permitem o ACESSO EXTERNO
> quando o objeto q
> > >estiver
> > > > > > fazendo o acesso for de uma classe FILHA ou DO
> MESMO PACOTE q a
> > >classe q
> > > > > > contem o atributo.
> > > > > >
> > > > > >      Espero ter exclarecido, mais do que
> complicado... :)
> > > > > >
> > > > > >      Abraco,
> > > > > >          Edson
> > > > > >
> > > > > > ---
> > > > > > Edson Tirelli
> > > > > > System Analyst
> > > > > > Microsoft Certified Professional
> > > > > > Sun Certified Programmer for Java 2 Platform
> > > > > > try Automatos @ www.automatos.com
> > > > > >
> > > > > >
> > > > > >
> > > > > > -----Mensagem original-----
> > > > > > De: Alexandre Nóbrega Duarte
> [mailto:[EMAIL PROTECTED]]
> > > > > > Enviada em: quinta-feira, 5 de julho de 2001
> 08:10
> > > > > > Para: [EMAIL PROTECTED]
> > > > > > Assunto: Re: [java-list] Basico de OO em JAVA
> > > > > >
> > > > > >
> > > > > > Acho que o que voce quer fazer e isso.
> > > > > >
> > > > > >
> > > > > > public class Mae {
> > > > > >
> > > > > >     private int atributo;
> > > > > >
> > > > > >     public Mae(){
> > > > > >
> > > > > >     }
> > > > > >
> > > > > > }
> > > > > >
> > > > > >
> > > > > > public class Filha extends Mae {
> > > > > >
> > > > > >     public Filha() {
> > > > > >         atributo = 0;
> > > > > >     }
> > > > > > }
> > > > > >
> > > > > > Se for isso, eh impossivel, mas voce pode
> contornar este problema
> > > > > > fazendo o
> > > > > > atributo protected ao inves de private. Dessa
> forma ele continua a
> > >ser
> > > > > > privado para quem esta de fora da classe mas
> fica publico para as
> > > > >classes
> > > > > > filhas.
> > > > > >
> > > > > >
> > > > > >
> > > > > > public class Mae {
> > > > > >
> > > > > >     protected int atributo;
> > > > > >
> > > > > >     public Mae(){
> > > > > >
> > > > > >     }
> > > > > >
> > > > > > }
> > > > > >
> > > > > > Alexandre Nóbrega Duarte
> > > > > > Pós-Graduação em Informática
> > > > > > Departamento de Sistemas e Computação
> > > > > > Universidade Federal da Paraíba
> > > > > > ----- Original Message -----
> > > > > > From: Fabio Ferreira
> > > > > > To: [EMAIL PROTECTED]
> > > > > > Sent: Wednesday, July 04, 2001 5:13 PM
> > > > > > Subject: [java-list] Basico de OO em JAVA
> > > > > >
> > > > > >
> > > > > > Como se "seta" um atributo (private) herdado
> da classe mae no
> > > > > > construtor da
> > > > > > classe filha ?
> > > > > >
> > > > > > Fabio Ferreira
> > > > > >
> > > > > >
> >
> >________________________________________________________
> ________________
> > > >
> >
> >________________________________________________________
> _________________
> > > > Get Your Private, Free E-mail from MSN Hotmail at
> > >http://www.hotmail.com.
> > > >
> > > >
> >
> >
> _________________________________________________________
> ________________
> > Get Your Private, Free E-mail from MSN Hotmail at
> http://www.hotmail.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
> > para sair da lista: envie email para java-list-
> [EMAIL PROTECTED]
> > -------------------------------------------------------
> ------------------
> >
> >
> 
> 
> __________________________________________________________________________
> Acesso pelo menor preço do mercado! R$ 14,90 nos 3 primeiros meses!
> ASSINE AGORA! http://www.bol.com.br/acessobol/
> 
> 
> 
> ------------------------------ 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
> 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
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a