FIGURAS JAVA ~ 1 ~ PROYECTO FIGURAS 1. Crear una clase Figura, abstracta 2. Añadirle los métodos vacíos a. CalcularPerimetro() public Devolver double b. Calcular() public Devolver double 3. Crear la clase Rectangulo. A partir de figura 4. Añadir a ésta los atributos base (prívate), altura(prívate) (doublé) 5. Añadir los métodos calcular Perimetro(), calcular() 6. Creamos la clase Circulo (extends Figura) 7. Añadimos atributo radio (prívate) 8. Métodos calcularperimetro(), calculararea() 9. Creamos clase Pruebas, con método main() DIAGRAMA DE FLUJO
FIGURAS JAVA ~ 2 ~ 1. Crear una clase Figura, abstracta 2. Añadirle los métodos vacíos a. CalcularPerimetro() public Devolver double b. Calcular() public Devolver double public abstract class Figura { Figura(){ public double calcularperimetro(){ return 0; public double calcular(){ return 0; 3. Crear la clase Rectangulo. A partir de figura 4. Añadir a ésta los atributos base (prívate), altura(prívate) (doublé) 5. Añadir los métodos calcular Perimetro(), calcular() public class Rectangulo extends Figura { private double base; private double altura; public Rectangulo(double base, double altura) { this.base=base; this.altura=altura; public double calcularperimetro(){ return (base*2+altura*2); public double calcular(){ return base * altura * 0.5; 6. Creamos la clase Circulo (extends Figura) 7. Añadimos atributo radio (prívate) 8. Métodos calcularperimetro(), calculararea() public class Circulo extends Figura { private double radio; public Circulo(double radio) { this.radio=radio; public double calcularperimetro(){ return 2*Math.PI*radio; public double calcular(){ return Math.PI*(radio*radio);
FIGURAS JAVA ~ 3 ~ 9. Creamos clase Pruebas, con método main() public class Pruebas { /** * @param args */ public static void main(string[] args) { MEJORA Utilizar los getter para poder obtener los valores de cada objeto para obtener una salida por pantalla del tipo: Circulo radio: 2.0 : 12.566370614359172 Esto genera: public double getradio() { return radio;
FIGURAS JAVA ~ 4 ~ Así para hacer pruebas en el main (Prueba) podemos poner por ejemplo: public class Pruebas { /** * @param args */ public static void main(string[] args) { Rectangulo r1 = new Rectangulo(2.0,4.0); Rectangulo r2 = new Rectangulo(3.0,6.0); System.out.println("RECTANGULOS"); System.out.println(""); r1.getaltura() + " es " + r1.calcularperimetro()); r2.getaltura() + " es " + r2.calcularperimetro()); r1.getaltura() + " es " + r1.calcular()); r2.getaltura() + " es " + r2.calcular()); Circulo c1 = new Circulo(2); Circulo c2 = new Circulo(4); System.out.println("CIRCULOS" ); System.out.println(""); System.out.println("Circulo radio: "+ c1.getradio()+ " : "+c1.calcularperimetro()); "+c2.calcularperimetro()); System.out.println("Circulo radio: "+ c1.getradio()+ " : "+c1.calcular()); "+c2.calcular()); La salida será: RECTANGULOS Rectángulo base 2.0 y altura 4.0 es 12.0 Rectángulo base 3.0 y altura 6.0 es 18.0 Rectángulo base 2.0 y altura 4.0 es 4.0 Rectángulo base 3.0 y altura 6.0 es 9.0 CIRCULOS Circulo radio: 2.0 : 12.566370614359172 Circulo radio: 4.0 : 25.132741228718345 Circulo radio: 2.0 : 12.566370614359172 Circulo radio: 4.0 : 50.26548245743669
FIGURAS JAVA ~ 5 ~ Aquí vemos: Herencia: De la clase Figura heredan las clases Rectangulo y Circulo Encapsulacion: En el hecho de que todo está metidito dentro de las clases y hay cosas que puedo hacer y cosas que no. Por ejemplo el atributo radio el prívate y solo se puede modificar cuando creas un objeto círculo. Polimorfismo: calcularperimetro y calcular que está presente en las tres clases pero actúa de modo distinto para cada una de ellas. De hecho si yo hago: Rectangulo b = new Rectangulo(4.0,5.0); Figura f=b; System.out.println(f.calcularPerimetro()); Aquí irá a calcularperímetro de la clase Rectángulo. MEJORA. Para obtener una salida con 2 decimales vamos a realizar lo mismo que hacíamos para el ejemplo de la raíz cuadrada con DecimalFormat import java.text.decimalformat; public class Pruebas { /** * @param args */ public static void main(string[] args) { DecimalFormat formato = new DecimalFormat("0.00"); Rectangulo r1 = new Rectangulo(2.0,4.0); Rectangulo r2 = new Rectangulo(3.0,6.0); System.out.println("RECTANGULOS"); System.out.println(""); r1.getaltura() + " es " + formato.format(r1.calcularperimetro())); r2.getaltura() + " es " + formato.format(r2.calcularperimetro())); r1.getaltura() + " es " + r1.calcular()); r2.getaltura() + " es " + r2.calcular()); Circulo c1 = new Circulo(2); Circulo c2 = new Circulo(4); System.out.println("CIRCULOS" ); System.out.println(""); System.out.println("Circulo radio: "+ c1.getradio()+ " : "+ formato.format(c1.calcularperimetro())); "+formato.format(c2.calcularperimetro())); System.out.println("Circulo radio: "+ c1.getradio()+ " : "+formato.format(c1.calcular())); "+formato.format(c2.calcular()));
FIGURAS JAVA ~ 6 ~ La salida con este cambio es la siguiente: RECTANGULOS Rectángulo base 2.0 y altura 4.0 es 12,00 Rectángulo base 3.0 y altura 6.0 es 18,00 Rectángulo base 2.0 y altura 4.0 es 4.0 Rectángulo base 3.0 y altura 6.0 es 9.0 CIRCULOS Circulo radio: 2.0 : 12,57 Circulo radio: 4.0 : 25,13 Circulo radio: 2.0 : 12,57 Circulo radio: 4.0 : 50,27