Empecemos con una aplicación que nos permita hacer las operaciones básicas de la aritmética como suma(+), resta(-), producto(*), división(/), módulo(%) y potencia(^) de dos operandos de tipo double.
Podemos hacer de una forma fácil y directa de la siguiente manera:
Podemos hacer de una forma fácil y directa de la siguiente manera:
public static void main(String[] args) { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double op1, op2; System.out.print("Introduzca el primer operando: "); op1 = sc.nextDouble(); System.out.print("Introduzca el segundo operando: "); op2 = sc.nextDouble(); System.out.println(op1 + op2); System.out.println(op1 - op2); System.out.println(op1 * op2); System.out.println(op1 / op2); System.out.println(op1 % op2); System.out.println(Math.pow(op1, op2)); } }
Como dije anteriormente, es posible que este código sea muy sencillo de programar y más fácil de entender para principiantes en Java. La finalidad de este blog es aprender cómo funciona el paradigma de Programación Orientada a objetos, y lo programaremos así para ir entendiendo mejor y facilitar más la programación utilizando la POO, además que la explicación está en el mismo código como comentarios Java.
A continuación creamos una aplicación Java en Netbeans con el nombre de MatematicaBasica (esto es opcional) y tendremos algo así:
package matematicabasica; /** * * @author CrysMario */ public class MatematicaBasica { public static void main(String[] args) { } }
Ahora creamos las clases dentro del mismo paquete por defecto o como uds. quieran, la primer clase que vamos a implementar es la clase abstracta OperacionBasica:
package matematicabasica; /** * * @author CrysMario */ /* Cuando declaramos una clase abstracta, significa que esta clase no puede ser instanciada, por lo que instaciaremos las clases que heredan de ésta. */ abstract class OperacionBasica { private double operando1; private double operando2; public OperacionBasica() { this.operando1 = this.operando2 = 1; } public OperacionBasica(double operando1, double operando2) { this.operando1 = operando1; this.operando2 = operando2; } public double getOperando1() { return operando1; } public double getOperando2() { return operando2; } public void setOperando1(double operando1) { this.operando1 = operando1; } public void setOperando2(double operando2) { this.operando2 = operando2; } @Override public String toString() { return "Operaciones Básicas{" + "operando1 = " + operando1 + ", operando2 = " + operando2 + '}'; } }
Ahora creamos las clases que heredan de la clase abstracta OperacionBasica, éstas son Suma, Resta, Producto (Multiplicación), Division, Modulo(Resto) y Potencia.
package matematicabasica; /** * * @author CrysMario */ public class Suma extends OperacionBasica { public Suma(double operador1, double operador2) { super(operador1, operador2); } public double getResultado() { return super.getOperando1() + super.getOperando2(); } @Override public String toString() { return super.getOperando1() + " + " + super.getOperando2() + " = " + this.getResultado(); } }
package matematicabasica; /** * * @author CrysMario */ public class Resta extends OperacionBasica { public Resta(double operador1, double operador2) { super(operador1, operador2); } public double getResultado() { return super.getOperando1() - super.getOperando2(); } @Override public String toString() { return super.getOperando1() + " - " + super.getOperando2() + " = " + this.getResultado(); } }
package matematicabasica; /** * * @author CrysMario */ public class Producto extends OperacionBasica { public Producto(double operador1, double operador2) { super(operador1, operador2); } public double getResultado() { return super.getOperando1() * super.getOperando2(); } @Override public String toString() { return super.getOperando1() + " * " + super.getOperando2() + " = " + this.getResultado(); } }
package matematicabasica; /** * * @author CrysMario */ public class Division extends OperacionBasica { public Division(double operador1, double operador2) { super(operador1, operador2); } public double getResultado() { try { return super.getOperando1() / super.getOperando2(); } catch (ArithmeticException e) { System.out.println("Infinito"); return 0; } } @Override public String toString() { return super.getOperando1() + " / " + super.getOperando2() + " = " + this.getResultado(); } }
package matematicabasica; /** * * @author CrysMario */ public class Modulo extends OperacionBasica { public Modulo(double operador1, double operador2) { super(operador1, operador2); } public double getResultado() { try { return super.getOperando1() % super.getOperando2(); } catch (ArithmeticException e) { System.out.println("No existe"); return 0; } } @Override public String toString() { return super.getOperando1() + " mod " + super.getOperando2() + " = " + this.getResultado(); } }
package matematicabasica; /** * * @author CrysMario */ public class Potencia extends OperacionBasica { public Potencia(double operador1, double operador2) { super(operador1, operador2); } public double getResultado() { return Math.pow(super.getOperando1(), super.getOperando2()); } @Override public String toString() { return super.getOperando1() + " ^ " + super.getOperando2() + " = " + this.getResultado(); } }
Una vez finalizado las clases hijas, procederemos con la clase por donde corre nuestro programa y tiene el método main y hacemos lo siguiente:
package matematicabasica; /** * * @author CrysMario */ public class MatematicaBasica { public static void main(String[] args) { Suma s1 = new Suma(3, 4); System.out.println(s1.toString()); Resta r1 = new Resta(3, 4); System.out.println(r1.toString()); Producto p1 = new Producto(3, 4); System.out.println(p1.toString()); Division d1 = new Division(3, 4); System.out.println(d1.toString()); Division d2 = new Division(3, 0); System.out.println(d2.toString()); Modulo m1 = new Modulo(3, 2); System.out.println(m1.toString()); Modulo m2 = new Modulo(3, 0); System.out.println(m2.toString()); Potencia pot1 = new Potencia(3, 4); System.out.println(pot1.toString()); Potencia pot2 = new Potencia(3, -2); System.out.println(pot2.toString()); System.out.println("*************************"); System.out.println(new Resta(p1.getResultado(), s1.getResultado()).toString()); } }
Una vez ejecutado esta aplicación, nos mostrará lo siguiente:
run: 3.0 + 4.0 = 7.0 3.0 - 4.0 = -1.0 3.0 * 4.0 = 12.0 3.0 / 4.0 = 0.75 3.0 / 0.0 = Infinity 3.0 mod 2.0 = 1.0 3.0 mod 0.0 = NaN 3.0 ^ 4.0 = 81.0 3.0 ^ -2.0 = 0.1111111111111111 ************************* 12.0 - 7.0 = 5.0 BUILD SUCCESSFUL (total time: 0 seconds)
Si quieren adquirir el programa completo en Java + Netbeans, comente solicitando la aplicación y no olvidar el correo electrónico para enviar.
If you want to acquire the entire program in Java + Netbeans, comment requesting the application and do not forget comment your email.
Buenas tardes brother una pregunta ese programa ya contiene el POO? Me podrias ayudar brother rendonsalvador54@gmail.com
ResponderEliminarBuenas tardes brother una pregunta ese programa ya contiene el POO? Me podrias ayudar brother rendonsalvador54@gmail.com
ResponderEliminaramigo si te pudo ayudar?
Eliminarno
ResponderEliminar