Ajuda - Exercicio simples em Java

O problemas dos ifs se resolvem com polimorfismo e um mapa. Essa calculadora está muito procedural. Mas como o autor está contente com o resultado e já atingiu o objetivo, blz.

Então, parece que o Vinicius está começando ainda.
Encher a cabeça dele com vários conceitos não vai ajudar nada, só atrapalhar, visto que ele ainda está no início.
Falar de polimorfismo para quem ainda não entende direito o que é um método e como o retorn funciona fica complicado :wink:

[]´s

Eu recomendo você dar uma focada de tipo uma semana só no conceito antes de por a mão da massa… Vide o que você pediu:

[code]/**

  • Classe com todas as operações matemáticas do projeto

  • @author André AS

  • */
    public class OperacaoMatematica {

    /**

    • Método soma
    • @param Valor1
    • @param Valor2
    • @return resultado da soma dos dois valores
    • */
      int soma(int valor1, int valor2) {
      int resultado = valor1 + valor2;
      System.out.println(resultado);
      return resultado;
      }

    /**

    • Método multiplica
    • @param Valor1
    • @param Valor2
    • @return resultado da multiplicação dos dois valores
    • */
      int multiplica(int valor1, int valor2) {
      int resultado = valor1 * valor2;
      System.out.println(resultado);
      return resultado;
      }

    /**

    • Método de divisão
    • @param Valor1
    • @param Valor2
    • @return resultado da divisão do valor2 pelo valor1
    • */
      int dividi(int valor1, int valor2) {
      int resultado = valor1 / valor2;
      System.out.println(resultado);
      return resultado;
      }

    /**

    • Método de subtração
    • @param Valor1
    • @param Valor2
    • @return resultado da divisão do valor2 pelo valor1
    • */
      int subtrai(int valor1, int valor2) {
      int resultado = valor2 - valor1;
      System.out.println(resultado);
      return resultado;
      }
      }

/**

  • Classe responsável por testar todas as operações matemáticas do projeto

  • @author André AS

  • */
    class Principal {
    public static void main(String[] args) {
    /Criada instância/um Objeto da classe OperacaoesMatematicas/
    OperacaoMatematica operacoesMatematicas = new OperacaoMatematica();

     /*Escolhendo qual método/operações matemática usar*/
      operacoesMatematicas.dividi(10, 2);
      
      /*Escolhendo qual método/operações matemática usar*/
      operacoesMatematicas.soma(10, 2);
      
      /*Escolhendo qual método/operações matemática usar*/
      operacoesMatematicas.multiplica(10, 2);
      
      /*Escolhendo qual método/operações matemática usar*/
      operacoesMatematicas.dividi(10, 2);
    
     //Ou você pode implementar mais ou menos assim: (se 1 for diferente de 1 ele vai somar o que daria 2, como 1 é igual a 1 o resultado será 1, a multiplicação)
     /* if(1 != 1){
     	 operacoesMatematicas.soma(1, 1);
      }
      else{
     	 operacoesMatematicas.multiplica(1, 1);
      }*/
    

    }

}[/code]

Outro detalhe, eu focaria só no Eclipse ferramenta de mercado…

Na verdade pode tb ser void sim, veja:

/** * Método soma * * @param Valor1 * @param Valor2 * @return resultado da soma dos dois valores * */ void soma(int valor1, int valor2) { int resultado = valor1 + valor2; System.out.println(resultado); }

[quote=viniciusglanert]To compreendendo melhor agora, mas ainda não estou conseguindo imprimir na tela atraves da classe principal…

Dá uma olhada no codigo

package calcular;


public class Operacao {
double resultado[];

public double somar (double valor1, double valor2){
resultado[0]=valor1+valor2;
return resultado[0]; }

public double subtrair (double valor1, double valor2){
resultado[1]=valor1-valor2;
return resultado[1]; }

public double multiplicar (double valor1, double valor2){
resultado[2]=valor1*valor2;
return resultado[2]; }

public double dividir (double valor1, double valor2){
resultado[3]=valor1/valor2;
return resultado[3]; }

}

[code]
package calcular;

import javax.swing.JOptionPane;

public class Calcular {

public static void main(String[] args) {
    
int opc;
Operacao operacao=new Operacao();

opc= Integer.parseInt(JOptionPane.showInputDialog(null,"Digite uma opção:\n1- somar\n2- subtrair\n3- Multiplicar\n4- Dividir ",“OPERAÇÃO”,JOptionPane.PLAIN_MESSAGE));

if(opc==1){
operacao.resultado[0]=JOptionPane.showInputDialog(null,“O Resultado é”+resultado[0],“OPERAÇÃO”,JOptionPane.PLAIN_MESSAGE));
}

if(opc==2){
}

O erro está na linha 17, não consigo achar a sintaxe correta "/
if(opc==3){
}

if(opc==4){
}
}

}
[/code][/quote]

Veja como guardar no array depois:

[code]class Principal {
public static void main(String[] args) {
/Criada instância/um Objeto da classe OperacaoesMatematicas/
OperacaoMatematica operacoesMatematicas = new OperacaoMatematica();

	 /*Array para guardar os resultados*/
	 int[] guardaOsResultados = new int[100];

	/*Escolhendo qual método/operações matemática usar*/
	 int soma1 = operacoesMatematicas.dividi(10, 2);
	
	 /*Guardando o resultado no array*/
	 guardaOsResultados[0] = soma1; 
	 
	 /*Escolhendo qual método/operações matemática usar*/
	 operacoesMatematicas.soma(10, 2);
	 
	 /*Escolhendo qual método/operações matemática usar*/
	 operacoesMatematicas.multiplica(10, 2);
	 
	 /*Escolhendo qual método/operações matemática usar*/
	 operacoesMatematicas.dividi(10, 2);

	//Ou você pode implementar mais ou menos assim: (se 1 for diferente de 1 ele vai somar o que daria 2, como 1 é igual a 1 o resultado será 1, a multiplicação)
	/* if(1 != 1){
		 operacoesMatematicas.soma(1, 1);
	 }
	 else{
		 operacoesMatematicas.multiplica(1, 1);
	 }*/

}

}[/code]

Então, parece que o Vinicius está começando ainda.
Encher a cabeça dele com vários conceitos não vai ajudar nada, só atrapalhar, visto que ele ainda está no início.
Falar de polimorfismo para quem ainda não entende direito o que é um método e como o retorn funciona fica complicado :wink:

[]´s[/quote]

Pois é, mas não custa deixar a idéia de OO pra que ler depois…hehe. Ou então o problema sou eu que ando pensando OO demais.
[]s

Gente, desculpem a demora pra responder!

Vou refazer algumas coisas na calculadora, ainda não adquiri o tão comentado conceito Orientado a Objetos hehe
Mas aceito dicas, assim aprenderei ^^


Na real as linhas não são iguais… O comando sim.
Mas cada uma exibe um “titulo” diferente no PLAIN_MESSAGE

Mas realmente eu poderia diminuir o código se retirasse :slight_smile:


Obrigado a todos!