Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: dferna en 14 de Abril 2017, 11:59

Título: Sobreescribir métodos toString y equals cómo codificar métodos BlueJ CU00694B
Publicado por: dferna en 14 de Abril 2017, 11:59
Hola  ;)

Aquí dejo la resolución al ejercicio CU00694B del tutorial de programación en Java con BlueJ desde cero, sobreescribir métodos toString y equals


Clase Test

Código: [Seleccionar]
package test;

import aplicacion.*;

public class TestHerencia5 {

public static void main(String[] args) {


Cuadrado cuadrado1 = new Cuadrado(2);
Cuadrado cuadrado2 = new Cuadrado(5);
Cuadrado cuadrado3 = new Cuadrado(2);

Circulo circulo1 = new Circulo(2);
Circulo circulo2 = new Circulo(5);
Circulo circulo3 = new Circulo(2);

System.out.println("El área del cuadrado1 es: "+cuadrado1.calcularArea());
System.out.println("El área del cuadrado2 es: "+cuadrado2.calcularArea());
System.out.println("El área del círculo1 es: "+circulo1.calcularArea());
System.out.println("El área del círculo2 es: "+circulo2.calcularArea());

System.out.println("¿Son iguales el cuadrado1 y el cuadrado2? "+cuadrado1.equals(cuadrado2));
System.out.println("¿Son iguales el cuadrado1 y el cuadrado3? "+cuadrado1.equals(cuadrado3));
System.out.println("¿Son iguales el circulo1 y el circulo2? "+circulo1.equals(circulo2));
System.out.println("¿Son iguales el circulo1 y el circulo3? "+circulo1.equals(circulo3));
}

}


Superclase Figura

Código: [Seleccionar]
package aplicacion;

/**
 * Superclase Figura de la que heredan Cuadrado y Circulo
 * @author David
 *
 */
public class Figura {

private int dimensionPrincipal;

//Constructor
public Figura(){
dimensionPrincipal = 0;
}

//Constructor sobrecargado
public Figura(int dimensionPrincipal){
this.dimensionPrincipal = dimensionPrincipal;
}

//Getters and Setters
public int getDimensionPrincipal() {
return dimensionPrincipal;
}

public void setDimensionPrincipal(int dimensionPrincipal) {
this.dimensionPrincipal = dimensionPrincipal;
}

}


Subclase Cuadrado que extiende de Figura

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase Cuadrado que extiende de Figura
 * @author David
 *
 */
public class Cuadrado extends Figura {

/**
* Constructor sobrecargado
* @param dimension
*/
public Cuadrado(int dimension) {
super(dimension);
}

/**
* Método encargado de calcular el area de un cuadrado
* @return devuelve el area del cuadrado
*/
public int calcularArea() {
int resultado = (int) Math.pow(super.getDimensionPrincipal(), 2);
return resultado;
}

/**
* Método encargado de comparar si dos cuadrados son iguales en función de su dimension.
* @return true si son iguales y false si no lo son
*/
public boolean equals(Object obj) {
if (obj instanceof Cuadrado) {
Cuadrado cuadrado = (Cuadrado) obj;
if (super.getDimensionPrincipal() == (cuadrado.getDimensionPrincipal())) {
return true;
} else {
return false;
}
}
return false;
}

}


Subclase Circulo que extiende de Figura

Código: [Seleccionar]
package aplicacion;

public class Circulo extends Figura{

static final double PI = 3.14;


//Constructor
public Circulo(int dimension){
super(dimension);
}

/**
* Método encargado de calcular el área de un circulo
* @return devuelve el área del círculo
*/
public double calcularArea(){
double resultado = Math.pow(super.getDimensionPrincipal(), 2) * PI;
return resultado;
}

/**
* Método encargado de comparar si dos círculos son iguales en función de su dimension.
* @return true si son iguales y false si no lo son
*/
public boolean equals(Object obj) {
if (obj instanceof Circulo) {
Circulo circulo = (Circulo) obj;
if (super.getDimensionPrincipal() == (circulo.getDimensionPrincipal())) {
return true;
} else {
return false;
}
}
return false;
}
}

Ejecución del programa
Citar
El área del cuadrado1 es: 4
El área del cuadrado2 es: 25
El área del círculo1 es: 12.56
El área del círculo2 es: 78.5
¿Son iguales el cuadrado1 y el cuadrado2? false
¿Son iguales el cuadrado1 y el cuadrado3? true
¿Son iguales el circulo1 y el circulo2? false
¿Son iguales el circulo1 y el circulo3? true

Saludos  ;)
Título: Re:Sobreescribir métodos toString y equals cómo codificar métodos BlueJ CU00694B
Publicado por: Alex Rodríguez en 17 de Junio 2017, 17:56
Hola dferna, todo correcto

Saludos