Criação de métodos - Dúvida

Me foi pedido que criasse uma pequena aplicação (NetBeans 7.1) que realizasse as quatro operações básicas, de modo que o usuário pudesse escolher qual operação gostaria de efetuar. Ok, até aí, tranquilo.
Depois, precisei adicionar funcionalidades, e estas são validar e classificar um triângulo, calcular a área de um trapézio, de um círculo, entre outras… o que eu também consegui resolver. Só que agora, preciso que cada operação dessas seja dividida por um método, ou seja, um para cada operação, e é aí que o bicho pega.

Procurei sobre como funcionam os métodos, sintaxe, declaração e nada. Não estou conseguindo elaborar esta solução e gostaria de que vocês me ajudassem nessa.

Optei postar o código inteiro, pois imagino que fique mais fácil de entendê-lo, por isso, abaixo segue apenas a primeira versão, a das quatro operações básicas.

[code]package javaapplication1;

/**

  • @author leo.ti
    */
    import javax.swing.JOptionPane;

public class JavaApplication1 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
         
    // TODO code application logic here

        while (true){
    
     String opçoes = JOptionPane.showInputDialog(null, "Favor inserir o número correspondente a operação que deseja realizar.\n"
            + "1 - Soma;\n"
            + "2 - Subtração;\n"
            + "3 - Multiplicação;\n"
            + "4 - Divisão;\n"
            + "5 - Sair;");

    int op = Integer.parseInt(opçoes);

    if (op == 1) {

        while (true) {
            try {
                String valorA = JOptionPane.showInputDialog(null, "Insira o primeiro valor inteiro no campo abaixo:");
                int x = Integer.parseInt(valorA);
                String valorB = JOptionPane.showInputDialog(null, "Insira o segundo valor inteiro no campo abaixo:");
                int y = Integer.parseInt(valorB);
                JOptionPane.showMessageDialog(null, "A soma dos valores informados é: " + (x + y));
                break;
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Número não inteiro. Favor inserir número inteiro.");
            }
        }
    } if (op == 2) {

        while (true) {
            try {
                String valorA = JOptionPane.showInputDialog(null, "Insira o primeiro valor inteiro no campo abaixo:");
                int x = Integer.parseInt(valorA);
                String valorB = JOptionPane.showInputDialog(null, "Insira o segundo valor inteiro no campo abaixo:");
                int y = Integer.parseInt(valorB);
                JOptionPane.showMessageDialog(null, "A subtração dos valores informados é: " + (x - y));
                break;
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Número não inteiro. Favor inserir número inteiro.");
            }
        }
    } if (op == 3) {

        while (true) {
            try {
                Float x, y;
                String valorA = JOptionPane.showInputDialog("Insira o primeiro valor com casa decimal no campo abaixo:");
                x = Float.parseFloat(valorA);
                String valorB = JOptionPane.showInputDialog("Insira o segundo valor com casa decimal no campo abaixo:");
                y = Float.parseFloat(valorB);
                JOptionPane.showMessageDialog(null, "A multiplicação dos valores informados é: " + (x * y));
                break;
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Número não inteiro. Favor inserir número inteiro.");
            }
        }
    } if (op == 4) {
        while (true) {
            try {
                Float x, y;
                String valorA = JOptionPane.showInputDialog("Insira o primeiro valor com casa decimal no campo abaixo:");
                x = Float.parseFloat(valorA);
                String valorB = JOptionPane.showInputDialog("Insira o segundo valor com casa decimal no campo abaixo:");
                y = Float.parseFloat(valorB);
                JOptionPane.showMessageDialog(null, "A divisão dos valores informados é: " + (x / y));
                break;
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Número não inteiro. Favor inserir número inteiro.");
            }
        }
    } if (op == 5) {
        System.exit(0);
    } 
    if ((op < 1) || (op > 11)) {
        JOptionPane.showMessageDialog(null, "Número inválido. Favor inserir um número correspondente a operação que deseja realizar.");
    }
 }

}
}[/code]

Desculpem ter sido tão prolixo e possivelmente pouco claro. Sou novo aqui e, como percebem, iniciante em programação e principalmente Java.

Desde já agradeço a atenção de vocês. Obrigado, mesmo.

No Google você pode até encontrar métodos prontos das quatro operações, mas você pode fazer assim:


public int Soma(int numero1, int numero2){

int soma = numero1 + numero2

return soma

}

Feito isso no if você colocaria:


If esolhadousuario.equals("soma"){

Object o = new Object();

o.Soma(1,2);

}

Espero ter ajudado.

Olá, MiguelCP. Obrigado pelo post, cara.

Esse trecho:


public int Soma(int numero1, int numero2){

int soma = numero1 + numero2

return soma

}

É um método, correto? Então, cara, eu posso usar um método dentro de outro? Posso criar quantos métodos eu quiser dentro de uma classe (public class JavaApplication1)?


If esolhadousuario.equals("soma"){

Object o = new Object();

}

Esse segundo trecho seria a parte do If, ok. Mas como funciona o método identificador.equals()? É semelhante a um Switch-Case?

O que essa linha de código faz ( Object o = new Object() ) ?

Grato desde já.

o .equals ve se é igual ao digitado, no caso a string digitada

ali ele está chamando o método soma, com o objeto o, da classe object…

é possível criar o método separadamente,

e chamar os mesmos dentro do método construtor que tem o mesmo nome da classe principal, que é vazio por padrão.
sem chamar objeto nenhum, enfim existem muitas formas de programar a mesma coisa.

ali vc está dizendo ao método soma,
que os números que ele recebe são 1 e 2, e pelas instruções dentro do método, eles serão somados.

:slight_smile:

procure quem sabe por calculadora aqui no guj, tem muitos métodos e calculadoras prontas, por aqui mesmo.

http://www.guj.com.br/search?cx=partner-pub-9448585618971060%3A4001950301&cof=FORID%3A10&ie=UTF-8&q=calculadora&x=0&y=0&siteurl=www.guj.com.br%2Fposts%2Freply%2F0%2F266761.java&ref=www.guj.com.br%2Fposts%2Freply%2F0%2F266761.java

Obrigado mesmo pelo esclarecimento, mas é que eu não queria usar métodos que envolvessem objeto. Pelo menos não ainda, já que não estou habituado a Java ou Orientação a Objetos. :stuck_out_tongue:

[code]public String Soma(int x, int y){

while (true) {
                try {
                    String valorA = JOptionPane.showInputDialog(null, "Insira o primeiro valor inteiro no campo abaixo:");
                    x = Integer.parseInt(valorA);
                    String valorB = JOptionPane.showInputDialog(null, "Insira o segundo valor inteiro no campo abaixo:");
                    y = Integer.parseInt(valorB);
                    return JOptionPane.showMessageDialog(null, "A soma dos valores informados é: " + (Integer.toString(x) + Integer.toString(y)));
                    break;
                } catch (Exception e) {
                    return JOptionPane.showMessageDialog(null, "Número não inteiro. Favor inserir número inteiro.");
                }
            }  

}[/code]

incompatible types
required: java.lang.String
found: void

O erro é apontado nas duas linhas de retorno.

Alguém pode me dizer o que está errado nesse código? Desde já agradeço.