Ae galera do GUJ, estou iniciando em Java e to com uma dificuldade nessa classe, consigo cadastrar o primeiro objeto, mas quando passa pro segundo na hora de entrar os dados ele pula o nome, não deixa eu digitar e vai direito pro campo idade já, pq isso?
Outra coisa, eu criei o vetor dos objetos dentro da classe Cadastro, ta certo fazer assim ou teria que criar o vetor dentro do método main e ai chamar a classe.função(objeto)
import java.util.Scanner;
public class Cadastro {
private int max = 100;
private int i = 0;
Scanner s = new Scanner(System.in);
Pessoa[] pessoa = new Pessoa[100];
//Metodos
public void cadastrar()
{
pessoa[i] = new Pessoa();
System.out.println("Nome: ");
pessoa[i].setNome(s.nextLine());
System.out.println("Idade: ");
pessoa[i].setIdade(s.nextInt());
System.out.println("CPF: ");
pessoa[i].setCpf(s.nextInt());
i++;
}
public void excluir()
{
}
public void exibir()
{
System.out.println("Nome: " + pessoa[i-1].getNome());
System.out.println("Idade: " + pessoa[i-1].getIdade());
System.out.println("CPF: " + pessoa[i-1].getCpf());
}
}
Amigo, qual IDE você utiliza? já sabe contruir telas com swing?
tente colocar o i++ antes de pessoa[i] = new Pessoa(); , para adicionar antes de fazer o cadastro
Pessoa é uma clase. Vou declarar a estrutura, tenho 4 classes: principal(método main), Pessoa, Endereco e Cadastro. Pois bem, dentro da classe principal, eu criei um objeto do classe Cadastro, através de um menuzinho e talz chamo a função cadastrar(). Mas não tem a variável ‘i’ usada pra incrementar ali? Ou a cada chamada da classe Cadastro ela(a variável) é iniciada com 0?
Estou usando o Eclipse. Não sei mecher com swing ainda.
Olha o enunciado do exercício: [b]Implemente uma classe que simule um cadastro de pessoal. Esta classe deve armazenar até 100 pessoas (utilize a classe Pessoa) com seus respectivos endereços. Esta classe deve ter os seguintes comportamentos: permitir o cadastramento e exclusão de pessoas do cadastro.[
[quote=gRoOve]Pessoa é uma clase. Vou declarar a estrutura, tenho 4 classes: principal(método main), Pessoa, Endereco e Cadastro. Pois bem, dentro da classe principal, eu criei um objeto do classe Cadastro, através de um menuzinho e talz chamo a função cadastrar(). Mas não tem a variável ‘i’ usada pra incrementar ali? Ou a cada chamada da classe Cadastro ela(a variável) é iniciada com 0?
Estou usando o Eclipse. Não sei mecher com swing ainda.
Olha o enunciado do exercício: [b]Implemente uma classe que simule um cadastro de pessoal. Esta classe deve armazenar até 100 pessoas (utilize a classe Pessoa) com seus respectivos endereços. Esta classe deve ter os seguintes comportamentos: permitir o cadastramento e exclusão de pessoas do cadastro.[[/quote]
Depende de como você chamar o método cadastra!!!
passa onde você chama o método cadastra ai.
Não deu certo não…qual a função de passar ‘s’ ai?
Tipo quando vou entrar os dados, passa direito o nome, vai direto pra idade…eu programo em C, diria que tem algum lixo ali, hasuesahue
O problema é esse mesmo, a variável incrementa pro próximo objeto e talz, mas passa reto…
Foi exatamente assim que fiz, dessa forma já passa direito no primeiro objeto, do jeito que eu tava fazendo conseguia incluir o primeiro objeto e passava reto no segundo…
Kura, minha classe cadastro cadastra um por vez, mas preciso limitar a quantidade de objetos em 100…se declarasse no método main teria que passar pela função o objeto né? Sou novo em OOP, não tenho muita noção de como as coisas ficam melhor…O que vc sugere?
Você não precisa limitar nada.
A classe Cadastro vai ser chamada quando uma pessoa estiver montada. Então, a classe vai fazer um único cadastro.
Depois que o cadastro for concluido, o programa acaba.
Quando outra pessoa for se cadastrar, o programa vai rodar todo de novo.
Só faria sentido esse vetor se vc fosse montar 100 pessoas antes de cadastrar.
Ou seja, todas as 100 pessoas digitariam seus dados e, só quando o número (100) fosse atingido é que o cadastro seria feito.
Não faz sentido, né?
E caso vc quisesse montar as 100 pessoas antes do cadastro, você teria que percorrer esse vetor para cadastrar cada pessoa. Se não, como vc conseguiria enxergar cada uma? Você só enxergaria a primeira.
Então… depende.
Se quiser cadastrar as 10 ao mesmo tempo sim.
Mas ai seu programa teria que funcionar da seguinte maneira:
Uma pessoa digita o nome e a idade.
Logo em seguida, outra pessoa teria que digitar também o nome e a idade (isso sem o programa finalizar, sem fazer nada. de maneiras seguidas mesmo. depois da primeira pessoa digitar a idade, a segudna digita o nome e a idade)
E assim por diante.
Depois que 10 pessoas tiverem feito isso, ai sim que o programa vai cadastrar.
O certo não seria uma pessoa digitar os dados e ser cadastrada em seguida para, depois, outra pessoa se cadastrar?
Se sim, então não precisamos de vetor visto que cada cadastro será feito separadamente.
13.Implemente uma classe que simule um cadastro de pessoal. Esta classe deve armazenar até 100 pessoas (utilize a classe Pessoa) com seus respectivos endereços. Esta classe deve ter os seguintes comportamentos: permitir o cadastramento e exclusão de pessoas do cadastro.
E como vou guardar os dados de 10 pessoas dentro de um objeto apenas? Como vou recuperar os dados das 10 pessoas depois?