Ola pessoal, minha duvida eh a seguinte…
Tenho a seguinte estrutura de diretórios…para treinar acessos com pacotes:
br.edu.treinando
+ client
+ server
…dentro de br.edu.treinamento tenho o programa TestaServerClient.java
que tem por objetivo instaciar classes dentro de client e server para
testar os modificadores java:
import server.*;
import client.*;
class TestaServerClient {
public static void main(String[] args) {
SubClasse_B sbc = new SubClasse_B();
Client_A ca = new Client_A();
}
}
…dentro de client tenho o programa Client_A.java que vai acessar um
membro público da Classe_A que está em server:
package client;
import server.Classe_A;
// Classe deve ser pública.
public class Client_A {
// Construtor deve ser público.
public void Client_A(){
System.out.println("No pacote client..classe Client_A...");
System.out.println(Classe_A.publ);
}
}
…e dentro do server tenho as seguintes classes Classe_A e SubClasse_B que
estão funcionando perfeitamente.
package server;
public class Classe_A {
// Cria vários tipos de acessos.
private String priv = "String privada";
protected String prot = "String protegida";
public String publ = "String public";
String defa = "String Default";
// Construtor padrão da Classe_A.
Classe_A(){
System.out.println("Classe_A : "+priv);
}
}
… e a SubClasse_B com relacionamento de herança:
package server;
// Classe deve ser pública.
public class SubClasse_B extends Classe_A {
// Construtor deve ser público.
public SubClasse_B(){
//System.out.println(super.priv); // ERRO!
System.out.println("Na SubClasse_B...");
System.out.println(super.prot);
System.out.println(super.publ);
System.out.println(super.defa);
}
}
Gente, meu problema é que o programa funciona perfeitamente, mas não estou conseguindo
acessar o membro público da Classe_A do pacote server.
Alguem ai poderia me dar uma ajuda?
Lembrando que ja compilei usando o comando:
set CLASSPATH=.;%JAVA_HOME%;c:\br.edu.treinando
C:\br.edu.treinando>javac TestaServerClient.java
.\client\Client_A.java:10: non-static variable publ cannot be referenced from a
static context
System.out.println(Classe_A.publ);
^
1 error
Acho que vcs já perceberam o problema aqui…
é tentar acessar a variável publ do tipo public…
que coisa, isso como público não era pra ser visível normalmente?
E outra coisa, não posso deixar com static pois perde-se o objetivo da variável.
Quem puder ajudar dá um grito ae!
Thanks!