PROGRAMACION Clases Figura, Rectángulo y Triángulo. Ejercicios 12 SHEILA NIETO UREÑA CLASES ABSTRACTAS 1. Crear la clase abstracta Producto con los atributos precioVenta y costeFab de tipo doble y nomProd de tipo cadena. También incluirá el método abstracto impDatos. Esta clase se va a implementar con las clases Libro y DVD. 2. Define una clase abstracta Cuenta con los siguientes atributos: numerocuenta: entero largo. saldo: double. cliente: atributo de la clase Persona (que tiene nombre y apellidos, y NIF). Constructor parametrizado que recibe un cliente y un número de cuenta. Accedentes para los tres atributos (getters). Ingresar (double): permitirá ingresar una cantidad en la cuenta. Abstract retirar (double): permitirá sacar una cantidad de la cuenta (si hay saldo). No se implementa, depende del tipo de cuenta. actualizarSaldo(): actualizará el saldo de la cuenta, pero cada cuenta lo hace de una forma diferente. Con los siguientes métodos: Define las subclases de Cuenta que se describen a continuación: CuentaCorriente: Cuenta normal con un interés fijo del 1.5%. Incluir constructor parametrizado y método toString(). CuentaAhorro: Esta cuenta tiene como atributos el interés variable a lo largo del año y un saldo mínimo necesario. Al retirar dinero hay que tener en cuenta que no se sobrepase el saldo mínimo. Incluir constructor parametrizado, método toString() y método para cambiar el interés. Crea un programa que cree varias cuentas y pruebe sus características. 1 PROGRAMACION Ejercicios 12 SHEILA NIETO UREÑA ejercicios12 claseAbstracta .................................................................................................................................................... 3 Figura ..............................................................................................................................................................3 Rectangulo ...................................................................................................................................................... 3 Triangulo .........................................................................................................................................................3 AppFigura ....................................................................................................................................................... 3 ejer1 .................................................................................................................................................................... 4 Producto .........................................................................................................................................................4 Libro ................................................................................................................................................................ 4 DVD ................................................................................................................................................................. 4 AppProducto ................................................................................................................................................... 4 ejer2 .................................................................................................................................................................... 5 Persona ........................................................................................................................................................... 5 Cuenta ............................................................................................................................................................ 5 CuentaCorriente .............................................................................................................................................6 CuentaAhorro ................................................................................................................................................. 7 AppCuenta ...................................................................................................................................................... 8 2 PROGRAMACION claseAbstracta Ejercicios 12 Figura package claseAbstracta; public abstract class Figura { double valor1; double valor2; public Figura(double valor1, double valor2){ this.valor1=valor1; this.valor2=valor2; } public abstract double area(); } Rectangulo package claseAbstracta; public class Rectangulo extends Figura{ public Rectangulo(double v1,double v2){ super(v1,v2); } public double area(){ double area=valor1*valor2; return area; } } Triangulo package claseAbstracta; public class Triangulo extends Figura { public Triangulo(double v1,double v2){ super(v1,v2); } public double area(){ double area=valor1*valor2/2; return area; } } AppFigura package claseAbstracta; public class AppFigura { public static void main(String[] args) { //Figura f=new Rectangulo(2.3,5.3); Rectangulo r=new Rectangulo(2.3,5.3); System.out.println("Area del rectangulo: "+r.area()); } } Triangulo t=new Triangulo(3.4,4.2); System.out.println("\nArea del triangulo: "+t.area()); 3 SHEILA NIETO UREÑA PROGRAMACION ejer1 Ejercicios 12 SHEILA NIETO UREÑA Producto package ejer1; public abstract class Producto { public double precioVenta, costeFab; String nomProd; } public Producto(double precio,double coste,String nom){ precioVenta=precio; costeFab=coste; nomProd=nom; } public abstract String impDatos(); Libro package ejer1; import java.text.DecimalFormat; public class Libro extends Producto{ DecimalFormat df=new DecimalFormat("#.00"); public Libro(double p, double c, String nom){ super(p,c,nom); } public String impDatos(){ return "Titulo: "+nomProd+"\nPrecio: "+df.format(precioVenta)+" euros\nCoste: "+df.format(costeFab)+" euros"; } } DVD package ejer1; import java.text.DecimalFormat; public class DVD extends Producto{ DecimalFormat df=new DecimalFormat("#.00"); public DVD(double p, double c, String nom){ super(p,c,nom); } public String impDatos(){ return "Titulo: "+nomProd+"\nPrecio: "+df.format(precioVenta)+" euros\nCoste: "+df.format(costeFab)+" euros"; } } AppProducto package ejer1; public class AppProducto { public static void main(String[] args) { Libro l=new Libro(15.5,13.33,"Complice"); System.out.println(l.impDatos()); } } DVD d=new DVD(10,5.62,"Avatar"); System.out.println(d.impDatos()); 4 PROGRAMACION ejer2 Ejercicios 12 SHEILA NIETO UREÑA Persona package ejer2; public class Persona { protected String nombre; protected String apellidos; protected String nif; } public Persona(){ nombre="Pepe"; apellidos="Gotera"; nif="26314852K"; } public Persona(String nombre, String apellidos, String nif){ this.nombre=nombre; this.apellidos=apellidos; this.nif=nif; } public String getNombre() { return nombre; } public String getApellidos() { return apellidos; } public String getNif() { return nif; } public String toString() { return "CLIENTE: "+nombre+" "+apellidos+ "\nNIF: "+nif; } Cuenta package ejer2; import java.text.DecimalFormat; public abstract class Cuenta { DecimalFormat df=new DecimalFormat("#.00"); protected long numCuenta; protected double saldo; Persona cliente; public Cuenta(){ numCuenta=1931954687; saldo=950.35; cliente=new Persona(); } public Cuenta(long numCuenta,double saldo,Persona cliente){ this.numCuenta=numCuenta; this.saldo=saldo; this.cliente=cliente; } public void ingresar(double imp){ saldo=saldo+imp; System.out.println("Importe ingresado: "+df.format(imp)+" euros"); } 5 PROGRAMACION Ejercicios 12 SHEILA NIETO UREÑA public abstract void retirar(double imp); } public void actualizarSaldo(){ System.out.println("Saldo actual: "+df.format(saldo)+" euros\n"); } public void verSaldoCC(){ int t=1; saldo+=saldo*1.5/100*t; //saldo=saldo+saldo*1.5/100*t; System.out.println("Saldo actual: "+df.format(saldo)+" euros\n"); } public void verSaldoCA(double vble){ int t=1; saldo+=saldo*vble/100*t; System.out.println("Saldo actual: "+df.format(saldo)+" euros\n"); } public long getNumCuenta() { return numCuenta; } public double getSaldo() { return saldo; } public Persona getCliente() { return cliente; } public void setSaldo(double saldo) { this.saldo = saldo; } CuentaCorriente package ejer2; import java.text.DecimalFormat; public class CuentaCorriente extends Cuenta{ DecimalFormat df=new DecimalFormat("#.00"); private final double FIJO=1.5; public CuentaCorriente(){ super(); } public CuentaCorriente(long numCuenta,double saldo,Persona cliente){ super(numCuenta,saldo,cliente); } public void retirar(double imp){ if(saldo>=imp){ saldo=saldo-imp; System.out.println("Importe retirado: "+df.format(imp)+" euros"); }else System.out.println("No se puede realizar la operacion"); } public String toString() { return "Nº Cuenta: "+numCuenta+ "\nSaldo: "+df.format(saldo)+" euros\nInteres fijo: "+FIJO+"%"; } } 6 PROGRAMACION Ejercicios 12 SHEILA NIETO UREÑA CuentaAhorro package ejer2; import java.text.DecimalFormat; public class CuentaAhorro extends Cuenta{ DecimalFormat df=new DecimalFormat("#.00"); private double variable; private double salMin; public CuentaAhorro(){ super(); } public CuentaAhorro(long numCuenta,double saldo,Persona cliente,double variable,double salMin){ super(numCuenta,saldo,cliente); this.variable=variable; this.salMin=salMin; } public void retirar(double imp){ double aux=0; aux=saldo-imp; if(aux>=salMin){ saldo=saldo-imp; System.out.println("Importe retirado: "+df.format(imp)+" euros"); }else System.out.println("Importe a retirar: "+df.format(imp)+" euros\nNo se puede realizar la operacion"); } public void cambiarInteres(double vble){ // = setVariable System.out.println("Nuevo interes: "+vble); } // public void setVariable(double variable) { // this.variable = variable; // } public String toString() { return "Nº Cuenta: "+numCuenta+ "\nSaldo: "+df.format(saldo)+" euros\nInteres variable anual: "+ variable+"%\nSaldo minimo exigido: "+df.format(salMin)+" euros"; } public double getVariable() { return variable; } } 7 PROGRAMACION Ejercicios 12 SHEILA NIETO UREÑA AppCuenta package ejer2; public class AppCuenta { public static void main(String[]args){ CuentaCorriente cc=new CuentaCorriente(); Persona p=new Persona(); System.out.println(p.toString()); System.out.println(cc.toString()); cc.retirar(600); cc.actualizarSaldo(); cc.verSaldoCC(); Persona p1=new Persona("Ana","Conda","7395456P"); System.out.println(p1.toString()); CuentaAhorro ca=new CuentaAhorro(1564848484,1230.48,p1,0.3,100); System.out.println(ca.toString()); ca.cambiarInteres(0.5); ca.retirar(1200); ca.actualizarSaldo(); ca.retirar(600); ca.actualizarSaldo(); ca.ingresar(400); ca.actualizarSaldo(); ca.verSaldoCA(ca.getVariable()); } } 8