<identifier> expected

6 respostas
D

Boa noite pessoal,

Sou iniciante em Java e estou com um problema no meu programa.
A Classe Agenda.java utiliza (chama) a Classe ManipulaArquivo.java e o erro:

E:\UDESC\5a_Fase\TES-01\Agenda\src\Agenda.java:27: expected
public ManArq_ArquivoAgenda.LeDados();
^

Está aparecendo.

Se puderem me ajudar.
Desde já agradecido.

Classe Agenda.java

public class Agenda {

	//Cria Tabela Hash para classe Agenda
	public Hashtable TblHas_DadosAgenda = new Hashtable();
    
    	//Cria Arquivo para a classe Agenda
    	public ManipulaArquivo ManArq_ArquivoAgenda = new ManipulaArquivo();
    	
       	//Le a tabela do arquivo (quando abrir o programa)
    	public ManArq_ArquivoAgenda.LeDados();   

    
    public static void main(String[] args) {


    	JanelaPrincipal JP_Janela = new JanelaPrincipal();

    	
    }
}

Classe ManipulaArquivo.java

class ManipulaArquivo implements Serializable{
	
	public ManipulaArquivo(){
	}
	
	//Define nome do arquivo
	String Str_Arq = "Agenda1.txt";	
	
	public void GravaDados() {
		
		//Trata o comportamento da gravacao do arquivo
		try {

			File Fil_Arquivo = new  File(Str_Arq);
			FileOutputStream ArqFlx_Arquivo = new FileOutputStream( Fil_Arquivo );
    		        ObjectOutputStream FlxSai_Arquivo = new ObjectOutputStream( ArqFlx_Arquivo );
    		
    		        FlxSai_Arquivo.writeObject(TblHas_DadosAgenda);
    		        FlxSai_Arquivo.close();
    		
		}
		catch(Exception Bad) {
			
			System.out.println("Erro: "+Bad.getMessage());
			
		}
	}
	
	
	public void LeDados() {
		
		//Trata o comportamento da leitura do arquivo
		try {

			File Fil_Arquivo = new  File(Str_Arq);
			FileInputStream ArqFlx_Arquivo = new FileInputStream( Fil_Arquivo );
    		        ObjectInputStream FlxEnt_Arquivo = new ObjectInputStream( ArqFlx_Arquivo );
    		
    		        TblHas_DadosAgenda = (Hashtable)FlxEnt_Arquivo.readObject();
    		        FlxEnt_Arquivo.close();
    		
		}
		catch(Exception Bad2) {
			
			System.out.println("Erro: "+Bad2.getMessage());
			
		}
	}	
	
}

Att.

Diego J. Hoss
diegohoss{arroba}gmail[ponto]com

6 Respostas

J

Retira o modificador de acesso public

D

Olá!!!
Eu tirei mas não funcionou.
o ‘^’ aparece embaixo do ‘(’.

Abraços!

V

Ola

public ManArq_ArquivoAgenda.LeDados();

vc tem quem chamar o metodo LeDados e nao declara-lo, retire a linha que citei a cima e coloque-a dentro de algum metodo.
vc poderia ter um metodo dentro da classe Agenda, ex.:

public void executarLeitura() {
   ManArq_ArquivoAgenda.LeDados();
}

Conceitos:
Classes com 1a. letra maiuscula
Metodos iniciando em minusculo caso tenha segundo nome, o segundo iniciando em maiusculo. Ex.: leDados, executar, gravarArquivo, etc…
Variaveis de referencia mesmo conceito de metodos e nunca utilize _ ex.: manArquivoAgenda.
So utilize _ em constantes.

D

Muito obrigado!

Esclareci minhas idéias.

E quanto as convenções, eu às deixei de lado, utilizei umas particulares minhas, hehehe.
Mas é interessante se habituar.

Muito obrigado.

Att.

Diego J. Hoss

J

Eh isso mesmo naum tinha prestado muito atenção :?

B
Diego.rsc:
public class Agenda {

	//Cria Tabela Hash para classe Agenda
	public Hashtable TblHas_DadosAgenda = new Hashtable();
    
    	//Cria Arquivo para a classe Agenda
    	public ManipulaArquivo ManArq_ArquivoAgenda = new ManipulaArquivo();
    	
       	//Le a tabela do arquivo (quando abrir o programa)
    	public ManArq_ArquivoAgenda.LeDados();   

    
    public static void main(String[] args) {


    	JanelaPrincipal JP_Janela = new JanelaPrincipal();

    	
    }
}
Se quiser rodar isso quando a classe carregar, em ordem, você pode
public class Agenda {

    public static ManipulaArquivo ManArq_ArquivoAgenda;
    	
    static {
        ManArq_ArquivoAgenda = new ManipulaArquivo();

        ManArq_ArquivoAgenda.LeDados();   
    }

    (...)
}
Criado 4 de junho de 2008
Ultima resposta 4 de jun. de 2008
Respostas 6
Participantes 4