martes, 12 de julio de 2011

Ejercicio crear clase "BotellaLitro"

Crear la clase BotellaLitro, con varios atributos que indican su estado y diferentes funciones que permiten modificar su estado, consultar su estado y realizar otras operaciones.

public class BotellaLitro {
    public static final float CAPACIDAD = 1.0F;
    public static final int MEDIA = 6;
    public static final int NORMAL = 12;
    public static final int EXTRA = 24;
    private boolean estaCerrada;
    private float contenido;
    public static String unidad = "litros";
    public void abrir(){
        estaCerrada = false;
    }
    public void cerrar(){
        estaCerrada = true;
    }
    public float contenido(){
        return contenido;
    }
    public boolean estaCerrada(){
        return (estaCerrada);
    }
    @Override
    public String toString(){
        String aux;
        if (!estaCerrada)
            aux="abierta";
        else
            aux="cerrada";
        return ("La botella está "+aux+" y tiene "+contenido+" "+unidad);
    }
    public void vaciar(){
        if (!estaCerrada)
            contenido = 0;
    }
    public void llenar(){
        if (!estaCerrada)
            contenido = CAPACIDAD;
    }
    public float añadir(float cantidad){
        float sobra;
        if (!estaCerrada){
            sobra = cantidad - (CAPACIDAD - contenido);
            if (sobra >=0)
                contenido = CAPACIDAD;
            else{
                sobra = 0;
                contenido = contenido + cantidad;
            }
        }
        else
            sobra = cantidad;
        return (sobra);
    }
    public float extraer(float cantidad){
        float extraido;
        if (!estaCerrada){
            if (cantidad <= contenido){
                extraido = cantidad;
                contenido = contenido - extraido;
            }
            else{
                extraido = contenido;
                contenido = 0;
            }   
        }
        else
            extraido = 0F;
        return (extraido);
    }
    public static BotellaLitro[] cajaDeBotellas(int unidades){
        BotellaLitro[] caja = new BotellaLitro[unidades];
        int i;
        if (!(unidades == MEDIA | unidades == NORMAL | unidades == EXTRA))
            caja = null;
        else
            for(i=0; i<caja.length; i++){
                caja[i] = new BotellaLitro();
                caja[i].llenar();
                caja[i].cerrar();
            }
        return (caja);
    }
    public float diferencia(BotellaLitro bot2){
        float diferencia;
        if (contenido < bot2.contenido)
            diferencia = bot2.contenido - contenido;
        else
            diferencia = contenido - bot2.contenido;
        return diferencia;
        //OTRA FORMA:
        //return Math.abs(contenido - bot2.contenido);
    }
    public boolean equals(BotellaLitro bot2){
        boolean iguales;
        if (contenido == bot2.contenido)
            iguales = true;
        else
            iguales = false;
        return iguales;
        //OTRA FORMA:
        //return contenido == bot2.contenido;
    }
    public int compareTo(BotellaLitro bot2){
        int a;
        if (contenido < bot2.contenido)
            a = -1;
        else if (contenido == bot2.contenido)
            a = 0;
        else
            a = 1;
        return a;
    }
}

No hay comentarios:

Publicar un comentario