Dúvida List<String>

Boa tarde, amigos.

Sou novato aqui, e me cadastrei com o objetivo de sanar uma dúvida. Estou passando uma List entre duas classes (códigos abaixo), e atribuindo os dados a uma nova List. Entretanto, a passagem aparentemente não está ocorrendo.

Vejam os códigos:

[code]import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;

public class CadastroProfessores {
private String a;
private float b;
private int c,d,e;
private Professores prof= new Professores();
private List matricula= new ArrayList ();
private List nome= new ArrayList ();
private List rg= new ArrayList ();
private List cpf= new ArrayList ();
private List salario= new ArrayList ();
private List dia_a= new ArrayList ();
private List mes_a= new ArrayList ();
private List ano_a= new ArrayList ();
Scanner in= new Scanner(System.in);

public void insere(){
                  for(d=0;d<999;d++){
    	   		                          
    	   		   System.out.print("Digite a matricula do professor: ");
                   a= in.next();
                   prof.setMatricula(a);
                   matricula.add(d, a);
                  
                   System.out.print("Digite o nome do professor: ");
                   a= in.next();
                   prof.setNome(a);
                   nome.add(d, a);
                  
                   System.out.print("Digite o RG do professor: ");
                   a= in.next();
                   prof.setRg(a);
                   rg.add(d, a);
                  
                   System.out.print("Digite o CPF do professor: ");
                   a= in.next();
                   prof.setCpf(a);
                   cpf.add(d, a);
                  
                   System.out.print("Digite o salário do professor: ");
                   b= in.nextFloat();
                   if(b<510){				 
             		  do{
                          System.out.print("Este valor é menor que o salário mínimo. Digite vencimentos iguais ou superiores a R$510,00: ");
                          b=in.nextFloat();
             						 }while(b<510);
                        }
                   prof.setSalario(b);
                   salario.add(d, b);
             
                   System.out.print("Digite o ano da admissão do professor: ");
                   c= in.nextInt();
                   if(c<1970){
                	   do{
                		   System.out.print("Ano inválido! Por favor, digite novamente: ");
                		   c= in.nextInt();
                				 }while(c<1970);			 
                				}
                   prof.setAno_a(c);
                   ano_a.add(d,c);
             
                   System.out.print("Digite o mês da admissão do professor: ");
                   e= in.nextInt();
                   if(e<1||e>12){
                	   do{
                		   System.out.print("Este não é um mês válido! Digite um mês no intervalo de 1 a 12: ");
                		   e= in.nextInt();
             					}while(e<1||e>12);
             			  	}
                   prof.setMes_a(e);
                   mes_a.add(d, e);
            
                   System.out.print("Digite o dia da admissão do professor: ");
                   e= in.nextInt();
                   if(e<1||e>31){
                	   do{
                		   System.out.print("Este não é um dia válido! Digite um dia entre 1 e 31");
                		   e= in.nextInt();
                					}while(e<1||e>31);
                					}
                   if(mes_a.get(d)==2&&e>28||mes_a.get(d)==4&&e>30||mes_a.get(d)==6&&e>30||mes_a.get(d)==9&&e>30||mes_a.get(d)==11&&e>30){
                	   do{
                		   System.out.print("Incompatibilidade entre dia e mês de admissão! Verifique os dados e digite novamente: ");
                		   e= in.nextInt();
                	   }while(mes_a.get(d)==2&&e>28||mes_a.get(d)==4&&e>30||mes_a.get(d)==6&&e>30||mes_a.get(d)==9&&e>30||mes_a.get(d)==11&&e>30);
             																															 }
                   prof.setDia_a(e);
                   dia_a.add(d, e);
               
                   System.out.print("Deseja cadastrar outros professores? S para sim; N para não: ");
                   a= in.next();
                   if(a.equals("N")){
                       d=999;

                                     }
                   					  }
                     }
public void altera(){
	System.out.print("Digite a matrícula do professor: ");
	a= in.next();
	if(matricula.contains(a)){
		d= matricula.indexOf(a);
		System.out.print("Digite o nome do professor: ");
        a= in.next();
        nome.add(d, a);
       
        System.out.print("Digite o RG do professor: ");
        a= in.next();
        rg.add(d, a);
       
        System.out.print("Digite o CPF do professor: ");
        a= in.next();
        cpf.add(d, a);
       
        System.out.print("Digite o salário do professor: ");
        b= in.nextFloat();
        if(b<510){				 
   		  do{
                System.out.print("Este valor é menor que o salário mínimo. Digite vencimentos iguais ou superiores a R$510,00: ");
                b=in.nextFloat();
   						 }while(b<510);
              }
         salario.add(d, b);
        
        System.out.print("Digite o ano da admissão do professor: ");
        c= in.nextInt();
        if(c<1970){
     	   do{
     		   System.out.print("Ano inválido! Por favor, digite novamente: ");
     		   c= in.nextInt();
     				 }while(c<1970);			 
     				}
        ano_a.add(d,c);
  
        System.out.print("Digite o mês da admissão do professor: ");
        e= in.nextInt();
        if(e<1||e>12){
     	   do{
     		   System.out.print("Este não é um mês válido! Digite um mês no intervalo de 1 a 12: ");
     		   e= in.nextInt();
  					}while(e<1||e>12);
  			  	}
        mes_a.add(d, e);
 
        System.out.print("Digite o dia da admissão do professor: ");
        e= in.nextInt();
        if(e<1||e>31){
     	   do{
     		   System.out.print("Este não é um dia válido! Digite um dia entre 1 e 31");
     		   e= in.nextInt();
     					}while(e<1||e>31);
     					}
        if(mes_a.get(d)==2&&e>28||mes_a.get(d)==4&&e>30||mes_a.get(d)==6&&e>30||mes_a.get(d)==9&&e>30||mes_a.get(d)==11&&e>30){
     	   do{
     		   System.out.print("Incompatibilidade entre dia e mês de admissão! Verifique os dados e digite novamente: ");
     		   e= in.nextInt();
     	   }while(mes_a.get(d)==2&&e>28||mes_a.get(d)==4&&e>30||mes_a.get(d)==6&&e>30||mes_a.get(d)==9&&e>30||mes_a.get(d)==11&&e>30);
  		dia_a.add(d, e);
							}
	else{
		System.out.print("\nNão há nenhum professor cadastrado com esta matrícula!");
		}
	}
	
}


public void lista(){
	for(d=0; d<matricula.size();d++){
	System.out.print("\nLista dos dados de todos os professores cadastrados no sistema: ");
	System.out.print("\nMatricula: " + matricula.get(d) + "\nNome: " + nome.get(d) + "\nRG: " + rg.get(d) + "\nCPF: " + cpf.get(d) + "\nSalário: R$ " + salario.get(d) + "\nData de admissão: " + dia_a.get(d) + "/" + mes_a.get(d) + "/" + ano_a.get(d) + " .");
									 }
					}
public void pesquisa(){
	System.out.print("Digite a matricula do professor: ");
	a= in.next();
	if(matricula.contains(a)){
		d= matricula.indexOf(a);
		System.out.print("\nMatricula: " + matricula.get(d) + "\nNome: " + nome.get(d) + "\nRG: " + rg.get(d) + "\nCPF: " + cpf.get(d) + "\nSalário: R$ " + salario.get(d) + "\nData de admissão: " + dia_a.get(d) + "/" + mes_a.get(d) + "/" + ano_a.get(d) + " .");    	
							  }
	else{
		System.out.print("\nMatricula não cadastrada no sistema!");
	}
						}

public void passagem (){
		Modalidades mod = new Modalidades();
		mod.instanciaMat(matricula);
		mod.instanciaNom(nome);
						}


}

[/code]

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


public class Modalidades {
	private int c, i;
	private String d,n;
	private float v;
	Scanner in= new Scanner(System.in);
	CadastroProfessores matr= new CadastroProfessores();
	private List<String> codigo= new ArrayList<String> ();
	private List<String> descricao= new ArrayList<String> ();
	private List<Float> valor= new ArrayList<Float> ();
	private List<String> matricula= new ArrayList<String> ();
	private List<String> nome= new ArrayList<String> ();
	private List<String> matricula_cad= new ArrayList<String> ();
	private List<String> nome_cad= new ArrayList<String> ();
	
	public void instanciaMat(List<String> mat){
		for(c=0; c< mat.size(); c++){
			d= mat.get(c);
			matricula.add(c, d);
									 }
										    }
	
	public void instanciaNom(List<String>  nom){
		for(c=0; c< nom.size(); c++){
			d= nom.get(c);
			nome.add(c, d);
									 }
											}
		
	public void insere(){
		matr.passagem();
		for(c=0;c<999;c++){
		System.out.print("Digite o codigo da modalidade: ");
		d= in.next();
		codigo.add(c, d);
		
		System.out.print("Digite a descrição da modalidade: ");
		d= in.next();
		descricao.add(c, d);
		
		System.out.print("Digite o valor da modalidade: ");
		v= in.nextFloat();
		valor.add(c, v);
		
		System.out.print("Cadastre o professor responsável por esta modalidade, digitando sua matricula: ");
		d=in.next();
		if(matricula.contains(d)){
			i= matricula.indexOf(d);
			n= nome.get(i);
			matricula_cad.add(c, d);
			nome_cad.add(c, n);
							}
		else{
			System.out.print("\nProfessor não cadastrado no sistema!");
			 }
		
		System.out.print("\nDeseja cadastrar mais modalidades? S para sim, N para não: ");
		d= in.next();
		if (d.equals("N")){
			c=999;
							}
		}
		
		
		}
	
	
	}

Por favor, me ajudem a encontrar e sanar o erro.

Muito obrigado!!

Poderia editar o post acima e deixar só a parte relevante do código?

Aliás, onde você está fazendo a passagem?