Return não funciona

Olá pessoal, ja tive um problema parecido com esse, o erro era no scanner (nextLine(); porém parece que continua o mesmo erro mesmo eu consertando esse problema, o “return estudante” simplesmente não funciona, quando coloco public void getEstudante(){ system.out.println(estudante)} ele vai normal, mostra o nome dele, porém esse pratica não é legal de se fazer na classe, mas o return não funcona de jeito nenhum, vou colocar os códigos a baixo:

public class Classe {
	private String estudante;
	private int matricula;
	private float []notas;

public String getEstudante() {
		return estudante;
}

public void setEstudante(String estudante) {
		this.estudante = estudante;
}

*essa foi a parte importante da classe, a baixo tem a main:*



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

public class Main {

	public static void main(String[] args) {
		ArrayList<Classe> lista = new ArrayList<Classe>();
		Scanner sc = new Scanner(System.in);
		float notas[] = new float[2];
		int opc = 4;
		int cont = 1;
		
		while(opc != 0) {
			System.out.println("Informe a opção desejada: \n"
					+ "1. Cadastrar Estudante: \n"
					+ "2. Obter nome do estudante \n"
					+ "3. Calcular média do aluno \n"
					+ "0. Sair");
			opc = sc.nextInt();
			switch(opc) {
				case 1:
					System.out.println("infore o número de matricula do estudante");
					int matricula = sc.nextInt();
					sc.nextLine();
					System.out.println("Informe o nome do estudante");
					String nome = sc.nextLine();
					
					for(int i=0;i<notas.length;i++) {
						System.out.println("Informe a "+cont+"° nota");
						notas[i] = sc.nextFloat();
						cont++;
					}
					Classe al = new Classe(nome,matricula,notas);
					lista.add(al);
					System.out.println("Aluno criado com sucesso");
					break;
				case 2:
					System.out.println("Informe o numero de matricula");
					int buscar_aluno = sc.nextInt();
					for(Classe f: lista) {
							if(buscar_aluno == (f.getMatricula()));
						System.out.println("ACHEI!");
						f.getEstudante();
						
					}

PS: AS CHAVES ESTÃO FECHADAS CORRETAMENTE A BAIXO

SAIDA DO PROGRAMA:
Informe a opção desejada: 
1. Cadastrar Estudante: 
2. Obter nome do estudante 
3. Calcular média do aluno 
0. Sair
1
infore o número de matricula do estudante
02
Informe o nome do estudante
LUAN
Informe a 1° nota
7
Informe a 2° nota
7
Aluno criado com sucesso
Informe a opção desejada: 
1. Cadastrar Estudante: 
2. Obter nome do estudante 
3. Calcular média do aluno 
0. Sair
2
Informe o numero de matricula
02
ACHEI!
#AQUI ERA PRA ESTAR APARECENDO O NOME LUAN, MAS NÃO APARECE
Informe a opção desejada: 
1. Cadastrar Estudante: 
2. Obter nome do estudante 
3. Calcular média do aluno 
0. Sair
1 curtida

Eu não li o código inteiro, mas parece que a variável não foi inicializada em nenhum momento do código. Tente criar um construtor para isso. E o “case 2” não tem “break”

2 curtidas

Essa chamada ao método getEstudante recebe uma String de volta, mas não faz nada com ela.

Deveria ser:

System.out.println(f.getEstudante());
2 curtidas

consegui, é que pelo que eu tinha visto, o return já fazia isso sem precisar do system.out.println, mas pelo que parece precisa sim kkk e eu não havia colocado um break, obrigado mano! ajudou muito, o código deu certo!