Duvidas com utilizaÇÃo de duas classes

12 respostas
gutoeto_26

Boa noite galera !
Bom é o seguinte pessoal ! preciso construir uma CALCULADORA BÁSICA (apenas as 4 operações), mas precisa ser da seguinte forma: OBRIGATORIAMENTE UTILIZAR DUAS CLASSES sendo uma classe OPERAÇÔES com os metodos GET e SET das 4 operações , e outra classe MAIN pra chamar os metodos GET e SET da classe OPERAÇÔES. Mas o problema é q o professor ainda não explicou como fazer utilizando as 2 classes, consegui fazer somente utilizando apenas uma classe com todos os metodos sendo chamados dentro dela atravez do WHILE.

o maximo que consegui fazer foi isso :

package Calculadora;

public class Operações {

private Integer soma;

private Integer subtrai;

private float multiplica;

private float divide;

private float resultado;
public float getDivide() {
    return divide;
}

public void setDivide(float divide) {
    this.divide = divide;
}

public float getMultiplica() {
    return multiplica;
}

public void setMultiplica(float multiplica) {
    this.multiplica = multiplica;
}

public Integer getSoma() {
    return soma;
}

public void setSoma(Integer soma) {
    this.soma = soma;
}

public Integer getSubtrai() {
    return subtrai;
}

public void setSubtrai(Integer subtrai) {
    this.subtrai = subtrai;
}

}

E A CLASSE MAIN

package Calculadora;

import javax.swing.JOptionPane;

public class main {

public static void main(String[] args) {
    
    
    Operações operações = new Operações();
   
        

  
}

}

DESDE JA AGRADEÇO A ATENÇÃO E A AJUDA …
VALEU PESSOAL.

12 Respostas

Filipe_A

Ola Boa Noite,

Essa calculadora é em modo grafico ?

gutoeto_26

Ola Boa Noite,

Essa calculadora é em modo grafico ?

olá filipe ! então é em modo grafico sim ,tenho que usar o JOptionPane.showMessageDialog

será q vc pode me ajudar ?

Filipe_A

Então vc vai usar o JOptionPane pra pegar os valores…

Ou vai ter botões e display ?.. vc vai ter que usar Jpanel e JFrame…

Ajudo no possivel =)

Ate +

gutoeto_26

NÃO NÃO É BEM SIMPLES MESMO , APENAS O JOPTIONPANE PRA JOGAR NA TELA MESMO …

Filipe_A

Pra vc chamar o metodo da sua classe Operacoes

vc vai ter q fazer o nome da referencia ao seu objeto Operacoes, no caso

operacoes.(aqui o nome do metodo)…

ex:

operacoes.getSoma();
B

Juro que não entendi por que as operações são valores, e tem métodos acessores para elas.

gutoeto_26

Desculpe Bruno , mas não entendi o que quis dizer amigo .

É que sou novato em JAVA e tenho muuuitas duvidas …

Pode ser mais especifico ? Talvez eu esteja fazendo tudo errado .

B

Ah sim. Eu vejo desta forma:

Somar, subtrair, multiplicar e dividir são ações de uma calculadora, certo? Ações, verbos, para nós são o que chamamos de métodos. Por exemplo:

public double somar(double a, double b) {

  return a + b;
}

Este é simples, chamamos o método somar da calculadora, passando dois números como parâmetro. O que o método vai fazer é somar a com b e retornar o resultado para nós.

Enquanto isso há o que chamamos de atributos, onde neles guardamos valores. O conjunto de atributos dentro de um objeto é o estado desse objeto, literalmente como ele está no momento.

Aí pergunto, que estado uma calculadora pode assumir? Ligada, desligada? Um atributo bem mais útil de ter numa calculadora é memória dela, que guardaria números que quiser nela. Outra opção que chegaria mais perto da simulação de uma calculadora de verdade é manter o número a ser operado, a operação que está acontecendo, e talvez o próximo numero.

No mais eu só achei estranho você ter atributos com nomes de verbo/métodos.

gutoeto_26

huuummmm ok !

vou dar mais uma estudada e tentar melhorar isso .
talvez eu não tenha nomeado de forma adequada os atributos certo !

agradeço pela dica e atenção …
valeu

adriano_si

Cara, seguindo o gancho do nosso amigo Bruno, fiz um basicão aí pra vc… por favor… não fique só nisso… avance nos estudos…

package br.com.guj.calculadora;

/**
 *
 * @author Adriano
 */
public class Operacao {
    
    public Double somar(Double var1, Double var2) {
        Double res = var1 + var2;
        return res;
    }
    
}
package br.com.guj.calculadora;

/**
 *
 * Voce deve completar a classe de forma que ela faça muitas outras coisas,
 * 1 - Incluir as demais operaçoes;
 * 2 - Tratar divisoes por 0 (que retornara uma exceçao);
 * 3 - Alterar para o modo grafico futuramente;
 * 4 - Implementar o método Main que vai executar o método iniciar()
 *
 */

import javax.swing.JOptionPane;

/**
 *
 * @author Adriano
 */
public class Calculadora {

    // Cria o objeto da classe que executara a Operaçao
    private Operacao operacao = new Operacao();

    // Cria somente a Opçao para validar a saida do sistema ou nao
    private Integer opcao;

    // Guarda o resultado do calculo
    private Double resultado;

    public Calculadora() {
    }

    public void iniciar() {
        // Inicia nossa opçao dizendo que quer fazer um calculo
        opcao = 1;

        // Enquanto o usuario responder sim, o calculo e executado
        while (opcao == 1) {

            // Verifica qual operaçao o usuario deseja executar
            // Criei so uma. Voce faz as demais.
            Integer opcaoOperacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Qual operaçao voce deseja executar?/n"+
                                                                                        "1 - Somar"));

            // Valida se o usuario nao vai entrar com um valor errado
            if (opcaoOperacao > 0 && opcaoOperacao < 5) {

                // Recebe os valores digitado pelo usuario
                Double var1 = Double.parseDouble(JOptionPane.showInputDialog(null,"Entre com o primeiro valor da Operaçao"));
                Double var2 = Double.parseDouble(JOptionPane.showInputDialog(null,"Entre com o segundo valor da Operaçao"));

                // Verifica qual e a operaçao e chama o metodo adequado da classe Operacao
                switch(opcaoOperacao) {
                    case 1:
                        resultado = operacao.somar(var1, var2);
                        break;
                    default:
                        this.mostarResultado();
                }
            } else {
                JOptionPane.showMessageDialog(null, "Entre com uma operaçao valida");
            }

            opcao = Integer.parseInt(JOptionPane.showInputDialog(null,"Deseja realizar outra operaçao?/n"+
                                                                                        "1 - SIM / 0 - Nao"));
        }
    }


    // Metodo que retorna o resultado no final da Operacao.
    private void mostarResultado() {
        JOptionPane.showMessageDialog(null, "Resultado da Operaçao: " + resultado);
    }
}

Falta ainda muita coia pra mexer nessa classe e nem testei pra saber se funciona, mas já é um início pra vc…

Falows :wink:

adriano_si

Já tenho correções:

// Mudar o Switch
switch(opcaoOperacao) {
                    case 1:
                        resultado = operacao.somar(var1, var2);
                        this.mostarResultado();
                        break;
                }

Valews :wink:

gutoeto_26

Opa valeu pela ajuda Adriano !

Agradeço muito , com certeza vai me ajudar bastante a progredir nos meus estudos.

valeu mesmo pela força q todos me deram aqui no forum…

Entreguei o trabalho hoje para o professor .
Preferi entregar apenas com o q consegui fazer eu mesmo, com a ajuda de todos aqui.
Não quis copiar, ou pegar codigo pronto na net , ja q estaria enganando a mim mesmo.

Estudando,praticando, lendo e obtendo ajuda do pessoal aqui , tenho certeza q vou progredir bastante

Agradeço mais uma vez a todos q colaboraram de alguma forma …

Criado 13 de abril de 2009
Ultima resposta 14 de abr. de 2009
Respostas 12
Participantes 4