Depois que crio o objeto curso, devo cadastrar as disciplinas nesse curso, que são outros objetos, porém, ao listar os cursos cadastrados, as disciplinas ficam vinculadas a todos os cursos que cadastrei, não apenas a um, segue meus códigos:
package lista;
public class Disciplina {
private String nomeDisciplina;
private String creditos;
private String cargaHoraria;
private String semestre;
public String getNomeDisciplina() {
return nomeDisciplina;
}
public void setnomeDisciplina(String nomeDisciplina) {
this.nomeDisciplina = nomeDisciplina;
}
public String getCreditos() {
return creditos;
}
public void setCreditos(String creditos) {
this.creditos = creditos;
}
public String getcargaHoraria() {
return cargaHoraria;
}
public void setcargaHoraria(String cargaHoraria) {
this.cargaHoraria = cargaHoraria;
}
public String getSemestre() {
return semestre;
}
public void setSemestre(String semestre) {
this.semestre = semestre;
}
@Override
public String toString() {
return "Disciplina: "+nomeDisciplina+ "" +
"\n"+ "Creditos: "+creditos+"" +
"\n"+ "Semestre: "+semestre+"" +
"\n"+"Carga Horaria: "+cargaHoraria+ "\n" ;
}
}
package lista;
import java.util.ArrayList;
public class Curso {
private String nomeCurso;
private String turno;
private String cargaHoraria;
private ArrayList<Disciplina> disciplinas;
public ArrayList<Disciplina> getDisciplina() {
return disciplinas;
}
public void setDisciplina(ArrayList<Disciplina> disciplinas) {
this.disciplinas = disciplinas;
}
public String getNome() {
return nomeCurso;
}
public void setNome(String nomeCurso) {
this.nomeCurso = nomeCurso;
}
public String getTurno() {
return turno;
}
public void setTurno(String turno) {
this.turno = turno;
}
public String getcargaHoraria() {
return cargaHoraria;
}
public void setcargaHoraria(String cargaHoraria) {
this.cargaHoraria = cargaHoraria;
}
@Override
public String toString() {
return "Nome do Curso: "+nomeCurso+ "" +
"\n"+ "Turno: "+turno+"" +
"\n"+ "Carga Horaria: "+cargaHoraria+"" +
"\n"+"Disciplinas: "+disciplinas+ "\n" ;
}
}
package lista;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
public class Cadastro {
public static void main(String[] args) {
dadosCadastro();
}
public static void dadosCadastro() {
Scanner sc = new Scanner(System.in);
Curso curso;
ArrayList<Curso> listaCursos = new ArrayList <Curso> ();
Disciplina disciplina;
ArrayList<Disciplina> listaDisciplinas = new ArrayList<Disciplina>();
int opcao=0;
do {
System.out.println("Opção 1 - Cadastra curso");
System.out.println("Opção 2 - Cadastra disciplinas de um curso");
System.out.println("Opção 3 - Imprime cursos cadastrados");
System.out.println("Opção 0 - Sair do programa");
System.out.print("Digite aqui sua opção: ");
opcao = Integer.parseInt(sc.nextLine());
Scanner entrada = new Scanner (System.in);
if(opcao==1) {
curso = new Curso();
//disciplina = new Disciplina();
System.out.print("Digite o nome do curso: ");
curso.setNome(sc.nextLine());
System.out.print("Digite o turno: ");
curso.setTurno(sc.nextLine());
System.out.print("Digite a carga horaria: ");
curso.setcargaHoraria(sc.nextLine());
listaCursos.add(curso);
System.out.println("Cadastro de disciplinas ");
disciplina = new Disciplina();
System.out.print("Digite o nome da Disciplina: ");
disciplina.setnomeDisciplina(sc.nextLine());
System.out.print("Digite os creditos: ");
disciplina.setCreditos(sc.nextLine());
System.out.print("Digite a carga horaria: ");
disciplina.setcargaHoraria(sc.nextLine());
System.out.print("Digite o semestre: ");
disciplina.setSemestre(sc.nextLine());
listaDisciplinas.add(disciplina);
for(Curso item: listaCursos) {
item.setDisciplina(listaDisciplinas);
}
}else if(opcao == 3){
System.out.println(listaCursos.toString());
System.out.println("Pressione um tecla para continuar.");
sc.nextLine();
} else if(opcao==2) {
}
}
while (opcao != 0);
sc.close();
}
}