Duvidas sobre classes

bom dia galera
estou estudando sobre classes na linguagem java, eu fiz esse exemplo para pratica

    import java.util.Scanner;
    // declarando uma classe chamada Aluno
    class Aluno{
    	int matricula = 0;
    	int periodo = 0;
    	double primeira_avaliacao = 0;
    	double segunda_avaliacao = 0;
    	double tercira_avaliacao = 0;
    	double quarta_avaliacao = 0;	
    }

// essa classe declara um objeto do tipo Aluno
public class Ex_Class_1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// instanciando o objeto da classe Aluno
		Aluno jose = new Aluno();
		Aluno pedro = new Aluno();
		
		// atribuindo valores aos campos de jose
		System.out.println("Aluno: José");
		System.out.print("Matrícula: ");
		jose.matricula = scan.nextInt();
		
		System.out.print("Período: ");
		jose.periodo = scan.nextInt();
		
		System.out.print("1AV: ");
		jose.primeira_avaliacao = scan.nextDouble();
		
		System.out.print("2AV: ");
		jose.segunda_avaliacao = scan.nextDouble();
		
		System.out.print("3AV: ");
		jose.tercira_avaliacao = scan.nextDouble();
		
		System.out.print("4AV: ");
		jose.quarta_avaliacao = scan.nextDouble();
		
		System.out.println("");

		// atribuindo valores aos campos de pedro
		System.out.println("Aluno: Pedro");
		System.out.print("Matrícula: ");
		pedro.matricula = scan.nextInt();
		
		System.out.print("Período: ");
		pedro.periodo = scan.nextInt();
		
		System.out.print("1AV: ");
		pedro.primeira_avaliacao = scan.nextDouble();
		
		System.out.print("2AV: ");
		pedro.segunda_avaliacao = scan.nextDouble();
		
		System.out.print("3AV: ");
		pedro.tercira_avaliacao = scan.nextDouble();
		
		System.out.print("4AV: ");
		pedro.quarta_avaliacao = scan.nextDouble();
		
		System.out.println("");
		
		// calculando a média de jose 
		double media = 0;
		
		media = (jose.primeira_avaliacao + jose.segunda_avaliacao + jose.tercira_avaliacao + jose.quarta_avaliacao) /4;
		
		// imprimindo as informações de jose
		System.out.println("informação do aluno José: ");
		
		System.out.println("Matrícula: " + jose.matricula);
		System.out.println("Período: " + jose.periodo);
		System.out.println("1AV: " + jose.primeira_avaliacao);
		System.out.println("2AV: " + jose.segunda_avaliacao);
		System.out.println("3av: " + jose.tercira_avaliacao);
		System.out.println("4AV: " + jose.quarta_avaliacao);
		System.out.println("Média: " + media);
		
		System.out.println("");

		// calculando a média de pedro
		media = (pedro.primeira_avaliacao + pedro.segunda_avaliacao + pedro.tercira_avaliacao + pedro.quarta_avaliacao) /4;
		
		// imprimindo as informações de pedro
		System.out.println("informações do aluno Pedro: ");
		
		System.out.println("Matrícula: " + pedro.matricula);
		System.out.println("Período: " + pedro.periodo);
		System.out.println("1AV: " + pedro.primeira_avaliacao);
		System.out.println("2AV: " + pedro.segunda_avaliacao);
		System.out.println("3av: " + pedro.tercira_avaliacao);
		System.out.println("4AV: " + pedro.quarta_avaliacao);
		System.out.println("Média: " + media);

		
		
	}

}

estou com a seguinte problema , eu criei uma class chamada Ex_Classe_Metodo_2

eu quero usar o mesmo código do primeiro exemplo que eu fiz(Ex_Classe_1) e adicionar alguns metodos
mas todo vez que eu coloco o mesmo código fica a aparecendo esse erro
Captura%20de%20tela%20de%202021-02-09%2011-54-36

a mensagem diz “the type Aluno is already defined”

eu gostaria de saber como resolver esse erro

eu tenho que import a classe que eu quero usar em vez de declarar ela novamente ??

Você já criou a classe Aluno, não tem porque criar de novo.

O import só é necessário se ela estiver em um pacote diferente.
Se estiver no mesmo pacote, é só utilizar e pronto.

Também não precisa fazer import do Scanner na classe Aluno, ela não utiliza ele pra nada.

estou usando o package padrão ,os arquivos .java estão no diretório src e os arquicos .class estão no diretório bin

Tranquilo, classes que estão em um mesmo pacote se “enxergam” sem precisar de import.

obrigado
então se eu tivesse criado o arquivo Ex_Classe_Metodo_2 em outro package e precisasse usar a classe Aluno que esta no package padrão eu teria que usar o import no novo package ??

obrigado , compreende melhor agr

Sim, mas não iria funcionar pois você só consegue fazer import de classes que estão dentro de um package.
A classe Aluno não está dentro de um package (embora isso seja chamado de package default).
Assim ela só pode ser utilizada pelas classes que também estiverem no package default.
Se quiser que ela seja importada por classes de outros pacotes, ela precisa estar dentro de um package.
Agora você acabou de descobrir a desvantagem de declarar classes fora de um package. :wink:

vdd kkkkk
novamente obrigado