Como declarar arraylist como parametro?

9 respostas
B

Ola pessoal estou com uma duvida meu professor da faculdade me passo este exercicio estou com dificuldade em fazer o iten b pois nao sei como faz para passar o ArrayList como parametro do construtor alguem pode me ajuda?

3. Desenvolver um programa que receba as seguintes informações, até que seja digitado ?-1?.
Entrada: RA do aluno, nome do aluno e nota do aluno;
Saída: Média de Notas;
Nome, RA e nota do aluno com a maior nota
Nome, RA e nota do aluno com a menor nota
OBS: a. Criar uma classe Nota e utilizar um vetor ou ArrayList de objetos Nota para armazenar cada registro de entrada;
b. Criar uma classe Disciplina que receba como parâmetro no construtor o vetor ou ArrayList com as notas e o nome da disciplina, e um método resultado que imprima as informações de saída conforme definidas anteriormente.

import javax.swing.*;
   import java.util.ArrayList;

   public class Notas{
   
   
      
      ArrayList<Notas> entrada = new ArrayList<Notas>();
      double nota = 0;
      String nome;
      int ra = 0;
      double maior = 0;
      double menor = 0;
        
         
   
      public ArrayList<Notas> getEntrada() {
         return entrada;
      }
   
      public void setEntrada(ArrayList<Notas> entrada) {
         this.entrada = entrada;
      }
   
      public double getNota() {
         return nota;
      }
   
      public void setNota(double nota) {
         nota = Double.parseDouble(JOptionPane.showInputDialog("Digite a Nota:"));
         this.nota = nota;
      }
   
      public String getNome() {
         return nome;
      }
   
      public void setNome(String nome) {
         nome = JOptionPane.showInputDialog("Digite o Nome:");
         this.nome = nome;
      }
   
      public int getRa() {
         return ra;
      }
   
      public void setRa(int ra) {
         ra = Integer.parseInt(JOptionPane.showInputDialog("Digite o Ra:"));
         this.ra = ra;
      }
   
      public double getMaior() {
         return maior;
      }
   
      public void setMaior(double maior) {
         this.maior = maior;
      }
   
      public double getMenor() {
         return menor;
      }
   
      public void setMenor(double menor) {
         this.menor = menor;
      }
   
   
      
      public void entradaDados(){
      
         Notas alunos = new Notas();
      
         while( ra!= -1){
         
            if(ra != -1){ 
            
               alunos.setRa(ra);
               alunos.setNome(nome);
               alunos.setNota(nota);
            
               entrada.add(alunos);
            
            }
            else{
               JOptionPane.showMessageDialog(null, "Programa encerrado");
               ra = -1;
            }
         }
      }
   
   }

9 Respostas

K
public class Disciplina {

private List<Nota> notas

public Disciplina(List<Nota> notas) {
this.notas = notas;
}

seria isso?

V

Não sei se intendi direito sua dúvida, mas para voces receber um array do tipo nota por parametro é simples,
segue abaixo um exemplo utilizando o nome do array que voce criou.

public void teste(Notas entrada){
                  //Implementação...
		
	}

ou sejá, no seu método voce recebera o array "entrada" do tipo "Notas"

M

Criar uma classe Disciplina que receba como parâmetro no construtor o vetor ou ArrayList com as notas e o nome da disciplina, e um método resultado que imprima as informações de saída conforme definidas anteriormente.

public class Disciplina {

    private List<Nota> nota;
    private String nome;

    public Disciplina(List list, String nome) {
        this.nota = list;
        this.nome = nome;
    }

    public void mostrarDados() {
        Iterator it = nota.iterator();
        while (it.hasNext()) {
            Nota nota = (Nota) it.next();
            System.out.println("Nome Disciplina : " + nome + "\nNotas : " + nota.getNota());
        }
    }
}

}
B

entendi muito obrigada , pode me tirar uma outra duvida? você viu meu codigo quando eu digito as notas ele me retorna somente a menor, poderia me ajuda? na maior ele me da a menor nota e na menor ele me da a menor nota.

F

Ola beatrizrodrigues3, não vi a fundo seu código mais mas creio que a melhor forma para pegar a maior e menor nota seria fazer uma função que ordene o ArrayList de notas, assim fica mais simples buscar o menor e maior valor.

Apenas complementando a resposta do marcelo.silva.java, sempre que criar um novo construtor não esqueça de criar o construtor padrão, uma vez que o mesmo foi sobrescrito.
Isso é uma boa pratica! :slight_smile:

Abs!

M

Poderia explicar melhor???

[] s,

F

O construtor padrão é um construtor sem parâmetros.

Quando você não especifica o construtor padrão para a sua classe o compilador define um durante a compilação para que a sua classe tenha um entry Point, para que você possa instanciar um objeto do tipo da sua classe.

public class ClasseQualquer{

    private String teste;

   //construtor padrão ou construtor default
   public ClasseQualquer(){ 

   }

   //construtor criado para inicializar algum tipo de informação
   public ClasseQualquer(String teste){ 

      this.teste= teste;

   }
   

}

A forma que foi exemplificado não esta errada, porem caso você precise apenas instanciar um objeto sem passar nenhum parâmetro o compilador vai chiar!
Quando criamos um construtor para inicializar informações estamos sobrescrevendo o construtor padrão/default. Para não sobrescreve-lo, basta criar um construtor sem parâmetros.

Em outras palavras, você pode definir vários construtores para a mesma classe mas sempre mantenha o construtor padrão.

Abs!

F

tópico

Em um tópico recente aqui no GUJ a galera esta discutindo sobre construtores.

www.guj.com.br/java/83090-construtor-e-metodo-ou-nao[url]

F

Este tópico é recente, a galera estava discutindo sobre construtores.

Abs!

Criado 4 de março de 2013
Ultima resposta 4 de mar. de 2013
Respostas 9
Participantes 5