Inserir uma classe dentro de outra classe como parâmetro
public class Aluno
{
String nome;
String cpf;
Curso curso;
}
public class Curso
{
String nome;
String codigo;
String turno;
}
import java.util.Scanner;public class Main
{
public static void main(String[] args) {
Scanner input;
input = new Scanner(System.in);
int opc = 1;
Aluno[] cadastro = new Aluno[10];
Curso[] c = new Curso[10];
int count = 0;
int cont = 0;
while (opc != 0 ) {
System.out.println("1- Cadastrar Aluno: ");
System.out.println("2- Imprimir Cadastros: ");
System.out.println("3- Cadastrar Curso: ");
System.out.println("4- Imprimir Cursos: ");
System.out.println("Outra tecla - Sair");
opc = input.nextInt();
if(opc == 1) {
if(c == null || c.length == 0){
System.out.println("Deves antes cadastrar um curso!");
return;
}
Aluno al = new Aluno();
System.out.println("Nome: ");
input.nextLine();
al.nome = input.nextLine();
System.out.println("CPF: ");
al.cpf = input.nextLine();
System.out.println("Código do Curso: ");
al.curso.codigo = input.nextLine();
cadastro[count] = al;
count++;
} else if (opc == 2){
for(int i = 0; i<count;i++) {
System.out.println(cadastro[i].nome);
System.out.println(cadastro[i].cpf);
System.out.println(cadastro[i].curso.codigo);
System.out.println(cadastro[i].curso.nome);
System.out.println(cadastro[i].curso.turno);
}
} else if (opc == 3) {
Curso cs = new Curso();
System.out.println("Nome do curso: ");
input.nextLine();
cs.nome = input.nextLine();
System.out.println("Código: ");
cs.codigo = input.nextLine();
System.out.println("Turno: ");
cs.turno = input.nextLine();
c[cont] = cs;
cont++;
} else if(opc == 4) {
for(int i = 0; i<cont;i++) {
System.out.println(c[i].nome);
System.out.println(c[i].codigo);
System.out.println(c[i].turno);
}
} else {
opc = 0;
}
}
}
}
Meu problema está sendo quando no main, opc == 1, vou atribuir os parametros para a classe al, no al.curso.codigo quando compilo está dando NullPointerException. Acho que estou fazendo errado, queria entender como eu atribuo valores para o parametro curso da classe Aluno.
Desde já agradeço.Discussão (2)
Carregando comentários...