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…
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.