Valor de parâmetros em arrays

Olá tudo bem??? Como estou iniciando preciso tirar uma dúvida e se tem outro procedimento que faça
Eu tenho um Classe que armazena vetores com 4 posições:
//
private double [] p = new double[4];
private double [] t = new double[4];
private double mp = 0, mt = 0, mf = 0;
private String situacao = “”;

public double[] getP() {
	return p;
}
public void setP(double[] p) {
	this.p = p;
}
public double[] getT() {
	return t;
}
public void setT(double[] t) {
	this.t = t;
}
public double getMp() {
	return mp;
}
public void setMp(double mp) {
	this.mp = mp;
}
public double getMt() {
	return mt;
}
public void setMt(double mt) {
	this.mt = mt;
}
public double getMf() {
	return mf;
}
public void setMf(double mf) {
	this.mf = mf;
}
public String getSituacao() {
	return situacao;
}
public void setSituacao(String situacao) {
	this.situacao = situacao;
}
public String condicao (double [] p, double [] t) {
	double somaP = 0, somaT = 0, somaF = 0;
	int i = 0; 
	for(i = 0; i < 4;i++) {
		somaP += p[i];
	}
	mp = somaP / i;
	for(i = 0; i < 4;i++) {
		somaT += t[i];
	}
	mt = somaT / i; 
	mf = (mp + mt) / 2; 
      if (mf >= 6) {
         situacao = "Aprovado";
      }else {
         situacao = "Reprovado";
      }
return situacao;
}

}///Na classe Main como faço para que dentro do for eu dê um “set.p[i]” no conjunto de vetores e está apresentando erro
public static void main(String[] args) {

	Exercicio319 ex = new Exercicio319();
	int cont = 0;
	for(int i = 0;i<4;i++) {
		cont++;
		ex.setP[i] = (Double.parseDouble(JOptionPane.showInputDialog("Informe a " +cont +"ª nota prova")));; Não pode ser resolvido como variável
	}

}

Eu consigo fazer pelas variáveis não-indexadas, e como faço nas indexadas??? e o envio de parâmetros para o método dentro da classe?

Acho que você quer getP()[i] = ... ao invés de setP[i] = ... dentro do for

1 curtida

O seu método setP da classe Exercicio39 deve receber um vetor de doubles como parâmetro, e não um double só como você está fazendo no laço FOR no seu JOptionPane, você também não pode usar o sinal de atribuição em um método (=), em fim, execute o código a seguir como o main e veja o que consegue abstrair, aprenda perguntando e não tenha medo de perguntar:

import javax.swing.JOptionPane;

public class main{

    public static void main(String[] args){

        Exercicio319 ex = new Exercicio319();
        int cont = 0;
        double [] notas = new double[4]; //vetor de notas para atribuição na clase Exercicio39
        double valor = 0; 

        for(int i = 0 ; i < 4 ; i++) {
            cont++;
            valor = (Double.parseDouble(JOptionPane.showInputDialog("Informe a " + cont + "ªnota prova" )));
            notas[i] = valor; //valor para preenchimento do vetor
        }
        ex.setP(notas); //atribuição de notas na instância ex da classe Exercicio39
    }
}

Uma outra opção seria alterar o método setP da classe Exercicio39 da seguinte forma:

public void setP(double nota,int i) {
     p[i] = nota;
}

Dessa forma sua função teria dois parãmetros: o valor em si e o índice do vetor p para adicionar o valor., dessa forma o seu main ficaria:

import javax.swing.JOptionPane;

public class main{

    public static void main(String[] args){

        Exercicio319 ex = new Exercicio319();
        int cont = 0;
        double valor = 0; 

        for(int i = 0; i < 4 ; i++) {
            cont++;
            valor = (Double.parseDouble(JOptionPane.showInputDialog("Informe a " + cont + "ªnota prova" )));
            ex.setP(valor,i);
        }
    }
}

.