You are on page 1of 6

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. CalcularArea() 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(), calcularArea()
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. CalcularArea() public Devolver double

/** * @author Nessy * */


public abstract class Figura {

Figura(){

}
public double calcularPerimetro(){
return 0;
}
public double calcularArea(){
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(), calcularArea()

/** * @author Nessy * */


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 calcularArea(){


return base * altura * 0.5;
}
}

6. Creamos la clase Circulo (extends Figura)


7. Añadimos atributo radio (prívate)
8. Métodos calcularPerimetro(), calculararea()

/** * @author Nessy * */


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 calcularArea(){
return Math.PI*(radio*radio);
}
}
FIGURAS JAVA ~3~

9. Creamos clase Pruebas, con método main()

/** * @author Nessy * */


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:

/** * @author Nessy * */


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("Perímetros");
System.out.println("Rectángulo base " + r1.getBase()+ " y altura " +
r1.getAltura() + " es " + r1.calcularPerimetro());
System.out.println("Rectángulo base " + r2.getBase()+ " y altura " +
r2.getAltura() + " es " + r2.calcularPerimetro());
System.out.println("Area");
System.out.println("Rectángulo base " + r1.getBase()+ " y altura " +
r1.getAltura() + " es " + r1.calcularArea());
System.out.println("Rectángulo base " + r2.getBase()+ " y altura " +
r2.getAltura() + " es " + r2.calcularArea());

Circulo c1 = new Circulo(2);


Circulo c2 = new Circulo(4);
System.out.println("CIRCULOS" );
System.out.println("Perímetros");
System.out.println("Circulo radio: "+ c1.getRadio()+ " :
"+c1.calcularPerimetro());
System.out.println("Circulo radio: "+ c2.getRadio()+ " :
"+c2.calcularPerimetro());
System.out.println("Area");
System.out.println("Circulo radio: "+ c1.getRadio()+ " :
"+c1.calcularArea());
System.out.println("Circulo radio: "+ c2.getRadio()+ " :
"+c2.calcularArea());

La salida será:

RECTANGULOS
Perímetros
Rectángulo base 2.0 y altura 4.0 es 12.0
Rectángulo base 3.0 y altura 6.0 es 18.0
Area
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
Perímetros
Circulo radio: 2.0 : 12.566370614359172
Circulo radio: 4.0 : 25.132741228718345
Area
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 calcularArea 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;
/** * @author Nessy * */
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("Perímetros");
System.out.println("Rectángulo base " + r1.getBase()+ " y altura " +
r1.getAltura() + " es " + formato.format(r1.calcularPerimetro()));
System.out.println("Rectángulo base " + r2.getBase()+ " y altura " +
r2.getAltura() + " es " + formato.format(r2.calcularPerimetro()));
System.out.println("Area");
System.out.println("Rectángulo base " + r1.getBase()+ " y altura " +
r1.getAltura() + " es " + r1.calcularArea());
System.out.println("Rectángulo base " + r2.getBase()+ " y altura " +
r2.getAltura() + " es " + r2.calcularArea());

Circulo c1 = new Circulo(2);


Circulo c2 = new Circulo(4);
System.out.println("CIRCULOS" );
System.out.println("Perímetros");
System.out.println("Circulo radio: "+ c1.getRadio()+ " : "+
formato.format(c1.calcularPerimetro()));
System.out.println("Circulo radio: "+ c2.getRadio()+ " :
"+formato.format(c2.calcularPerimetro()));
System.out.println("Area");
System.out.println("Circulo radio: "+ c1.getRadio()+ " :
"+formato.format(c1.calcularArea()));
System.out.println("Circulo radio: "+ c2.getRadio()+ " :
"+formato.format(c2.calcularArea()));
}
}
FIGURAS JAVA ~6~

La salida con este cambio es la siguiente:


RECTANGULOS
Perímetros
Rectángulo base 2.0 y altura 4.0 es 12,00
Rectángulo base 3.0 y altura 6.0 es 18,00
Area
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
Perímetros
Circulo radio: 2.0 : 12,57
Circulo radio: 4.0 : 25,13
Area
Circulo radio: 2.0 : 12,57
Circulo radio: 4.0 : 50,27

You might also like