Compilar (Resolvido)

11 respostas
S

Pessoa pessoa ajuda de vcs, estou iniciando num curso q achei na internet sobre java e consigo fazer um programa simples e compilar ele, mas agora quando pego um programa tipo esse nao da certo, sera q alguem pode me ajudar a compilar isso aqui:
Bom eu vo por igual como tava na apostila ok.
La não fala se é um arquivo só, se são 3 não explica nada. Bom la vai os Arquivos.
primeiro:
Pessoa.java

/**

Pessoa

*/

public class Pessoa

{

private String Nome;

private String Tel;	

private String End;
//Contrutor	
public Pessoa(String n, String t, String e)
{
	Nome = n; Tel = t; End = e;
}

/**
	getNome
*/
public String GetNome(){return Nome;}

/**
	getNome
*/
public String getTel(){return Tel;}
/**
getEnd
*/
public String getEnd(){return End;}

}

Segundo:

Agenda.java

/**
AGENDA Versao Console 2.0
/
import java.util.
;

public class Agenda

{

Hashtable pessoas;
//Contrutor
public Agenda() {pessoas = new Hashtable();}

/**
Inserir
*/

public void inserir(Pessoa p) {pessoas.put(p.getNome(),p);}

/**
Consultar
*/

public Pessoa getPessoa(String nome)
{return (Pessoa) pessoas.get(nome);}

/**
Listar
*/

public Enumeration getPessoas(){return pessoas.elements();}

}

Terceiro:

AgendaInt.java

/**
AgendaInt
Interface console da agenda.
*/

import java.io.;
import java.util.
;

public class AgendaInt

{	

Agenda ag;

BufferedReader in;
// Construtor

public AgendaInt()
{
	ag = new Agenda();
	in = new BufferedReader(new InputStreamReader(System.in));
}

/**
Exibir lista
*/

public void Exibirlista()
{
	Pessoa p;
	for (Enumeration e = ag.getPessoas(); e.hasMoreElemtents();)
	{
	p = (Pessoa) e.nextElement();
	System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel()+"\nEndereço:"+p.getEnd()+"\n");
	}
}

/**
exibirPessoa
*/
public void exibirPessoa()
{
	String nome=null;

	try {
		System.out.println("Entre com o nome:");
		nome = in.readLine();
		if (nome.length()<1) System.exit(-1);
	} catch(IOException e)
		{System.out.println(e.getMessage());System.exit(-1);}
	Pessoa p = ag.getPessoa(nome);
	if (p!=null)
	{
	System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel()+"\nEndereço:"+p.getEnd());
	}
}

/**
	obterPessoa
*/
public void obterPessoa()
{	
	String nome;
	String tel;
	String end;

	try {
		System.out.println("Entre com o nome:");
		System.out.flush();
		nome = in.readLine();
		if (nome.length()<1) System.exit(-1);
		System.out.println("\nEntre com o Telefone:");
		System.out.flush();
		tel = in.readLine();
		System.out.println("\nEntre com o Endereço:");
		System.out.flush();
		end = in.readLine();
		ag.inserir(new Pessoa(nome,tel,end));
	} catch(IOException e)
	{System.out.println(e.getMessage());System.exit(-1);}
}

/**
gravar
*/
public void gravar()
{
	try
	{
		Pessoa p;
		BufferedWriter fout = new BufferedWriter(
			new FileWriter("agenda.dat"));
		for (Enumeration e = ag.getPessoas();
			e.hasMoreElements();)
		{
			p = (Pessoa) e.nextElement();
			fout.write(p.getNome()+"\n"+p.getTel()+"\n"+p.getEnd()+"\n");
		}
		fout.flush();
		fout.close();
	}catch(FileNotFoundException e)
	{System.out.println("Arq. nao encontrado");}
		catch(IOException e)
	{System.out.println("Erro na gravação!");}
}


/**
Carregar
*/

public void carregar()
{
	try
	{
	String nome;
	String tel;
	String end;
	
	BufferedReader fin = new BufferedReader(
			     new FileReader("agenda.dat"));
	while ((nome = fin.readLine()) != null)
	{
		tel = fin.readLine();
		end = fin.readLine();
		ag.inserir(new Pessoa(nome,tel,end));
	}
	fin.close();
	}catch(FileNotFoundException e)
	{System.out.println("Arq. nao encontrado");}
	catch(IOException e)
	{System.out.println("Erro na leitura!");}
}

//main

public static void main(String args[])
{
	AgendaInt agInt = new AgendaInt();
	String opcao="";

	for(;;)		
	{
		System.out.println(
			"\nAgenda Tabajara\n***************************\n");
		System.out.print("Opcoes:\n(i)nserir\n(c)onsultar"+
			"\n(l)istar\n(g)ravar\n(r)ecuperar\n(f)im=>");
		System.out.flush();
		try
		{
			opcao = agInt.in.readLine();
			if (opcao.length()==0) continue;
		}catch(IOException e)
		{System.out.println(e.getMessage());System.exit(-1);}

		switch(opcao.charAt(0))
		{
			case 'f' : System.exit(0);break;
			case 'i' : agInt.obterPessoa(); break;
			case 'c' : agInt.exibirPessoa(); break;
			case 'l' : agInt.Exibirlista(); break;
			case 'g' : agInt.gravar(); break;
			case 'r' : agInt.carregar(); break;
		}
	}
}

}

Bom ai estao eles, o primeiro compila, agora os outros dois nao compila.
Se alguem puder ajudar desde ja eu agradeço.

11 Respostas

B

Organiza sua postagem corretamente para que possamos entender, mensagens de erro tb são bem vindas.

Use as tag code.

tiagorg

São 3 arquivos, e o último (AgendaInt.java) é a classe que você deve chamar da linha de comando, pois é a que possui o método main().

Hildebrando_Pedroni

Caro colega.
Se esse codigo que vc digitou está realmente copiado de algum curso na internet, recomendo que você procure outro.

Indico a apostila da caelum fj11. procure por caelum no google que vc irá achar.

São 3 arquivos que vc tem ai, três classes.

Existem vários erros de sintaxe, por causa disso não compila.
Pelo que eu vi do codigo, existem outros problemas, mas como o codigo é muito extenso e não está formatado está dificil de ver.
Seria legal e mais facil da galera aqui te ajudar se vc postar o erro que o compilador te da.

Algumas considerções sobre o seu codigo:
O que eu vou falar aqui não é obrigatorio, mas seria legal vc adotar porque são convensões que facilitam a leitura do codigo até para você.

Nomes de variaveis devem iniciar com letras minusculas e seguir o padrão camelCase(para nomes de variaveis compostos de mais de um nome, o nome seguinte ao nome da variavel deve iniciar com letra maiuscula.

Ex.

int idade;
int idadeDaPessoa;  //usando camelCase

O mesmo se aplica para nomes de metodos, eles devem iniciar com letras minusculas

public void meuMetodo(){}

sobre esse comentario:

/**
AgendaInt
Interface console da agenda.
*/

AgendaInt não é uma interface, talvez vc possa falar em interface por ser nessa classe que ocorre a interação com o usuario, não confunda uma coisa com outra.

Aliás porque essa classe se chama AgendaInt?
Use nomes mais intuitivos.

Vi que a sua classe agenda e sua classe agendaint tem metodos com nomes que levam a deduzir que os metodos fazem a mesma coisa.

Algo do tipo getPessoa() e obterPessoa.

Enfim, edite o seu post, coloque nele as tags code e poste os erros que vc encontrou… Ai sim o pessoal e inclusive eu iremos te ajudar com todo o prazer.

S

Obrigado a todos q responderao mas ainda nao foi respondida minha duvida.
Minha duvida é q nao consigo compilar esses tres arquivos. pelo meu intendimento acho q um programa nao compila por causa do outro, se abrir o arquivo agenda.java no netbeans ele mostra um erro onde ta escrito Pessoa, tipo como se ele nao reconhece a classe Pessoa “não se sse é classe mesmo q se chama” mas é isso q nao deixa ele compilar.

o erro q da ao tentar compilar o AgendaInt.java é:

D:\java\Agenda em java>javac AgendaInt.java

AgendaInt.java:29: cannot find symbol

symbol  : method hasMoreElemtents()

location: interface java.util.Enumeration

for (Enumeration e = ag.getPessoas(); e.hasMoreElemtents()<img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/w.pngink.png?v=9" title=":wink:" class="emoji" alt=":wink:">

^

AgendaInt.java:32: cannot find symbol

symbol  : method getNome()

location: class Pessoa

System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel(

)+"\nEndereþo:"+p.getEnd()+"\n");

^

AgendaInt.java:52: cannot find symbol

symbol  : method getNome()

location: class Pessoa

System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel(

)+"\nEndereþo:"+p.getEnd());

^

AgendaInt.java:95: cannot find symbol

symbol  : method getNome()

location: class Pessoa

fout.write(p.getNome()+"\n"+p.getTel()+"\n"+p.ge

tEnd()+"\n");

^

.\Agenda.java:19: cannot find symbol

symbol  : method getNome()

location: class Pessoa

public void inserir(Pessoa p) {pessoas.put(p.getNome(),p);}

^

5 errors
renanedpedroso

Classe Pessoa:

public class Pessoa {

    private String Nome;
    private String Tel;
    private String End;

    //Contrutor
    public Pessoa(String n, String t, String e) {
        Nome = n;
        Tel = t;
        End = e;
    }

    /**
    getNome
     */
    public String GetNome() {
        return Nome;
    }

    /**
    getNome
     */
    public String getTel() {
        return Tel;
    }

    /**
    getEnd
     */
    public String getEnd() {
        return End;
    }
}

Classe Agenda:

import java.util.*;

public class Agenda {

    Hashtable pessoas;

    //Contrutor
    public Agenda() {
        pessoas = new Hashtable();
    }

    /**
    Inserir
     */
    public void inserir(Pessoa p) {
        pessoas.put(p.getNome(), p);
    }

    /**
    Consultar
     */
    public Pessoa getPessoa(String nome) {
        return (Pessoa) pessoas.get(nome);
    }

    /**
    Listar
     */
    public Enumeration getPessoas() {
        return pessoas.elements();
    }
}

Classe AgendaInt:

public class AgendaInt
{
	Agenda ag;
	BufferedReader in;

	// Construtor

	public AgendaInt()
	{
		ag = new Agenda();
		in = new BufferedReader(new InputStreamReader(System.in));
	}

	/**
	Exibir lista
	*/

	public void Exibirlista()
	{
		Pessoa p;
		for (Enumeration e = ag.getPessoas(); e.hasMoreElemtents();)
		{
		p = (Pessoa) e.nextElement();
		System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel()+"\nEndereço:"+p.getEnd()+"\n");
		}
	}

	/**
	exibirPessoa
	*/
	public void exibirPessoa()
	{
		String nome=null;

		try {
			System.out.println("Entre com o nome:");
			nome = in.readLine();
			if (nome.length()<1) System.exit(-1);
		} catch(IOException e)
			{System.out.println(e.getMessage());System.exit(-1);}
		Pessoa p = ag.getPessoa(nome);
		if (p!=null)
		{
		System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel()+"\nEndereço:"+p.getEnd());
		}
	}

	/**
		obterPessoa
	*/
	public void obterPessoa()
	{
		String nome;
		String tel;
		String end;

		try {
			System.out.println("Entre com o nome:");
			System.out.flush();
			nome = in.readLine();
			if (nome.length()<1) System.exit(-1);
			System.out.println("\nEntre com o Telefone:");
			System.out.flush();
			tel = in.readLine();
			System.out.println("\nEntre com o Endereço:");
			System.out.flush();
			end = in.readLine();
			ag.inserir(new Pessoa(nome,tel,end));
		} catch(IOException e)
		{System.out.println(e.getMessage());System.exit(-1);}
	}

	/**
	gravar
	*/
	public void gravar()
	{
		try
		{
			Pessoa p;
			BufferedWriter fout = new BufferedWriter(
				new FileWriter("agenda.dat"));
			for (Enumeration e = ag.getPessoas();
				e.hasMoreElements();)
			{
				p = (Pessoa) e.nextElement();
				fout.write(p.getNome()+"\n"+p.getTel()+"\n"+p.getEnd()+"\n");
			}
			fout.flush();
			fout.close();
		}catch(FileNotFoundException e)
		{System.out.println("Arq. nao encontrado");}
			catch(IOException e)
		{System.out.println("Erro na gravação!");}
	}


	/**
	Carregar
	*/

	public void carregar()
	{
		try
		{
		String nome;
		String tel;
		String end;

		BufferedReader fin = new BufferedReader(
				     new FileReader("agenda.dat"));
		while ((nome = fin.readLine()) != null)
		{
			tel = fin.readLine();
			end = fin.readLine();
			ag.inserir(new Pessoa(nome,tel,end));
		}
		fin.close();
		}catch(FileNotFoundException e)
		{System.out.println("Arq. nao encontrado");}
		catch(IOException e)
		{System.out.println("Erro na leitura!");}
	}

	//main

	public static void main(String args[])
	{
		AgendaInt agInt = new AgendaInt();
		String opcao="";

		for(;;)
		{
			System.out.println(
				"\nAgenda Tabajara\n***************************\n");
			System.out.print("Opcoes:\n(i)nserir\n(c)onsultar"+
				"\n(l)istar\n(g)ravar\n(r)ecuperar\n(f)im=>");
			System.out.flush();
			try
			{
				opcao = agInt.in.readLine();
				if (opcao.length()==0) continue;
			}catch(IOException e)
			{System.out.println(e.getMessage());System.exit(-1);}

			switch(opcao.charAt(0))
			{
				case 'f' : System.exit(0);break;
				case 'i' : agInt.obterPessoa(); break;
				case 'c' : agInt.exibirPessoa(); break;
				case 'l' : agInt.Exibirlista(); break;
				case 'g' : agInt.gravar(); break;
				case 'r' : agInt.carregar(); break;
			}
		}
	}
}

Amigo encontrei dois erros nos seus códigos…

Primeiro:

Na sua classe Pessoa o método

GetNome()

deve ser escrito com o ‘G’ minúsculo, pois é assim que está sendo chamado nas Classes Agenda e AgendaInt. Ficando assim:

getNome()

Segundo:

Na sua classe AgendaInt o método

hasMoreElemtents();

na verdade está escrito errado. A forma correta é:

hasMoreElements();

Tente verificar isto que te falei e posta aí se deu certo.

Ah! Se você postar seus códigos sem usar as tags ‘code’ quase ninguém lerá seu post, leia aqui:

http://www.guj.com.br/posts/list/50115.java

Abraço!

S

amigo eu corrigi o q vc falou agora ta dando apenas um erro

D:\java\Agenda em java>javac AgendaInt.java

AgendaInt.java:29: cannot find symbol

symbol  : method hasMoreElemetents()

location: interface java.util.Enumeration

for (Enumeration e = ag.getPessoas(); e.hasMoreElemetents()<img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/w.pngink.png?v=9" title=":wink:" class="emoji" alt=":wink:">

^

1 error
renanedpedroso

Cara… Você não corrigiu direito, fique atento!

hasMoreElemetents()

não é

hasMoreElements();

(Como postei)

Abraço!

S

Amigo ja achei o erro, ta escrito errado o elements. agora compilou valeu mesmo:D

Hildebrando_Pedroni

Para compilar o seu programa você deve rodar a classe que contem o main.

Ok, vamos aos erros:

A classe pessoa está Ok, embora não siga as convenções. A classe Agenda possui o erro:
/**
	 * Inserir
	 */

	public void inserir(Pessoa p) {
		pessoas.put(p.getNome(), p); //Não seria p.GetNome com o G maiusculo como você declarou em Pessoa? (Siga as convenções)
	}
public void Exibirlista() { Pessoa p; for (Enumeration e = ag.getPessoas(); e.hasMoreElemtents(){ p = (Pessoa) e.nextElement(); System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel()+"\nEndereço:"+p.getEnd()+"\n"); // +p.getNome()+ Você declarou isso com GetNome() com g maiusculo } } [/code] Analise o código acima, essa declaração de for está correta? No final dela não estaria faltando um ")", será que é só isso?
System.out.println("\nNome:" + p.getNome() + "\nTelefone:"



Na classe AgendaInt, existem varios erros:
[code]
System.out.println("\nNome:" + p.getNome() + "\nTelefone:" // mesma coisa p.GetNome();
Existem outros erros envolvento esse p.GetNome, sugiro que vc troque ele na classe Pessoa para p.getNome(), isso fará com que alguns erros sejam corrigidos.

Veja as declarações for, vc está esquecendo de fechar com um ")" em quase todas.

E a declaração do for abaixo não e valida:
for(;	
{ 
System.out.println( ...

Vá corrigindo o codigo, veja que a maioria dos erros cometidos são de sintaxe, esses erros tem que ser corrigidos senão nunca irá compilar.

AgendaInt.java:32: cannot find symbol symbol : method getNome() location: class Pessoa System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel( )+"\nEndereþo:"+p.getEnd()+"\n"); ^ AgendaInt.java:52: cannot find symbol symbol : method getNome() location: class Pessoa System.out.println("\nNome:"+p.getNome()+"\nTelefone:"+p.getTel( )+"\nEndereþo:"+p.getEnd()); ^ AgendaInt.java:95: cannot find symbol symbol : method getNome() location: class Pessoa fout.write(p.getNome()+"\n"+p.getTel()+"\n"+p.ge tEnd()+"\n"); ^ .\Agenda.java:19: cannot find symbol symbol : method getNome() location: class Pessoa public void inserir(Pessoa p) {pessoas.put(p.getNome(),p);} ^

Perceba que a maioria dos seus erros são porque o compilador não acha na classe Pessoa o metodo getNome(), porque lá ele está declarado como GetNome().

Qualquer duvida mais, poste ai.

Hildebrando_Pedroni

Hehehehe.

Mandaram varios posts enquanto eu escrevia o meu…
Bom, se o problema esta resolvido então ok.
Abraços.

renanedpedroso

Hildebrando Pedroni:
Hehehehe.

Mandaram varios posts enquanto eu escrevia o meu…
Bom, se o problema esta resolvido então ok.
Abraços.

hehehe

É isso aí, todo mundo ajudando.
:slight_smile:

Entrei recentemente no fórum e estou gostando bastante da parceria do pessoal!

sijoga:

“Não esqueça de editar o titulo do tópico para [RESOLVIDO] caso esteja satisfeito com as respostas.”

Criado 18 de março de 2010
Ultima resposta 19 de mar. de 2010
Respostas 11
Participantes 5