Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvidas Array de referências ...

Por favor galera! Gostaria que vocês me ajudassem. Eu consigo visualizar onde estou errando( getters e setters)só que não consigo pensar em uma solução para este problema e já faz um tempo que estou batendo cabeça. Como nesse programa eu conseguiria instânciar meu array de referências através de getters e setters Os erros estão na class programa.

class Turma{
    private Aluno[] alunos;
    private int sala;
    private String periodo;


public Turma(int sala,String periodo){
    this.sala = sala;
    this.periodo = periodo;

}

public Aluno[] getAlunos() {
    return this.alunos;
}

public void setAlunos(Aluno[] alunos) {
    this.alunos = alunos;
}


public int getSala(){
    return this.sala;
}

public String getPeriodo(){
    return this.periodo;
}
}
public class Aluno {
    private String nome;
    private String cpf;
    private String sexo;
    private int nota;
    private int idade;
    private static int qntdAlunos;    


public Aluno(String cpf,String sexo, int idade){
    Aluno.qntdAlunos++;
    this.cpf = cpf;
    this.sexo = sexo;
    this.idade = idade;
}

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

public String getCpf(){
    return this.cpf;
}

public String getSexo(){
    return this.sexo;
}

public int getIdade(){
    return this.idade;
}

public int getNota(){
    return this.nota;
}
public void setNota(int nota){
    this.nota = nota;
}


public static int getQntdAlunos(){
    return Aluno.qntdAlunos++;
}

}

class Programa{
    public static void main(String[] args)
        Scanner keyBoard = new Scanner(System.in);

        Turma b4 = new Turma(5,"Integral");
        b4.setAlunos(new Aluno[5]);
        b4.alunos = new Aluno("333.333.333-33","Masculino",3);
        System.out.print("nome do aluno: ");
        b4.alunos[0].nome = " ";
        System.out.print("Nota do aluno: ");
        b4.alunos[0].nota = " "

        System.out.println("Nome: "+b4.getAlunos().getNome());
        System.out.println("cpf: "+b4.getAlunos().getCpf());
        System.out.println("Sexo: "+b4.getAlunos().getSexo());
        System.out.println("Idade: "+b4.getAlunos().getIdade());
        System.out.println("Sala: "+b4.getSala());
        System.out.println("Periodo: "+b4.getPeriodo());
        System.out.println("Notas: "+b4.getAlunos().getNota());
        System.out.println("\nTotal Alunos: "+Aluno.getQntdAlunos());


    }
}
3 respostas
solução!

O setAlunos eu acho que está correto... O problema, eu acho, está aqui:

b4.alunos = new Aluno("333.333.333-33","Masculino",3);

deveria ser algo assim:

b4.getAlunos()[0] = new Aluno("333.333.333-33","Masculino",3);

Ou você pode ter um método chamado adicionaAluno.

Muito obrigado Aberto Souza,deu certo o código!!! Valeu man... Cara deixo eu te fazer uma pergunta? estou iniciando como programador e gostaria de saber se demora muito para ter essa visão mais abrangente que vocês que já programam a mais tempo possui,sabe.

As vezes acabo travando em exemplos de códigos como esses, que diga-se de passagem são simples e acabo perdendo varias horas e mesmo assim não consigo resolver sem ajuda de vocês saca,ai da meio que um desanimo. Isso não quer dizer que eu vá desistir,mais o que eu quero e ficar bom nisso o suficiente para ter essa visão e conhecimento que muitos tem.

Meus agradecimentos novamente brother thanks!!!

Oi Rafael, eu acho que faz parte do processo ficar travado em alguns erros. Com certeza é frustrante em alguns momentos, mas se você continuar praticando muito, o conhecimento vem mais rápido e aí você vai sair cada vez melhor dessas armadilhas.