Empacou

6 respostas
heladiofreitas

Ai galera eu tou tentando fazer uma agenda basica…
mais empacou na hora de cadastrar depois que eu digito o nome da erro…
Alguem poderia me ajudar?

----------------------------------------CLASSE MAIN-------------------------------------------------

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package agenda;

/**
 *
 * @author Heladio
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        agenda agend=new agenda();
        agend.menu();
        
        
        
        
        
        
    }

}

---------------------------------------------------------CLASSE PESSOAS-----------------------------------------------------------------

package agenda;


public class pessoas {
    
String nome;
int idade;

 
pessoas(String name, int year) {
    nome=name;
    idade=year;
}

public void setNome(String name){
    nome=name;    
}    
    
public String getNome(){
    return nome;
}
    
public void setIdade(int year){
    idade=year;
}

public int getIdade(){
    return idade;
}

    
    
    
    

}

-----------------------------------------------------CLASSE AGENDA-------------------------------------------------------------------------

package agenda;

import java.util.Scanner;
import javax.swing.JOptionPane;
import java.lang.String;
import java.lang.System;



public class agenda {

    
    Scanner ler = new Scanner(System.in);
    static pessoas[] pessoa = new pessoas[100];
    
    
    
    public void menu(){
    
        System.out.println("----------AGENDA----------\n\n");
        System.out.println("1 - Inserir\n\n");
        
        switch(ler.nextInt()){
        case 1: 
            inserir();
            break;
        
        }
        
        
    }
    
    
    public void inserir(){
    int y;
    int x=0;
    System.out.println("----------INSERIR----------\n\n");
    
    System.out.println("Quantidade de cadastros: \n");
    y=ler.nextInt();

    
    
    for(int i=0;i<y;i++){
    

    pessoa[x]=new pessoas();
        
    System.out.println("Nome: ");
    pessoa[x].setNome(lerString());
    System.out.println("Idade: ");
    pessoa[x].setIdade(lerInt());
    x++;
    }
    menu();    
    }
    

    
    public static String lerString(){
    // método que lê Strings de entrada.

    Scanner leitorString = new Scanner(System.in);
    return leitorString.nextLine();
    }
    
    public static int lerInt(){
    // método que le Inteiros de entrada.

    Scanner leitorInt = new Scanner(System.in);
    return leitorInt.nextInt(); 
    }

   
    
    
    
    
    
}

Ficaria muito agradecido se alguem me ajudasse…

6 Respostas

roassunca

Coloque o erro (stacktrace) que deu…

Lavieri

vc esta abrindo varios scanners, acredito que não há necessidade, não sei c isso é o erro, mais aparentemente é...

tente fazer isso

private static Scanner scanner;

public static getScanner() {
     if (scanner == null)
          scanner = new Scanner(System.in);
     return scanner;
}
public static void closeScanner() {
     if (scanner == null)
            return;
     
     synchronized(scanner) {
           scanner.close();
           scanner = null;
     }
}

coloque esse método na sua agenda...

sempre que vc precisar do scanner, em vez de criar outro... use... getScanner()

heladiofreitas

Mais onde eu coloco?
na classe aghenda…
acabei de tentar e ta dando erro…

heladiofreitas

O compilador le direitim o codigo…
Só que quando xega na passagem do nome ai ele da esse erro a seguir…
Acredito que o erro esta entre as linhas 47 e 51…

ALGUEM ME AJUDA POR FAVOR…

Galera o erro que da é esse ai:

init:

deps-jar:

Deleted 1 out of date files in 0 seconds

Compiling 2 source files to D:\Heladio\Estudos\Java\NetBeansProjects\Agenda\build\classes

D:\Heladio\Estudos\Java\NetBeansProjects\Agenda\src\agenda\agenda.java:55: cannot find symbol

symbol  : constructor pessoas()

location: class agenda.pessoas

pessoa[x]=new pessoas();

1 error

BUILD FAILED (total time: 3 seconds)
Lavieri

é pq sua classe pessoa não tem o construtor vazio, ela so tem construtor com nome e idade

pessoas(String name, int year) { nome=name; idade=year; }

portanto vc so pode faze new pessoa(“joao”,12); por exemplo… não é possivel fazer new pessoa()

a não ser q vc declare um construtor vazio… adcione a seguinte linha na classe pessoa

pessoas() {}

que ai esse erro vai sumir

Ps.: java é case sensitve, e por padrão é bom deixa a primeira letra de suas classes em maiusculo, então no lugar de “pessoas” seria “Pessoas” … outra dica que eu te dou é de colocar a classe no singular, o que ficaria “Pessoa” … fica ate estranho quando vc faz, = new Pessoas()

heladiofreitas

Cara deu certo…
muito obrigado…
Abraço…

Criado 23 de fevereiro de 2009
Ultima resposta 23 de fev. de 2009
Respostas 6
Participantes 3