Ajuda em Java

Consegui criar todas as classes tranquilamente, só tenho umas duvidas, coloquei todos os dados certinho em cada classe, fiz todos os metódos get e set e consegui fazer a classe aluno calculando a média e dizendo se foi aprovado ou não, mas não entendi essa parte de construtor() em cada classe e os dados da classe escola, e também não entendi muito o que fazer na ClassePrincipal, desculpa, nunca tinha mexido nesse site aqui.

Agora sim. Dá pra melhorar ainda, mas agora dá pra entender o que você quer.

Fala aí, Vls_2k! Beleza?

Não tem muito segredo. Você sabe o que é um método construtor?

O método construtor é um método inicial que é chamado quando a classe é instanciada. A assinatura dele se dá da seguinte forma:

public class UmaClasseQualquer{

public UmaClasseQualquer(){
//Esse é o construtor!
}
}

Quando você cria uma instância de classe (ou seja, um objeto daquela classe), vc chama o construtor.

//Aqui você está chamando o construtor! 
private Aluno aluno = new Aluno();

Um construtor também pode receber parâmetros e ter funcionalidade:

public class Mensagem{

public Mensagem(String mensagem){
System.out.println(mensagem);
}
}

E quando for chamado:

String foo = "Olá!";
Mensagem bar = new Mensagem(foo);

O output será:

Olá!

A classe escola tem um vetor de objetos da classe Alunos, e um vetor de objetos da classe Professores.

Ou seja, se você tem um vetor de inteiros e assina da seguinte forma:

int numeros[] = new int[10];

Um vetor de objetos pode ser declarado da seguinte forma:

Object objeto = new Object[10]();

Agora é só adaptar pro seu caso! (:

A classe principal é onde você vai “reunir” todas as outras. Geralmente se cria um menuzinho no console msm (usando System.out.println e Scanner) pra cadastrar alunos, cadastrar professores, cadastrar notas… etc.

Então, é como o @FearX explicou. Nesse caso particular:

1 - Classe Pessoa

public class Pessoa {
	private int matricula;
	private String nome;
	
	public Pessoa(){
		
	}
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setMatricula(int matricula){
		this.matricula = matricula;
	}
	
	public int getMatricula(){
		return matricula;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}
	
	public String getNome(){
		return nome;
	}
}

2 - Classe Aluno

public class Aluno extends Pessoa{
	private int nota1;
	private int nota2;
	
	public Aluno(){
		
	}
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setNota1(int nota1){
		this.nota1 = nota1;
	}
	
	public int getNota1(){
		return nota1;
	}
	
	public void setNota2(int nota2){
		this.nota2 = nota2;
	}
	
	public int getNota2(){
		return nota2;
	}
}

3 - Classe Professor

public class Professor extends Pessoa {
	private int turmas;
	
	public Professor(){
		
	}
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setTurmas(int turmas){
		this.turmas = turmas;
	}
	
	public int getTurmas(){
		return turmas;
	}
}

4 - Classe Escola

public class Escola {
	private Aluno[] alunos = new Aluno[2];
	private Professor[] professores = new Professor[1];
	
	public void adicionarAlunos(Aluno a){
		for(int i = 0; i < alunos.length; i++){
			if(alunos[i] == null){
				this.alunos[i] = a;
				
				return;
			}
		}
	}
	
	public void listarAlunos(){
		for(int i = 0; i < alunos.length; i++){
			System.out.println("\nMatrícula: " + alunos[i].getMatricula());
			System.out.println("Nome: " + alunos[i].getNome());
			System.out.println("Nota 1: " + alunos[i].getNota1() 
				+ "\tNota 2: " + alunos[i].getNota2());
		}
	}
	
	public void adicionarProfessores(Professor p){
		for(int i = 0; i < professores.length; i++){
			if(professores[i] == null){
				this.professores[i] = p;
				
				return;
			}
		}
		
	}
	
	/*public Professor[] listarProfessores(){
		for(int i = 0; i < professores.size(); i++){
			System.out.println("Matrícula: " + professores[i].getMatricula());
			System.out.println("Nome: " + professores[i].getNome());
			System.out.println("Número de turmas: " + professores[i].getTurmas());
		}
	}*/
}

5 - Classe Principal

public class Principal {
	public static void main(String[] args){
		Aluno aluno1 = new Aluno();
		aluno1.setMatricula(102);
		aluno1.setNome("Fulano de Beltrano");
		aluno1.setNota1(8);
		aluno1.setNota2(7);
		
		Aluno aluno2 = new Aluno();
		aluno2.setMatricula(87);
		aluno2.setNome("Beltrano Sicrano de Fulano");
		aluno2.setNota1(6);
		aluno2.setNota2(10);
		
		Professor professor1 = new Professor();
		professor1.setMatricula(38);
		professor1.setNome("Sicrano Fulano de Beltrano");
		professor1.setTurmas(3);
		
		Escola escola1 = new Escola();
		escola1.adicionarAlunos(aluno1);
		escola1.adicionarAlunos(aluno2);
		escola1.adicionarProfessores(professor1);
		
		escola1.listarAlunos();
	}
}

Rodando…

image

Como se vê explicitar os construtores é desnecessário. De fato alguns exercícios da faculdade não têm razão lógica de ser.

1 curtida