Sim, não tinha colocado, pressa nas coisas.
package pck;
import java.util.Scanner;
public class main {
//public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
Disciplina disciplina = new Disciplina();
double soma = 0, nota = 0;
int qtdeNotas = 0;
String nome = "";
String nomeDisciplina = " ";
int idade = 0, turma = 0;
int qtdeAlunos = 0;
//Aluno aluno = new Aluno();// o construtor está na classe Aluno, como pode estar indefinido? Pedindo construtor vazio porque?
//disciplina.adicionarAluno(nome,idade,turma, nomeDisciplina);
/*
* Aluno aluno = new Aluno();
//Aluno a1 = new Aluno("Ricardo", 31, 1);
//Aluno a1 = null;
//Aluno a2 = new Aluno("Ana Elisa", 17, 1);
//Aluno a3 = new Aluno("Geovana", 18, 2);
//Aluno a4 = new Aluno("Livia", 20, 2);
Cliente cliente1 = new Cliente();
cliente1.setNome = "Fulano";
int[] vetor = new int[5];
*/
Scanner sc = new Scanner(System.in);
System.out.println("\nEntre com a quantidade de alunos: ");
qtdeAlunos = sc.nextInt();
Aluno[] alunos = new Aluno[qtdeAlunos];
sc.nextLine();
//for (int a = 0;a < qtdeAlunos;a++) {
for(int a = 0; a < qtdeAlunos; a++) {
//emp.nome = sc.nextLine();
System.out.println("Entre com o nome: ");
nome = sc.nextLine();
System.out.println("Entre com o nome da Discipĺina: ");
nomeDisciplina = sc.nextLine();
System.out.println("Entre com a idade: ");
idade = sc.nextInt();
System.out.println("Entre com o número da turma: ");
turma = sc.nextInt();
//alunos=alunos[a];
System.out.println("Entre com a quantidade de notas: ");
qtdeNotas = sc.nextInt();
//double nota = new double[qtdeNotas];
for (a = 0;a < qtdeNotas;a++)
{
System.out.println("\nEntre com a nota: " + (a + 1));
nota = sc.nextDouble();
//System.out.println(nota[a]);
//soma += nota[a];
// recebe os dados enviados pelo usuário e enviar para o construtor.
//e passa para as variáveis dentro da classe.
//sc.next();
}
alunos[a] = new Aluno(nome, nomeDisciplina, idade, turma , nota);
disciplina.adicionarAluno(alunos[a], a);
}
sc.close();
//disciplina.adicionarAluno(a2);
//disciplina.adicionarAluno(a3);
//disciplina.adicionarAluno(a4);
System.out.println("Quantidade de alunos: " + disciplina.getNumAlunos());
disciplina.exibirInformacoes();
System.out.println("Antes de remover alunos. ");
//removendo aluno
//disciplina.removerAluno(a2);
disciplina.exibirInformacoes();
System.out.println("Despois de remover alunos. ");
disciplina.exibirInformacoes();
System.out.println("Quantidade de alunos: " + disciplina.getNumAlunos() + "\n");
System.exit(0);
}
/*Exemplo de um vetor.
* Teste[] teste1;
* int testes;
*
*public Vetor(int numero){
*this.teste1 = new Teste[numero];
*}
**/
}código principal.
Classe Disciplina com inserção dos valores:
package pck;
public class Disciplina {
private Aluno[] alunos; //declaração do vetor
private Disciplina[] disciplina;
private int posicao;
String nome;
int i;
public Disciplina() {
this.alunos = new Aluno[40];//construtor, quando cria a disciplina, cria automaticamente um vetor Aluno de 40 posições.
this.disciplina = new Disciplina[10];
//criação do vetor
}
public int getNumAlunos() {
int cont = 0;
for (int i = 0; i < alunos.length; i++) {
if(alunos[i] != null) {//se a posição é diferente de null não conta.
cont++;
}
}
return cont;//retorna o número de alunos.
}
/* public void adicionarAluno(Aluno aluno) {
if(alunos != null){
this.alunos[posicao] = aluno;
posicao = posicao + 1;
//return true;
} else {
System.out.println(“Valor deve ser preenchido”);
//return false;//aluno não foi adicionado.
}
} */
public boolean adicionarAluno(Aluno aluno, int posicao) {
if(alunos != null){
this.alunos[posicao] = aluno;
posicao = posicao + 1;
return true;
} else {
System.out.println("Valor deve ser preenchido");
return false;//aluno não foi adicionado.
}
}
public boolean removerAluno(Aluno aluno) {//verifica sem existe nome, idade, e turma, as três tem de ser verificadas, pois podem haver repetições.
for(int i = 0; i < alunos.length; i++) {//para remover o aluno do vetor. Excluindo pelo nome, idade e turma.
if((alunos[i].getNome() == aluno.getNome()) &&
(alunos[i].getIdade() == aluno.getIdade()) &&
(alunos[i].getTurma() == aluno.getTurma()) &&
(alunos[i].getnomeDisciplina() == aluno.getnomeDisciplina())) {
alunos[i] = null;//remove um aluno
return true;
} //aqui não podemos, após esta chave, por causa da posição do vetor, por exemplo, aluno na posição 3.
//por causa da iteração, o for não estará na posição 0. Pode estar em outra posição. Ele pode não estar na posição 0 e retorna false,
//queremos que percorra todo o vetor e não encontrar a condição do if acima.
}
return false;//caso não encontre na primeira posição, pode estar em outra posição de 0 a 4. Tem de percorrer todo o vetor e não cair dentro do if.
//por isso não tem o else e o return está fora da condição. False é porque não está no vetor.
}
//exibir as informações de todos os alunos.
public void exibirInformacoes() {
//for (int i = 0; i < alunos.length;i++)
for(i = 0; i < this.alunos.length; i ++){
if (alunos[i] != null)//if para evitar exceção se a posição for null pela informação removida, pois a posição não tem mais dados, está vazia.
System.out.println(alunos[i].mostrarInformacoes());//chama o método já pronto mostrarInformações que está na classe Aluno. Mostra somente posições com valores.
}
}
}
Classe Aluno com os getters e setters e construtor.
package pck;
import pck.Disciplina;
public class Aluno {
private String Nome;
private String nomeDisciplina;
private int idade, turma, i, qtdeNotas;
private double nota;
private double nota_total;
double soma = 0;
public void setNome(String nome) {// atribui um valor para o atributo nome.
this.Nome = nome;
}
//this.nome = nome;
//setNome(nome);// vem do construtor, para onde é passado o valor digitado pelo usuário.
public String getNome() {
return this.Nome;
}
public String getnomeDisciplina() {//Disciplina
return nomeDisciplina;
}
public void setnomeDisciplina(String nomeDisciplina) {//set de disciplina
this.nomeDisciplina = nomeDisciplina;
}
public void setIdade(int idade) {
this.idade = idade;
}
public int getIdade() {
return idade;
}
public void setTurma(int turma) {
this.turma = turma;
}
public int getTurma() {
return turma;
}
public void setNota(double nota) {//está correto
this.nota = nota;
}
public double getNota() {//está correto
return nota;
}
public void setqtdeNotas(int qtdeNotas) {
this.qtdeNotas = qtdeNotas;
}
public int getqtdeNotas() {
return qtdeNotas;
}
public double calcularNota() {
nota_total = nota_total + nota;
return nota_total;
}
public String mostrarInformacoes() {
return "Nome: " + getNome() + "\nIdade: " + getIdade() + "\nTurma: " + getTurma() +
"\nDisciplina: " + getnomeDisciplina() +
"\nNota: " + getNota() +
"\n##############";
}
public Aluno() {//para evitar erro, pois ainda não foi passado nenhum valor.
this.idade = 0;
}
public Aluno(String nomeAluno, String nomeDisciplina, int idade, int turma, double nota) {
this.Nome = nomeAluno;
this.nomeDisciplina = nomeDisciplina;
this.idade = idade;
this.turma = turma;
this.nota = nota;
}
}
No final, quando vou inserir a nota, erro na linha 70. Minha dúvida é onde e como colocar os vetores, eu os declarei, revi setter e getters. Nem sei se os getters e setters precisam do vetor, entende, pois no método adicionarAluno já está declarado um vetor.