Tentando criar um metodo veio este erro

8 respostas
E

Pessoal, esclareçam porque esta dando erro nesse codigo, a ideia é receber 2 nomes com suas notas e através de um metodo chamado calc-media efetuar o calculo e mostrar. Erro: illegal start of expression.

import javax.swing.JOptionPane;
class calc_media
{
      public static void main(String args[])
      {
        Double nota1 = 0.0, nota2 = 0.0, soma = 0.0, media = 0.0;
        String nomeAluno1 = "", nomeAluno2 = "";

        nomeAluno1 = JOptionPane.showInputDialog("Entre com o nome do 1º aluno..:");
        nota1      = Double.parseDouble(JOptionPane.showInputDialog("Entre com a nota do 1º aluno..:"));
        nomeAluno2 = JOptionPane.showInputDialog("Entre com o nome do 2º aluno..:");
        nota2      = Double.parseDouble(JOptionPane.showInputDialog("Entre com a nota do 2º aluno..:"));

        calc_media(media);

        public double getmedia(){
        return media; }

        public double calc_media(doble media){
        soma = (nota1 + nota2);
        media = (soma / 2);  }


        JOptionPane.showMessageDialog(null,"\nA nota do 1º aluno é..: " +nota1+
                                        "\nA nota do 2º aluno é ..: " +nota2+
                                        "\nA média é.. " +media);
   }

}

8 Respostas

gilmaslima

Não sei nem por onde eu começo…

// esses métodos não podem ser declarado dentro de outro

public double getmedia(){  
        return media; }  
  
        public double calc_media(doble media){  
        soma = (nota1 + nota2);  
        media = (soma / 2);  }

Sua classe tem um péssimo nome que por acaso ou não é o mesmo nome de um método seu…
esse link pode te ajudar com isso…
http://comet.lehman.cuny.edu/fitting/cssequence/CodeConventions.pdf

// essa chamada também é um problema
// vc está chamando um método não estatico dentro de um método estatico 
// o correto seria vc ter ma instancia da sua classe para chamar o método

calc_media(media);

Você está com dúvidas muito básicas que essa apostila pode ajudar…
http://www.caelum.com.br/downloads/apostila/caelum-java-objetos-fj11.pdf

De uma olhada nos links que te passei…

aix

ola amigo nao tive tempo de testar seu codigo, mas só de olhar achei alguns erros basicos.

1° - nomes de classe devem seguir a convenção de nomeação da sun primeira letra maiuscula palavras agrupadas seguem o estilo camel case ou seja ex:CalcMedia.
2º - o tipo primitivo da variavel na linha 06 esta escrito de forma errada esta Double, primitivos é com letra minuscula ex: double.
3º - os métodos tem a mesma convenção de nomeação camel case (public double getmedia) deveria de ser getMedia

Matheus_Leandro_Ferr
aix:
ola amigo nao tive tempo de testar seu codigo, mas só de olhar achei alguns erros basicos.

1° - nomes de classe devem seguir a convenção de nomeação da sun primeira letra maiuscula palavras agrupadas seguem o estilo camel case ou seja ex:CalcMedia.
2º - o tipo primitivo da variavel na linha 06 esta escrito de forma errada esta Double, primitivos é com letra minuscula ex: double.
3º - os métodos tem a mesma convenção de nomeação camel case (public double getmedia) deveria de ser getMedia

Não preciso comentar sobre o item 1 pois é besteira, ou seja, cada 1 faz a codificação como quiser.

Você poderia deixar seu código assim:

double nota1 = 0.0, nota2 = 0.0, soma = 0.0, media = 0.0;   
String nomeAluno1 = "", nomeAluno2 = "";   
  
nomeAluno1 = JOptionPane.showInputDialog("Entre com o nome do 1º aluno..:");   
nota1      = Double.parseDouble(JOptionPane.showInputDialog("Entre com a nota do 1º aluno..:"));   
nomeAluno2 = JOptionPane.showInputDialog("Entre com o nome do 2º aluno..:");   
nota2      = Double.parseDouble(JOptionPane.showInputDialog("Entre com a nota do 2º aluno..:"));   
  
soma = (nota1 + nota2);   
media = (soma / 2);
  
JOptionPane.showMessageDialog
(
	null,
	"\nA nota do 1º aluno é..: " +nota1+   
	"\nA nota do 2º aluno é ..: " +nota2+   
	"\nA média é das notas é..: " +media
);

Lembrando que o calculo da média do seu programa está referenciado a soma da nota de 2 alunos.

A

Embora isto que você falou esteja certo, o objetivo do forum é tirar duvidas e dar dicas referente a codigos e boas maneiras de desenvolvimento.

E acredito que manter o padrão definido pela SUN, é algo muito importante, principalmente quando se trabalha em empresas e grupos de desenvolvedores.

JonasZzZz

fora os erros obvios…

pra que voce instacia duas strings se voce nao as usa?

nomeAluno1;

nomeAluno2;

no final você poderia fazer

# JOptionPane.showMessageDialog(null,"\nA nota do " + nomeAluno1 + " aluno é..: " +nota1+  
#                                         "\nA nota do " + nomeAluno2 + "é ..: " +nota2+  
#                                         "\nA média é.. " +media);

e outra coisa… quando vc corrigir o seu códigos e tirar os outros métodos de dentro do metodo main…
o método calc_media(double media) irá exigir um retorno que vai ser a média… não tem sentido voce passar a média de parâmetro se o retorno é a media…

eu faria o metodo assim:

public calcMedia(double nota1, double nota2){
   return (nota1 + nota2) / 2;
}
JonasZzZz

e outra… pra que você fez o metodo getMedia()… se voce não o usa?

C

Olá edsouzza,

Depois da chuva de respostas não há nem o que escrever, apenas duas dicas :idea:

1.Leve a sério as recomendações de nomenclatura de classes, métodos, etc. Você pode achar as regras em:
Java Coding Style Guide

2.Os nomes de variáveis devem ser claros, nada como nota1, nota2, etc, prefira notaPrimeiroSemestre, notaExame e assim por diante.

Grande abraço,

Carlos Moreira

E

valeu…
obrigado a todos, vou começar a ler e quando resolver tudo eu posto a solução.

Criado 24 de dezembro de 2008
Ultima resposta 25 de dez. de 2008
Respostas 8
Participantes 7