Problema com o vetor

14 respostas
B_bara_Teixeira
Olá pessoal, sou nova por aqui mais to precisando muito da ajudade vcs. Olhem só minhas classe principal
public class Aluno {

	String nome;

	int matricula,qam, qaa;
	double notas[];

	public Aluno() {
		nome = "";
		matricula = 0;
		double notas[] = new double[3];
		qam = 0;
		qaa = 0;
	}

	public void setnome(String nom) {
		nome = nom;
	}

	public String getnome() {
		return nome;
	}

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

	public int getmatricula() {
		return matricula;
	}

	// aqui vou receber as notas
	public double recebnotas(double notas) {
			for (int i = 0; i < this.notas.length; i++) {
			this.notas[i] = notas;
		}
		return notas;
	}

	// quantidade de aulas ministradas
	public void setqam(int qam) {
		this.qam = qam;
	}

	public int getqam() {
		return qam;
	}

	// quandidade de aulas assistidas
	public void setqaa(int qaa) {
		this.qaa = qaa;
	}

	public int getqaa() {
		return qaa;
	}
}
public double recebnotas(double notas) { for (int i = 0; i < this.notas.length; i++) { this.notas[i] = notas; } return notas; } Nessa parte não tenho certeza se está certo, o problema é que não esta compilando no main, vejam o que fiz no main:
for(int cont = 0; cont<a.recebnotas(double).length; cont++){
		int numnota = 1;
		System.out.println("Digite a nota " + numnota + " do aluno:");
		a.recebnotas()[(int) cont] = leitura.nextDouble();
		numnota += 1;
	}

O que estou fazendo de errado?
Valeu galera!!!

14 Respostas

F

qual erro que da?

rdgms

Olá!!!
uma coisa que eu vi eh que no seu construtor

esta

double notas[] = new double[3];

quando deveria ser

notas[]= new double[3];

vc ja esta referenciando notas…

public double recebnotas(double notas)

acho que deveria ser

public double recebnotas(double notas[])

ow melhor pq vc não começa a trabalhar com collection…

marcosharbs

nao entendi essa sua funcao recebe notas
vc passa um double notas como parametro
ai vc joga esse mesmo valor para todos os campos do vetor?

A

Para que eu possa te ajudar, preciso saber o que o método recebnotas deve fazer.

rdgms
package asdf;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Mendes
 */
 public class Aluno {  
   
     private String nome;  
   
     private int matricula,qam, qaa;  
     private int notas[];  
   
     public Aluno() {  
        
         nome = "";  
         matricula = 0;  
         this.notas = new int[3];  
         qam = 0;  
         qaa = 0;  
     }

    public int getNotas(int i) {
        return notas[i];
    }
   
  
     public void setNotas(int nota) {  

               for(int i =0;i<notas.length;i++)
               {
                 if (notas[i]==0)
                     notas[i]= nota;
               }
              
     }

    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 int getQaa() {
        return qaa;
    }

    public void setQaa(int qaa) {
        this.qaa = qaa;
    }

    public int getQam() {
        return qam;
    }

    public void setQam(int qam) {
        this.qam = qam;
    }
 
 
 }

Para testar

package asdf;

import javax.swing.JOptionPane;

/**
 *
 * @author hpuser
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      Aluno l = new Aluno();
      l.setNome("Rodrigo");
      l.setMatricula(234412342);
      l.setQaa(32);
      l.setQam(1232);
      l.setNotas(11);
      l.setNotas(1);
      l.setNotas(2);
     
     JOptionPane.showMessageDialog(null,l.getNotas(1));
      
    }

}
J

olá!
esse método…

// aqui vou receber as notas  
public double recebnotas(double notas) {  
for (int i = 0; i < this.notas.length; i++) {  
this.notas[i] = notas;  
  }  
  return notas;  
}

a parâmetro trás apenas UMA nota e não Varias
acho seu método ficaria dessa forma:

// passa um Vetor de double(no caso, as notas)
public void recebNotas(double[] notas) {
  // a referencia ao Vetor passado por parametro é atribuida ao atributo Notas (Vetor) ... acho que isso é válido
  this.notas = notas;
}

dessa forma, se for passado uma referencia onda o tamando do vetor seja maior … dá erro de RunTime
flws!

B_bara_Teixeira

dá um erro no for(int cont = 0; cont<a.recebnotas(double).length; cont++){
obrigada,

B_bara_Teixeira

receber três notas diferentes do aluno
Obrigada,

B_bara_Teixeira
rdgms:
package asdf;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Mendes
 */
 public class Aluno {  
   
     private String nome;  
   
     private int matricula,qam, qaa;  
     private  List notas;  
   
     public Aluno() {  
         notas = new ArrayList();
         nome = "";  
         matricula = 0;  
         double notas[] = new double[3];  
         qam = 0;  
         qaa = 0;  
     }  
   
  
     public void recebnotas(int nota) {  
            notas.add(nota);
     }

    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 int getQaa() {
        return qaa;
    }

    public void setQaa(int qaa) {
        this.qaa = qaa;
    }

    public int getQam() {
        return qam;
    }

    public void setQam(int qam) {
        this.qam = qam;
    }
 
 
 }

Para testar

package asdf;

/**
 *
 * @author Mendes
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      Aluno l = new Aluno();
      l.setNome("Rodrigo");
      l.setMatricula(234412342);
      l.setQaa(32);
      l.setQam(1232);
      
    }

}
Está dando erro nessa parte: for(int cont = 0; cont
rdgms

kk malz… tinha feito errado pode copiar o codigo ali que esta certo…
oq vc estava fazendo de errado era…
primeiro
vc criou um referencia para um array de nota (int notas[]) duas vezes…
oq eu fiz foi tirar o tipo da referencia no construtor…

e outro erro foi que vc fez um metodo para receber
as notas que tinha um parametro double que adicionava em todas as posições do vetor esse valor.
eu deixei

qam = 0

mais por padrão todos os atributos que não sejam locais… recebem os seus valorem padrões no caso do int ‘0’

F

barbara, uam dica interessante, que facilita para ser ajudada e facilita para ti mesmo na hopra de debugar…
use nomes mais sugestivos nas variaveis, para que tu possa olhar e saber oq contem, as vezes o nome fica meio grande mais acredite vale a pena

Wiliam_Witter

:lol:

B_bara_Teixeira

OBRIGADA A TODOS MAIS FIZ DE OUTRA FORMA E DEU CERTO.
BRIGADUUUUUUUUUUUUUUUUUU

T

Tópico alvo de trolls, está sendo trancado.

Criado 17 de outubro de 2008
Ultima resposta 17 de out. de 2008
Respostas 14
Participantes 8