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