You are on page 1of 5

JAVA CLASES ABSTRACTAS LABORATORIO DEFINICION Una clase abstracta es aquella que define la cabecera de sus mtodos en la clase

base y se implementan en la clase derivada o hija. La ventaja es reutilizar el cdigo y facilitar las implementaciones de clases usando el polimorfismo. Toda clase abstracta se define usando la clausula abstract y debe tener por lo menos un mtodo abstracto. LABORATORIO 1. 2. 3. 4. Crear una carpeta con el nombre Clase Abstracta en el escritorio. Crear un proyecto con el nombre PJX_Clase_Abstracta Crear un paquete con el nombre PCK_ClaseAbstracta Crear una clase llamada Vivienda, debe ser abstracta con atributos rea, precio, adicional, total y si tiene o no cochera. Adems debe tener un mtodo abstracto llamado calcularAdicional, y otros mtodos tales como calcularPrecio, calcularTotal e Imprimir. El precio est en funcin al rea considerando la siguiente tabla: rea Hasta 100 Hasta 200 En otro caso Precio S/. 200 270 310

Para calcular el total se considera el precio ms el adicional. En este caso con las indicaciones dadas implementar dicha clase con el siguiente cdigo:
package PCK_ClaseAbstracta; import java.io.PrintWriter; public abstract class Vivienda { private double area; private double precio; private double adicional; private double total; private char amocoche; //declarar un metodo abstracto para calcular el adicional public abstract void calcularAdicional(); //Definir el mtodo para calcular el Precio public void calcularPrecio(){ if(getArea()<=100) setPrecio(200); else if (getArea()<=200) setPrecio(270); else setPrecio(310); } //Definir el mtodo para calcular el total public void calcularTotal(){ setTotal(getPrecio() + getAdicional()); } //Definir el mtodo para imprimir public void imprimir(){ PrintWriter p= new PrintWriter (System.out,true); p.println("Precio : "+getPrecio()); p.println("Area : "+getArea()); p.println("Adicional : "+getAdicional()); }

Ing. Dante Garca

Pgina 1

JAVA CLASES ABSTRACTAS LABORATORIO


public double getArea() { return area; } public void setArea(double area) { this.area = area; } public double getPrecio() { return precio; } public void setPrecio(double precio) { this.precio = precio; } public double getAdicional() { return adicional; } public void setAdicional(double adicional) { this.adicional = adicional; } public double getTotal() { return total; } public void setTotal(double total) { this.total = total; } public char getAmocoche() { return amocoche; } public void setAmocoche(char amocoche) { this.amocoche = amocoche; } }

5. Crear una clase llamada Casa heredada de la clase Vivienda, esta clase debe tener dos atributos llamados ubicacin e incremento. Para calcular el adicional se considera si tiene o no cochera, si tiene cochera se aplica el 30% del precio. El incremento est en funcin a la ubicacin segn la siguiente tabla: Ubicacin Incremento Avenida 60% del Precio Jirn 50% del Precio Pasaje 30% del Precio El precio se calcula considerando su precio base ms el incremento, adems debe tener un mtodo llamado imprimir para mostrar los datos resultantes. En este caso con las indicaciones dadas implementar dicha clase con el siguiente cdigo:
package PCK_ClaseAbstracta; import java.io.PrintWriter; public class Casa extends Vivienda { private char ubicacion; private double incremento; //Implementar el mtodo abstracto calcularAdicional public void calcularAdicional(){ if (getAmocoche()=='S')

Ing. Dante Garca

Pgina 2

JAVA CLASES ABSTRACTAS LABORATORIO


setAdicional(0.30*getPrecio()); } //Implementar el mtodo calcularIncremento public void calcularIncremento(){ super.calcularPrecio(); switch(getUbicacion()){ //Cuando es avenida case 'A':setIncremento(0.60 * getPrecio());break; //Cuando es Jirn case 'J':setIncremento(0.50 * getPrecio());break; //Cuando es pasaje case 'P':setIncremento(0.30 * getPrecio());break; } } //Implementar mtodo calcular precio @Override public void calcularPrecio(){ setPrecio(getPrecio()+getIncremento()); } //Implementar el mtodo imprimir @Override public void imprimir(){ super.imprimir(); PrintWriter p= new PrintWriter (System.out,true); p.println("Est Amoblado : " + getAmocoche()); p.println("Ubicacin : " + getUbicacion()); p.println("Incremento : " + getIncremento()); p.println("Total : " + getTotal()); } public char getUbicacion() { return ubicacion; } public void setUbicacion(char ubicacion) { this.ubicacion = ubicacion; } public double getIncremento() { return incremento; } public void setIncremento(double incremento) { this.incremento = incremento; } }

6. Crear una clase llamada Departamento heredada de la clase Vivienda, esta clase debe tener dos atributos llamados piso y descuento. Para calcular el adicional se considera si tiene o no cochera, si tiene cochera se aplica S/.35.00. Si el departamento tiene ms de 3 pisos el descuento es el 3% del precio. Adems la clase debe tener un mtodo llamado calcularTotal donde se considera el total base menos el descuento. Adems debe tener un mtodo llamado imprimir para mostrar los datos resultantes. En este caso con las indicaciones dadas implementar dicha clase con el siguiente cdigo:
package PCK_ClaseAbstracta; //Heredar la clase Departamento de Vivienda import java.io.PrintWriter; public class Departamento extends Vivienda { private int piso; private double descuento; //Implementar el mtodo abstracto calcularAdicional public void calcularAdicional(){ if(getAmocoche()=='S') setAdicional(35.00);

Ing. Dante Garca

Pgina 3

JAVA CLASES ABSTRACTAS LABORATORIO


} //Implementar el mtodo calcularDescuento public void calcularDescuento(){ if(piso>3) descuento=0.03*getPrecio(); } //Implementar el mtodo calcularTotal @Override public void calcularTotal(){ super.calcularTotal(); setTotal(getTotal()-descuento); } //Implementar el mtodo imprimir @Override public void imprimir(){ super.imprimir(); PrintWriter p= new PrintWriter (System.out,true); p.println("Tiene Cochera : "+ getAmocoche()); p.println("Piso : "+ piso); p.println("Descuento : "+ descuento); p.println("Total : "+ getTotal()); } public int getPiso() { return piso; } public void setPiso(int piso) { this.piso = piso; } public double getDescuento() { return descuento; } public void setDescuento(double descuento) { this.descuento = descuento; } }

7. Crear una clase ejecutable llamada AplicacionInmobiliaria con el siguiente cdigo para usar las clase implementadas:
package PCK_ClaseAbstracta; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; public class AplicacionInmobiliaria { public static void main(String[] args) throws IOException { //Preparar codigo para el ingreso de datos InputStreamReader x= new InputStreamReader(System.in); BufferedReader y= new BufferedReader(x); PrintWriter p= new PrintWriter (System.out,true); p.println("******************** Casa ********************"); //Crear la instancia pasa casa Casa c=new Casa(); p.println("Area :"); c.setArea(Double.parseDouble(y.readLine())); p.println("Ingresar Ubicacin (A)venida, (J)irn, (P)asaje : "); c.setUbicacion(y.readLine().charAt(0)); p.println("Est Amoblada (S/N) : ?"); c.setAmocoche(y.readLine().charAt(0)); //Calcular el incremento c.calcularIncremento(); //Calcular el Precio c.calcularPrecio();

Ing. Dante Garca

Pgina 4

JAVA CLASES ABSTRACTAS LABORATORIO


//Calcular el Adicional c.calcularAdicional(); //Calcular el total c.calcularTotal(); //Imprimir resultados c.imprimir(); p.println("\n********************Departamento********************"); //Crear la instancia pasa Departamento Departamento d = new Departamento(); p.println("Area :"); d.setArea(Double.parseDouble(y.readLine())); p.println("Tiene Cochera (S/N) : ?"); d.setAmocoche(y.readLine().charAt(0)); p.println("Ingresar Piso : "); d.setPiso(Integer.parseInt(y.readLine())); //Calcular el Precio d.calcularPrecio(); //Calcular el Adicional d.calcularAdicional(); //Calcular el Descuento d.calcularDescuento(); //Calcular el Total d.calcularTotal(); //Imprimir Datos d.imprimir(); } }

Ing. Dante Garca

Pgina 5

You might also like