1
Aprender a programar desde cero / Re:Ejercicio CU00694B sobreescribir métodos java
« en: 27 de Noviembre 2014, 09:53 »
Buenos días.
Precioso el manejo en la salida del ejercicio de Toni. Enhorabuena. Despues de ver esto cuesta publicar el mio jejeje.
Aun así, lo adjunto por si no esté haciendo bien algo o no interpretando del todo bien los conceptos. Ahí va:
Clase FIGURA:
Clase CUADRADO:
Clase CIRCULO:
Clase LISTAFIGURAS (esta no esta prevista en el enunciado pero lleno e itero en la siguiente un ArrayList de figuras):
y por ultimo la clase TEST:
Gracias y saludos.
Precioso el manejo en la salida del ejercicio de Toni. Enhorabuena. Despues de ver esto cuesta publicar el mio jejeje.
Aun así, lo adjunto por si no esté haciendo bien algo o no interpretando del todo bien los conceptos. Ahí va:
Clase FIGURA:
Código: [Seleccionar]
package CU00694B;
/**
* Clase Figura.
*
* @author ZSCFCP
* @version 20141125.1.0
*/
public class Figura
{
protected final Double PI = 3.1416;
protected Double dimensionPrincipal;
/** Constructor sin parámetros. */
public Figura() { this(0.0d); }
/** Constructor con parámetros. */
public Figura(Double dimensionPrincipal) { this.dimensionPrincipal = dimensionPrincipal; }
/** Métodos getter y setters */
public void setDimensionPrincipal(Double dimensionPrincipal) { this.dimensionPrincipal = dimensionPrincipal; }
public Double getDimensionPrincipal() { return dimensionPrincipal; }
/** Otros métodos. */
@Override
public String toString() {
return "Dimensión principal = ".concat(dimensionPrincipal.toString());
}
public void mostrarDatos() {System.out.println(toString());}
@Override
public boolean equals(Object obj) {
if (obj instanceof Figura) {
Figura tmpFig = (Figura) obj;
if (this.dimensionPrincipal.equals(tmpFig.dimensionPrincipal)) {return true;} else {return false;}
} else {return false;}
}
}
Clase CUADRADO:
Código: [Seleccionar]
package CU00694B;
/**
* Clase Cuadrado.
*
* @author ZSCFCP
* @version 2015112.1.0
*/
public class Cuadrado extends Figura
{
private Double areaCuadrado;
/** Constructor for objects of class Cuadrado (sin parametros) */
public Cuadrado() { super(0d); areaCuadrado=0d;}
/** Constructor for objects of class Cuadrado (con parametros) */
public Cuadrado(Double dimensionPrincipal) { super(dimensionPrincipal); calcularArea(); }
/**
* Método para calcular el área del cuadrado a partir del valor del lado proporcionado.
* @return devuelve un double con el valor del área del cuadrado.
*/
public void calcularArea()
{
areaCuadrado = dimensionPrincipal * dimensionPrincipal;
}
@Override
public String toString() {
return super.toString().concat(" / Área del cuadrado = ").concat(areaCuadrado.toString());
}
public void mostrarDatos() {super.mostrarDatos();}
public boolean equals(Object obj)
{
if (obj instanceof Cuadrado) {
Cuadrado tmpCuadrado = (Cuadrado) obj;
if (super.equals(tmpCuadrado) && this.areaCuadrado.equals(tmpCuadrado.areaCuadrado)) { return true; } else { return false; }
} else { return false; }
}
}
Clase CIRCULO:
Código: [Seleccionar]
package CU00694B;
/**
* Clase Circulo.
*
* @author ZSCFCP
* @version 2015112.1.0
*/
public class Circulo extends Figura
{
private Double areaCirculo;
/** Constructor for objects of class Circulo (sin parametros) */
public Circulo() { super(0d); areaCirculo=0d;}
/** Constructor for objects of class Circulo (con parametros) */
public Circulo(Double dimensionPrincipal) { super(dimensionPrincipal); calcularArea(); }
/**
* Método para calcular el área del circulo a partir del valor del radio proporcionado.
* @return devuelve un double con el valor del área del circulo.
*/
public void calcularArea()
{
areaCirculo = PI * dimensionPrincipal * dimensionPrincipal;
}
@Override
public String toString() {
return super.toString().concat(" / Área del círculo = ").concat(areaCirculo.toString());
}
public void mostrarDatos() {super.mostrarDatos();}
@Override
public boolean equals(Object obj)
{
if (obj instanceof Circulo) {
Circulo tmpCirculo = (Circulo) obj;
if (super.equals(tmpCirculo) && this.areaCirculo.equals(tmpCirculo.areaCirculo)) { return true; } else { return false; }
} else { return false; }
}
}
Clase LISTAFIGURAS (esta no esta prevista en el enunciado pero lleno e itero en la siguiente un ArrayList de figuras):
Código: [Seleccionar]
package CU00694B;
import java.util.ArrayList;
import java.util.List;
public class ListaFiguras{
private List<Figura> listaFiguras;
//Constructor
public ListaFiguras () {
listaFiguras = new ArrayList <Figura> ();
}
//Métodos
public void addFigura (Figura figura) { listaFiguras.add(figura); }
public List<Figura> viewListaFiguras() { return listaFiguras; }
} //Cierre de la clase
y por ultimo la clase TEST:
Código: [Seleccionar]
package CU00694B;
import java.util.Iterator;
/**
* Clase TEST del ejercicio CU00694B para probar la sobreescritura de metodos toString() y equals().
*
* @author ZSCFCP
* @version 20141126.1.0
*/
public class Test
{
public static void main (String [ ] Args)
{
ListaFiguras listFig1 = new ListaFiguras();
Cuadrado cuad1 = new Cuadrado(5.0d);
Cuadrado cuad2 = new Cuadrado(10.0d);
Cuadrado cuad3 = new Cuadrado(5.0d);
Circulo circ1 = new Circulo(6.0d);
Circulo circ2 = new Circulo(10.d);
Circulo circ3 = new Circulo(6.0d);
Figura figu1 = new Figura(5.0d);
Figura figu2 = new Figura(6.0d);
Figura figu3 = new Figura(7.0d);
listFig1.addFigura(cuad1); listFig1.addFigura(cuad2); listFig1.addFigura(cuad3);
listFig1.addFigura(circ1); listFig1.addFigura(circ2); listFig1.addFigura(circ3);
listFig1.addFigura(figu1); listFig1.addFigura(figu2); listFig1.addFigura(figu3);
Iterator<Figura> it = listFig1.viewListaFiguras().iterator();
Figura tmpFig=null;
String cabecera=null;
String separador="________________________________________________________________\n";
System.out.println(separador);
System.out.println(" Las figuras que constan son las siguientes: ");
System.out.println(separador);
while (it.hasNext())
{
tmpFig = it.next();
if (tmpFig instanceof Circulo) {cabecera="CIRCULO";}
else {if (tmpFig instanceof Cuadrado) {cabecera="CUADRADO";}
else {if (tmpFig instanceof Figura) {cabecera="FIGURA";}}}
System.out.println("Objeto: \"" + cabecera + "\"");
tmpFig.mostrarDatos();
System.out.println(separador);
}
System.out.println ("¿Son iguales los cuadrados cuad1 y cuad2?: " + cuad1.equals(cuad2) );
System.out.println ("¿Son iguales los cuadrados cuad1 y cuad3?: " + cuad1.equals(cuad3) );
System.out.println ("¿Son iguales los circulos circ1 y circ2?: " + circ1.equals(circ2) );
System.out.println ("¿Son iguales los circulos circ1 y circ3?: " + circ1.equals(circ3) );
System.out.println ("¿Son iguales las figuras figu1 y figu2?: " + figu1.equals(figu2) );
System.out.println ("¿Son iguales las figuras figu1 y figu3?: " + figu1.equals(figu3) );
System.out.println ("¿Son iguales cuad1 y circ3?: " + cuad1.equals(circ3) );
System.out.println ("¿Son iguales cuad1 y figu1?: " + cuad1.equals(figu1) );
System.out.println ("¿Son iguales circ1 y figu2?: " + circ1.equals(figu2) );
}
}
Gracias y saludos.