Ejercicio de Interfaces en Java
Ejercicio de Interfaces en Java
Ejercicio de Interfaces en Java
Instrucciones.Codificaycompilalainterfaceylasclasesquelaimplementan.
Despusprubalasconuntester.
//Interface que define relaciones de orden entre objetos.
public interface Relacionable {
boolean esMayorQue(Object a);
boolean esMenorQue(Object a);
boolean esIgualQue(Object a);
}
double
double
double
double
x1;
y1;
x2;
y2;
///////////////////////////////////////////////////////////////////////////////
//
//
Implementacin de los tres mtodos de la interface
//
//
///////////////////////////////////////////////////////////////////////////////
@Override
public boolean esMayorQue(Object a) {
if (a == null) {
return false;
}
if (!(a instanceof Linea)) {
return false;
}
double lon = ((Linea) a).longitud();
return longitud() > lon;
}
@Override
public boolean esMenorQue(Object a) {
if (a == null) {
return false;
}
if (!(a instanceof Linea)) {
return false;
}
double lon = ((Linea) a).longitud();
return longitud() < lon;
}
@Override
public boolean esIgualQue(Object a) {
if (a == null) {
return false;
}
if (!(a instanceof Linea)) {
return false;
}
double lon = ((Linea) a).longitud();
return longitud() == lon;
}
// Sobreescritura del mtodo toString heredeado de Object
@Override
public String toString() {
return "\nCoordenadas inicio linea: " + x1 + " , " + y1
+ "\nCoordenadas final linea: "+ x2 + " , " + y2
+ "\nLongitud: " + longitud();
}
this.den = 1;
}
public void setDen(int den) {
this.den = den;
this.simplificar();
}
public void setNum(int num) {
this.num = num;
this.simplificar();
}
public int getDen() {
return den;
}
public int getNum() {
return num;
}
//sumar fracciones
public Fraccion sumar(Fraccion f) {
Fraccion aux = new Fraccion();
aux.num = num * f.den + den * f.num;
aux.den = den * f.den;
aux.simplificar(); //se simplifica antes de devolverla
return aux;
}
//restar fracciones
public Fraccion restar(Fraccion f) {
Fraccion aux = new Fraccion();
aux.num = num * f.den - den * f.num;
aux.den = den * f.den;
aux.simplificar(); //se simplifica antes de devolverla
return aux;
}
//multiplicar fracciones
public Fraccion multiplicar(Fraccion f) {
Fraccion aux = new Fraccion();
aux.num = num * f.num;
aux.den = den * f.den;
aux.simplificar(); //se simplifica antes de devolverla
return aux;
}
//dividir fracciones
public Fraccion dividir(Fraccion f) {
Fraccion aux = new Fraccion();
aux.num = num * f.den;
aux.den = den * f.num;
aux.simplificar(); //se simplifica antes de devolverla
return aux;
}
//Clculo del mximo comn divisor por el algoritmo de Euclides
private int mcd() {
int u = Math.abs(num); //valor absoluto del numerador
int v = Math.abs(den); //valor absoluto del denominador
if (v == 0) {
return u;
}
int r;
while (v != 0) {
r = u % v;
u = v;
v = r;
}
return u;
}
private void simplificar() {
int n = mcd(); //se calcula el mcd de la fraccin
num = num / n;
den = den / n;
}
// Sobreescritura del mtodo toString heredeado de Object
@Override
public String toString() {
simplificar();
return num + "/" + den;
}
///////////////////////////////////////////////////////////////////////////////
//
//
Implementacin de los tres mtodos de la interface
//
//
///////////////////////////////////////////////////////////////////////////////
@Override
public boolean esMayorQue(Object a) {
if (a == null) {
return false;
}
if (!(a instanceof Fraccion)) {
return false;
}
Fraccion f = (Fraccion) a;
this.simplificar();
f.simplificar();
if ((num/(double)den) <= (f.num/(double)f.den)) {
return false;
}
return true;
}
@Override
public boolean esMenorQue(Object a) {
if (a == null) {
return false;
}
if (!(a instanceof Fraccion)) {
return false;
}
Fraccion f = (Fraccion) a;
this.simplificar();
f.simplificar();
if ((num/(double)den) >= (f.num/(double)f.den)) {
return false;
}
return true;
}
@Override
public boolean esIgualQue(Object a) {
if (a == null) {
return false;
}
if (!(a instanceof Fraccion)) {
return false;
}
Fraccion f = (Fraccion) a;
this.simplificar();
f.simplificar();
if (num != f.num) {
return false;
}
if (den != f.den) {
return false;
}
return true;
}
}