Pessoal, estou aprendendo Java agora, e no código abaixo estou usando a biblioteca Scanner para dar entrada nas variáveis através do teclado, porém, quando chega na hora de atribuir valor a variável Rua da Classe Endereco, dá erro como se tivesse armazenado um Buffer. Portanto, criei uma nova variável para armazenar os dados (Scanner dados2 = new Scanner(System.in) e a partir da Classe Endereco passei a usar e deu certo, alguém sabe me explicar por que no código abaixo começa a dar erro a partir da Classe Endereco?
package Programa;
public class Endereco {
String rua;
String bairro;
String Cidade;
String Estado;
String Pais;
int numero;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
package Programa;
public class Nascimento {
int dia;
int mes;
double ano;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
package Programa;
public class Nome {
String nome;
String sobrenome;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
package Programa;
import java.util.Scanner;
public class Principal {
Nome nome = new Nome();
Nascimento nascimento = new Nascimento();
Endereco endereco = new Endereco();
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
package Programa;
import java.util.Scanner;
public class Programa {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Principal Cliente = new Principal();
Scanner dados = new Scanner(System.in);
Scanner dados2 = new Scanner(System.in);
System.out.println("Informe o nome do cliente: ");
Cliente.nome.nome = dados.nextLine();
System.out.println("Informe o sobrenome: ");
Cliente.nome.sobrenome = dados.nextLine();
System.out.println("Informe o dia de Nascimento");
Cliente.nascimento.dia = dados.nextInt();
System.out.println("Informe o mes de Nascimento");
Cliente.nascimento.mes = dados.nextInt();
System.out.println("Informe o ano de Nascimento");
Cliente.nascimento.ano = dados.nextDouble();
System.out.println("Informe o Endereço");
System.out.println("Rua: ");
Cliente.endereco.rua = dados.nextLine();
System.out.println("Número: ");
Cliente.endereco.numero = dados.nextInt();
System.out.println("Bairro: ");
Cliente.endereco.bairro = dados.nextLine();
System.out.println("Cidade: ");
Cliente.endereco.Cidade = dados.nextLine();
System.out.println("Estado: ");
Cliente.endereco.Estado = dados.nextLine();
System.out.println("País: ");
Cliente.endereco.Pais = dados.nextLine();
}
}