Calculo de média com ArrayList no Java

Opa galera, sou estudante de CC, e sou iniciante em programação. Preciso fazer um programa com os seguintes requisitos:
a) Fazer uma classe Aluno que possua as seguintes características:
● dois atributos do tipo inteiro: primeira nota parcial (de 0 a 100) e
segunda nota parcial (de 0 a 100)
● um atributo String representando o nome do aluno
● possua métodos para ler e escrever os atributos (ou uma construtora)
Fazer uma classe Controle que:
● pergunte ao usuário o nome e as duas notas parciais de um aluno.
Caso o nome entrado seja “fim” isso significa que o usuário não quer
inserir mais nenhum aluno, do contrário deve ser instanciado um
objeto da classe Aluno e armazenados os dados digitados. Dicas: usar
um objeto da classe ArrayList de Java para armazenar as referências
para os objetos instanciados). Usar o método equals da classe String
para verificar se o valor do nome entrado é igual a “fim”
● Calcular, ao final da inserção de todos os alunos, a média da turma,
quantos alunos foram aprovados, quantos foram para a final e quantos
foram reprovados e mostrar os códigos de todos os alunos cujas notas
ficaram abaixo da média da turma

A primeira parte eu já fiz, mas não faço a minima ideia de como realizar esse calculo, se alguém poder me dar uma dica ficarei grato.

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

public class Aluno {
public static void main(String[] args) {

int n1,n2;
String nome;
int media;

    Scanner scanner = new Scanner(System.in); 
    
    
    
   ArrayList alunos = new ArrayList <>();
   
   System.out.println("Informe o nome do aluno");
   nome = scanner.next();
   
   
  
  
   
   while (!nome.equals("fim")) {  
	   
	   System.out.println("Informe a primeira nota do aluno");
       n1 = scanner.nextInt();
       
       
       System.out.println("Informe a segunda nota do aluno");
       n2 = scanner.nextInt(); 
       
       alunos.add(nome); 
       
       System.out.println("Digite outro aluno ou 'fim' para encerrar o programa");
       nome = scanner.next();
	 
       
	   
   } 
   
   
   System.out.println("Alunos registrados : " + alunos.toString()); 
   
  

   
}    

}

}

Faltou fazer o seguinte:

Fazer uma classe Aluno que possua as seguintes características:
● dois atributos do tipo inteiro: primeira nota parcial (de 0 a 100) e
segunda nota parcial (de 0 a 100)
● um atributo String representando o nome do aluno
● possua métodos para ler e escrever os atributos (ou uma construtora)

Caramba você é engraçadão mesmo em cara

Não era pra ser engraçado, foi uma dica pois a classe Aluno que você postou não tem essas características e elas são primordiais pra tu conseguir fazer o resto.