Oi, Cintia
Você está indo bem!
Vamos à alguns esclarecimentos:
1- É preciso sim declarar "void carrega (double
p1, double
p2, double p3, double p4)". Não há outra maneira de declarar os parâmetros de um método.
2- Você já declarou
p1,
p2, p3, p4 como parâmetros que serão recebidos quando o método "carrega" for chamado. Então não há necessidade de recarregar esses valores.
Um exemplo de chamada desse método seria:
aluno.carrega(8.7, 7.2, 9.3, 7.4);
Dessa forma,
p1,
p2, p3 e p4 receberão 8.7, 7.2, 9.3 e 7.4, respectivamente.
3- O "return" é usado para indicar qual valor o método vai devolver. Assim, tudo o que estiver depois do "return" será pulado na hora da execução. Por isso, usa-se esse comando para a última linha do método calcula.
Mas, no caso, você quer que "media" receba o valor calculado. Então seu código ficaria assim:
void calcula()
{
double media;
media = (
p1 +
p2 + p3+ p4)/4;
System.out.println ( "A média é" + media);
if(media >=5.0) {
System.out.println ("Aprovado");
}
else if(media >=3.0) {
/* Entra aqui se media for menor que 5 e maior que 3. */
System.out.println ("Rec");
}
else {
/* Entra aqui se media for menor que 3. */
System.out.println ("Reprovado");
}
}
4- Não. Usar um if não implica em usar um else.
5- Lembrete: quando o if não tem abre e fecha chaves, "{" e "}", só um comando é considerado como estando dentro de seu bloco.
Veja:
http://paca.ime.usp.br/mod/forum/discuss.php?d=6578#p21701.
Continue fazendo os exercícios.
Isso lhe ajuda na hora de fazer EPs e provas. =]
Abraço,
Vinícius