Turma de Alunos - Vetores e Matrizes em Java (Arrays)

Olá, sou novo aqui. Estou fazendo um exercício e estou enfrentando alguns problemas.
Faço ele em Java.

Essa parte eu consegui fazer:

Já esta… Estou enfrentando problemas já no início:

Caso alguém saiba como proceder.

Até o momento este é meu código:

public class Aluno
{
private String nome;
private String matricula;
private double nota1;
private double nota2;
private double calcularMedia;

public Aluno(String nome, String matricula){
setNome(nome);
setMatricula(matricula);
}

public String getNome(){
return nome;
}

public void setNome(String nome){
this.nome = nome;
}

public String getMatricula(){
return matricula;
}

public void setMatricula(String matricula){
this.matricula = matricula;
}

public double getNota1(){
return nota1;
}

public void setNota1(double nota1){
this.nota1 = nota1;
}

public double getNota2(){
return nota2;
}

public void setNota2(double nota1){
this.nota2 = nota2;
}

public double calcularMedia(){
calcularMedia = (nota1+nota2)/2;
return calcularMedia;
}

public String toString(){
return "Nome: " + nome +
"/nMatrícula: " + matricula +
"/nNota 1: " + nota1 +
"/nNota 2: " + nota2;
}
}

Qual sãos os problemas que está enfrentando?

Não consigo criar a segunda parte, objeto Turma

Cara, não devia mas fiz seu exercício inteiro, rs.
Achei bem bacana.

OBS: Assim como você, sou estudante, então algumas das minhas soluções podem não ser as melhores para o exercício.

Não sei se serve para você, porém o resultado foi exatamente o que você precisava (creio eu).

Classe Aluno:

public class Aluno {
    private String nome;
    private String matricula;
    private double nota1;
    private double nota2;

    Aluno(String nome, String matricula, double nota1, double nota2) {
        this.nome = nome;
        this.matricula = matricula;
        this.nota1 = nota1;
        this.nota2 = nota2;
    }

    public double calcularMedia() {
        return (this.nota1 + this.nota2) / 2;
    }

    public String toString() {
        return "Nome: " + this.nome + "\nMatrícula: " + this.matricula + "\nNota 1: " + this.nota1 + "\nNota 2: "
                + this.nota2;
    }

    // gets e sets
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getMatricula() {
        return matricula;
    }

    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }

    public double getNota1() {
        return nota1;
    }

    public void setNota1(double nota1) {
        this.nota1 = nota1;
    }

    public double getNota2() {
        return nota2;
    }

    public void setNota2(double nota2) {
        this.nota2 = nota2;
    }

}

Classe Turma:

public class Turma {
    private Aluno[] alunos = new Aluno[20];
    private int proximoAluno = 0;

    public boolean cadastrarAluno(String nome, String matricula, double nota1, double nota2) {
        if (proximoAluno > alunos.length - 1) {
            return false;
        } else {
            alunos[proximoAluno] = new Aluno(nome, matricula, nota1, nota2);
            this.proximoAluno++;
            return true;
        }
    }

    public double pesquisarAluno(String matricula) {
        for (int i = 0; i < proximoAluno; i++) {
            if (alunos[i].getMatricula().equals(matricula)) {
                return alunos[i].calcularMedia();
            }
        }
        return 0.0;
    }

    public void listarAlunos() {
        for (int i = 0; i < proximoAluno; i++) {
            System.out.println(alunos[i].toString());
            System.out.println();
        }
    }
    
    public void exibirSituacao(){
        for (int i = 0; i < proximoAluno; i++) {
            System.out.println(alunos[i].getNome() + " - " + alunos[i].calcularMedia());
        }
    }
}

Classe Teste, para testar o programa, é claro:

import java.util.Scanner;

public class Programa {

    public static void main(String[] args) {
        Turma t = new Turma();
        Scanner s = new Scanner(System.in);
        boolean rodando = true;
        while(rodando){
            System.out.println(
                    "------------- Menu -------------"
                    + "\nDigite > 1 < para cadastrar alunos"
                    + "\nDigite > 2 < para pesquisar alunos"
                    + "\nDigite > 3 < para listar alunos"
                    + "\nDigite > 4 < para exibir a situação dos alunos"
                    + "\nDigite > 5 < para encerrar o programa");
            int acao = s.nextInt();

            if (acao == 1) {
                System.out.print("Informe o nome do aluno -> ");
                String nome = s.next();
                System.out.print("Informe a matrícula do aluno -> ");
                String matricula = s.next();
                System.out.print("Informe a 1ª nota do aluno -> ");
                double nota1 = s.nextDouble();
                System.out.print("Informe a 2ª nota do aluno -> ");
                double nota2 = s.nextDouble();
                if (t.cadastrarAluno(nome, matricula, nota1, nota2))
                    System.out.println("\nAluno cadastrado!");
                else
                    System.out.println("\nO limite de 20 alunos da turma foi atingido.");
            } else if (acao == 2) {
                System.out.print("\nInforme a matrícula para pesquisar o aluno -> ");
                System.out.printf("%.2f", t.pesquisarAluno(s.next()));
                System.out.println();
            } else if (acao == 3) {
                System.out.println("\n------ Listando ------");
                t.listarAlunos();
                System.out.println();
            } else if (acao == 4) {
                System.out.println("\n------ Situação ------");
                t.exibirSituacao();
                System.out.println();
            } else if (acao == 5) {
                System.out.println("\n\nFIM!!!");
                rodando = false;
            } else {
                System.out.println("Comando inválido");
            }
        }
    }
}

Saída da classe Teste:

------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
1
Informe o nome do aluno -> Matheus
Informe a matrícula do aluno -> rm76023
Informe a 1ª nota do aluno -> 8,7
Informe a 2ª nota do aluno -> 7,7

Aluno cadastrado!
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
1
Informe o nome do aluno -> Lucas
Informe a matrícula do aluno -> rm76024
Informe a 1ª nota do aluno -> 9,8
Informe a 2ª nota do aluno -> 5,4

Aluno cadastrado!
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
2

Informe a matrícula para pesquisar o aluno -> rm76023
8,20
------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
3

------ Listando ------
Nome: Matheus
Matrícula: rm76023
Nota 1: 8.7
Nota 2: 7.7

Nome: Lucas
Matrícula: rm76024
Nota 1: 9.8
Nota 2: 5.4

------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
4

------ Situação ------
Matheus - 8.2
Lucas - 7.6000000000000005

------------- Menu -------------
Digite > 1 < para cadastrar alunos
Digite > 2 < para pesquisar alunos
Digite > 3 < para listar alunos
Digite > 4 < para exibir a situação dos alunos
Digite > 5 < para encerrar o programa
5

FIM!!!

Gostei muito da sua forma de fazer.
Parece ser bastante simples, estou ainda editando a minha com base nas formas de se fazer que vi aqui.

Obrigado mesmo! Fico feliz com a contribuição, o meu ainda não está dando certo, se puder ajudar.

Nossa! Obrigado mesmo, mas assim como você quero aprender, tentei usar o seu como exemplo mas ainda não consegui fazer, e está apresentando alguns erros, Gostaria de entender realmente como se faz.

Veja o meu como esta:

6. Construtor e encapsulamento.rar (1.4 KB)

Vejo que o retorno está sendo obsoleto, acredito que são apenas detalhes que não estou conseguindo consertar.

Agradeço se puder ajudar.

Claro.
Em qual método você está tendo problemas?