Galera me ajuda por favoor! Caso de vida ou morte

Galera, estou criando uma aplicação de cadastro, fiz uma classe aluno, com o construtor aluno, em outra classe eu listo esses alunos usando o metodo adicionarAluno(), mas eu preciso fazer uma verificação antes de adicionar o aluno, então a primeira coisa a se fazer no metodo é analisar se o aluno já existe, então já preciso de um objeto aluno criado! Mas eu crio o objeto a do tipo aluno já com todos os parametros, mas não consigo usar esse obejto pra nada… o java não reconhece o “a” como um objeto, e preciso dele pra passar como parametro do metodo adicionarAluno pra fazer a analise… Me ajudem por favor, já não sei mais o que fazer!

//Classe principal atribuindo valores a classe 3

            System.out.println("Informe o numero da matricula: ");    
            instancia.matricula = Teclado.nextInt();
            System.out.println("Informe o nome do aluno: ");  
            Teclado.nextLine();
            instancia.nome = Teclado.nextLine();
            System.out.println("Informe nota 1 do aluno: ");    
            instancia.nota1 = Teclado.nextFloat();
            System.out.println("Informe nota 2 do aluno: ");    
            instancia.nota2 = Teclado.nextFloat();
            System.out.println("Informe nota 3 do aluno: ");    
            instancia.nota3 = Teclado.nextFloat();
            System.out.println("Informe o numero da matricula: ");    
            instancia.faltas = Teclado.nextInt();  
            instancia.adicionarAluno();
            
            }

//------------------------------Construtor Aluno Classe 1------------------------------

Aluno(int matricula, String nome, float nota1, float nota2, float nota3, int faltas){
    if (matricula<0) {
        setMatricula(0);
    } else {
        setMatricula(matricula);
    }
    
    if (nota1<0 || nota1>10 ) {
        setNota1(0);
    } else {
        setNota1(nota1);
    }
    if (nota2<0 || nota2>10 ) {
        setNota2(0);
    } else {
        setNota2(nota2);
    }
    if (nota3<0 || nota3>10 ) {
        setNota3(0);
    } else {
        setNota3(nota3);
    }
    
    if (faltas<0 || faltas>instancia.cargaHoraria) {
        setFaltas(0);
    } else{
        setFaltas(faltas);
    }     
}

//----------------------------------------------Array List Classe 2 -------------------------------------------

    ArrayList<Aluno> alunos = new ArrayList<>();  
    
    Aluno a = new Aluno(matricula, nome, nota1,  nota2, nota3,  faltas);
    a. //O "a" não é reconhecido 
    public void adicionarAluno(a(matricula, nome, nota1,  nota2, nota3,  faltas)){  //O "a" não é reconhecido 
        alunos.add(new Aluno(matricula, nome, nota1,  nota2, nota3,  faltas)); //Não posso fazer isso, preciso analisar o aluno antes de jogar na lista
        
        
    }

Cara, a explicação está confusa
Mas na real, refaz o teu projeto kk
É sério. E não junta o teu ListarAluno() com o AdicionarAluno()
Cria métodos separados pra isso. Principalmente porque tô vendo que tá usando o Console pra isso. Ou seja, antes de tudo, NÃO É UM CASO DE VIDA OU MORTE. Então para de usar o título para fazer drama

E a. deve estar sendo reconhecido sim, mas não deve ter nada lá além do construtor.
Colabora e coloca tuas classes aí jovem. Só colocar os métodos não facilita.

E saiba que o programa não vai reconhecer parâmetro como uma variável comum. Ou seja, se por exemplo a matricula estiver dentro dos parâmetros do construtor

public Aluno(int matricula) {
//
}

Isso não quer dizer que quando você chamar a sua classe Aluno, você vá ter acesso ao parâmetro matrícula. Ou seja, se você digitar

Aluno a = new Aluno(0);
a.matricula;

Não vai funcionar.
Colabora, posta tua classe inteira aí.

Foi mal pela desorganização… é que sou novo no forum, to perdido… e tb sou iniciante no java, e é sim! caso de vida ou morte… tenho ate 12:00 hrs de amanhã pra enviar esse projeto… e não ta dando certo, eu corrigi esse erro ai, só foi eu chamar o “a” dentro de outro metodo, mas terminei o programa e ele não esta compilando, esta dando Exception in thread “main” java.lang.NullPointerException… Vou postar a classe inteira, me ajuda ai pfv… kkkkk estou desesperado…

------------------------------------------------------------------CLASSE PRINCIPAL-----------------------------------------------

package gerenciamento;

import java.util.Scanner;

public class Gerenciamento {

public static void main(String[] args) {
    int op;
    Diario instancia = null;
    Scanner Teclado = new Scanner(System.in);

    //-----------------------------------------------------------Menu-----------------------------------------------
    do {
        System.out.println("Escolha uma opção: ");
        System.out.println("1-Criar Diaro");
        System.out.println("2-Adicionar aluno ao diario");
        System.out.println("3-Remover aluno do diaro");
        System.out.println("4-Consultar aluno");
        System.out.println("5-Imprimir diario");
        System.out.println("6-Sair do programa");

        op = Teclado.nextInt();

        switch (op) {
            case 1:
                 if (instancia != null) {
                    System.out.println("Diario já existente!");
                } else {
                    instancia = new Diario();   
                }
            break;
            case 2:
                if (instancia == null) {
                    System.out.println("Não é possivel realizar a operação, nenhum diario foi criado!");
                } else {

                    //Classe principal    
                    System.out.println("Informe o numero da matricula: ");
                    instancia.matricula = Teclado.nextInt();
                    System.out.println("Informe o nome do aluno: ");
                    Teclado.nextLine();
                    instancia.nome = Teclado.nextLine();
                    System.out.println("Informe nota 1 do aluno: ");
                    instancia.nota1 = Teclado.nextFloat();
                    System.out.println("Informe nota 2 do aluno: ");
                    instancia.nota2 = Teclado.nextFloat();
                    System.out.println("Informe nota 3 do aluno: ");
                    instancia.nota3 = Teclado.nextFloat();
                    System.out.println("Informe o numero da matricula: ");
                    instancia.faltas = Teclado.nextInt();
                    instancia.adicionarAluno();
                }
            break;
            case 3:
                if (instancia == null) {
                    System.out.println("Não é possivel realizar a operação, nenhum diario foi criado!");
                } else {
                    System.out.println("Informe o numero da matricula para remoção: ");
                    instancia.matricula = Teclado.nextInt();
                    if (instancia.removerAluno() == 1) {
                        System.out.println("Aluno removido com sucesso");
                    } else {
                        System.out.println("Aluno inexistente!");
                    }
                }
            break;
            case 4:
                if (instancia == null) {
                    System.out.println("Não é possivel realizar a operação, nenhum diario foi criado!");
                } else {
                    System.out.println("Informe a matricula do aluno: ");
                    instancia.matricula = Teclado.nextInt();
                    if (instancia.consultarAluno() == null) {
                        System.out.println("Aluno não encontrado!");
                    } else {
                        System.out.println(instancia.consultarAluno());
                    }
                }
            break;    
            case 5:
                if (instancia == null) {
                    System.out.println("Não é possivel realizar a operação, nenhum diario foi criado!");
                } else {
                    System.out.println("Informações");
                    System.out.println(instancia.informacoes());
                    System.out.println("Alunos: ");
                    System.out.println(instancia.imprimir());
                }
            break;    
        }
    }  while (op!=6);      
    
}

}

-----------------------------------------------------------------CASSE 2---------------------------------------------------------------

package gerenciamento;
public final class Aluno {
private int matricula;
private String nome;
private float nota1;
private float nota2;
private float nota3;
private int faltas;
Diario instancia = null;
//instancia = new Diario();

//------------------------------Construtor------------------------------

Aluno(int matricula, String nome, float nota1, float nota2, float nota3, int faltas){
    if (matricula<0) {
        setMatricula(0);
    } else {
        setMatricula(matricula);
    }
    
    if (nota1<0 || nota1>10 ) {
        setNota1(0);
    } else {
        setNota1(nota1);
    }
    if (nota2<0 || nota2>10 ) {
        setNota2(0);
    } else {
        setNota2(nota2);
    }
    if (nota3<0 || nota3>10 ) {
        setNota3(0);
    } else {
        setNota3(nota3);
    }
    
    if (faltas<0 || faltas>instancia.cargaHoraria) {
        setFaltas(0);
    } else{
        setFaltas(faltas);
    }     
}


//---------------------------getMedia-----------------------------------------


public float getMedia(){
    return(nota1+nota2+nota3)/3;
}


//---------------------------getResultado------------------------------------



public int getResultado(){
    if (faltas>instancia.cargaHoraria/4) {
        return(-1);
    }
    else 
        if (faltas<=(instancia.cargaHoraria/4)*3 && getMedia()<6) 
        {
            return (0);
        }
        else
        {
            if (faltas<=(instancia.cargaHoraria/4)*3 && getMedia()>6) 
            {
                return (1);
            }
        }
  return(3);
}


//---------------------------------Getters e Setters-------------------------




public int getMatricula() {
    return matricula;
}

public void setMatricula(int matricula) {
    this.matricula = matricula;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public float getNota1() {
    return nota1;
}

public void setNota1(float nota1) {
    this.nota1 = nota1;
}

public float getNota2() {
    return nota2;
}

public void setNota2(float nota2) {
    this.nota2 = nota2;
}

public float getNota3() {
    return nota3;
}

public void setNota3(float nota3) {
    this.nota3 = nota3;
}

public int getFaltas() {
    return faltas;
}

public void setFaltas(int faltas) {
    this.faltas = faltas;
}

}

-----------------------------------------------------------------CLASSE 3--------------------------------------------------------------

package gerenciamento;

import java.util.ArrayList;

public class Diario {
String nomeDisciplina;
int cargaHoraria;
int op;
int matricula;
String nome;
float nota1;
float nota2;
float nota3;
int faltas;
//----------------------------------------------Array List-------------------------------------------

    ArrayList<Aluno> alunos = new ArrayList<>();  
    
    Aluno a = new Aluno(matricula, nome, nota1,  nota2, nota3,  faltas);
    //a. //O "a" não é reconhecido 
    public int adicionarAluno(){  //O "a" não é reconhecido 
        if (alunos.contains(matricula)){
            return 0;
        }
        else{
            alunos.add(a); //Não posso fazer isso, preciso analisar o aluno antes de jogar na lista
            return 1;
        }
    }
    
    
    
    public int removerAluno(){
        if (alunos.contains(matricula)) {
            alunos.remove(matricula);
            return 1;
        } else{
            return 0;
        
        }
    }
    
    public String consultarAluno(){
        if (alunos.contains(matricula)) {
            return "Nome: "+alunos.get(matricula).getMatricula()+"/nNotas: "+alunos.get(matricula).getNota1()+", "+alunos.get(matricula).getNota2()+" e "+alunos.get(matricula).getNota3()+"\nMedia: "+alunos.get(matricula).getMedia()+"Resultado: "+alunos.get(matricula).getResultado(); 
        }
        return null;
    }
    public String informacoes(){
        return "Disciplina: "+getNomeDisciplina()+"\nCarga Horaria: "+getCargaHoraria();
    }
    public Aluno imprimir(){
        
    for (int i = 0; i < alunos.size(); i++) {
		return(alunos.get(i));
	}
    return alunos.get(-10);
    }
    
    
//----------------------------------------------Construtor-------------------------------------------

public void Diario(String nomeDisciplina, int cargaHoraria){
    setNomeDisciplina(nomeDisciplina);
    if (cargaHoraria!=40 || cargaHoraria!=60 || cargaHoraria!=80 || cargaHoraria!=120) {
        setCargaHoraria(40);
    } else{
        setCargaHoraria(cargaHoraria);
    }
}


//----------------------------Getters e Setters------------------------------
public String getNomeDisciplina() {
    return nomeDisciplina;
}

public void setNomeDisciplina(String nomeDisciplina) {
    this.nomeDisciplina = nomeDisciplina;
}

public int getCargaHoraria() {
    return cargaHoraria;
}

public void setCargaHoraria(int cargaHoraria) {
    this.cargaHoraria = cargaHoraria;
}
public String getNome() {
    return nome;
}

}

Acredito que classe 2 esta sem problema algum…
O projeto é esse: https://drive.google.com/open?id=1nyVgo3uJunMzPrPNcTakv53833CU5w42I73MNhg9n04

Não sei se meu pensamento está certo, me corrijam qualquer coisa. Mas, o método adicionarAluno() não seria meio inútil? Pois se você tem um ArrayList de alunos, você poderia colocar alunos.add() dentro do construtor da classe, pois quando você for instanciar um objeto Aluno, ele já adiciona esse novo objeto ao ArrayList.

Espero ter resolvido seu problema.

1 curtida