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

4 respostas
L

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.

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.");
        }
     }
   }
}

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.

4 Respostas

MiguelCP

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.

L

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á.

R

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

L

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. :P

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.");
                    }
                }  
  
}

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.

Criado 3 de março de 2012
Ultima resposta 4 de mar. de 2012
Respostas 4
Participantes 3