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
[]´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
[]´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
Obrigado a todos!