Estou tendo um problema estranho numa das linhas de leitura para dados do teclado. O código é o seguinte:
import java.util.*;
class Endereco {
private String pais;
private String cidade;
private String estado;
private String rua;
private String bairro;
public void setPais(String pais) { this.pais = pais; }
public void setCidade(String cidade) { this.cidade = cidade; }
public void setEstado(String estado) { this.estado = estado; }
public void setRua(String rua) { this.rua = rua; }
public void setBairro(String bairro) { this.bairro = bairro; }
public String getPais() { return(pais); }
public String getCidade() { return(cidade); }
public String getEstado() { return(estado); }
public String getRua() { return(rua); }
public String getBairro() { return(bairro); }
}
class Aluno {
private String nome;
private String sexo;
private int idade;
private Endereco e;
public void setNome(String nome) { this.nome = nome; }
public void setSexo(String sexo) { this.sexo = sexo; }
public void setIdade(int idade) { this.idade = idade; }
public void setPais(String pais) { e.setPais(pais); }
public void setCidade(String cidade) { e.setCidade(cidade); }
public void setEstado(String estado) { e.setEstado(estado); }
public void setRua(String rua) { e.setRua(rua); }
public void setBairro(String bairro) { e.setBairro(bairro); }
public String getNome() { return(nome); }
public String getSexo() { return(sexo); }
public int getIdade() { return(idade); }
public String getPais() { return(e.getPais()); }
public String getCidade() { return(e.getCidade()); }
public String getEstado() { return(e.getEstado()); }
public String getRua() { return(e.getRua()); }
public String getBairro() { return(e.getBairro()); }
}
public class FichaAluno {
public static void main(String args[]) {
String nome, sexo, rua, bairro, comp;
int idade, numero_casa;
Aluno aluno = new Aluno();
Scanner scan = new Scanner(System.in);
System.out.println("Por favor, entre com os dados do aluno.");
System.out.print("Nome: ");
nome = scan.nextLine(); aluno.setNome(nome);
System.out.print("Sexo: ");
sexo = scan.nextLine(); aluno.setSexo(sexo);
System.out.print("Idade: ");
idade = scan.nextInt(); aluno.setIdade(idade);
System.out.print("Rua: ");
rua = scan.nextLine(); aluno.setRua(rua);
nome = aluno.getNome();
idade = aluno.getIdade();
sexo = aluno.getSexo();
System.out.println(nome+" - "+idade+" anos.");
System.out.println(sexo);
}
}
Qual a explicação dessa falha? Onde está o ponteiro nulo?

