Unidad 4: Polimorfismo“Ejercicio 4”
Pon tención al siguiente enunciado…En esta ocasión analizaremos un ejercicio
de Polimorfismo en combinación con Herencia.
Hola compañero, bienvenido a un ejercicio mas del tutorial de POO.
Pon tención al siguiente enunciado…En esta ocasión analizaremos un ejercicio
de Polimorfismo en combinación con Herencia.
Pon tención al siguiente enunciado…
Un alquiler se calcula multiplicando el número de días de ocupación (incluyendo los días inicial y final) por un módulo función de cada barco (obtenido simplemente multiplicando por 10 los metros de eslora) y por un valor fijo (2 en la actualidad). Sin embargo ahora se pretende diferenciar la información de algunos tipos de barcos:
• Número de mástiles para veleros• Potencia en CV para embarcaciones deportivas a motor• Potencia en CV y número de camarotes para yates de lujo• El módulo de los barcos de un tipo especial se obtiene como el
módulo normal más:• El número de mástiles para veleros• La potencia en CV para embarcaciones deportivas a motor• La potencia en CV mas el número de camarotes para yates de
lujo
Utilice herencia de forma apropiada y polimorfismo para elaborar los métodos que permitan calcular el alquiler de cualquier tipo de barco
Definiremos también un constructor para inicializar
los atributos.
Vamos a empezar definiendo la clase Barco. Esta tendrá
como atributos la matricula, el sloran y el año de
fabricación.
Definiremos también un constructor para inicializar
los atributos.
Vamos a empezar definiendo la clase Barco. Esta tendrá
como atributos la matricula, el sloran y el año de
fabricación.
//CLASE BARCOpublic class barco {int matricula;float sloran;int año_fab;
Definiremos también un constructor para inicializar
los atributos.
//CLASE BARCOpublic class barco {int matricula;float sloran;int año_fab;
Definiremos también un constructor para inicializar
los atributos.
//CLASE BARCOpublic class barco {int matricula;float sloran;int año_fab;public barco(int matricula,float sloran,int año_fab){this.matricula=matricula;this.sloran=sloran;this.año_fab=año_fab;}
De acuerdo al problema es necesario tener también un método que nos devuelva el
módulo.
De acuerdo al problema es necesario tener también un método que nos devuelva el
módulo.
//METODO “MODULO”public float modulo(){return (10*sloran);}}
La clase tendrá como atributos misiles, potencias,
camarotes, alquiler de un barco deportivo y de un yate.
Hemos terminado la clase Barco. Ahora crearemos la clase tipos_barco que hará
extends a la anterior.
La clase tendrá como atributos misiles, potencias,
camarotes, alquiler de un barco deportivo y de un yate.
Definimos por último el método que nos permitirá
saber que tipo de barco es de acuerdo al atributo
camarotes.
Y añadiremos también el constructor respectivo para
inicializar atributos.
Definimos por último el método que nos permitirá
saber que tipo de barco es de acuerdo al atributo
camarotes.
Añadiremos también el constructor respectivo para
inicializar atributos.
public tipos_barco(int mastiles,int potencia,int camarotes,int matricula,float sloran,int año_fab){super(matricula,sloran,año_fab);this.mastiles=mastiles;this.potencia=potencia;this.camarotes=camarotes;
Definimos por último el método que nos permitirá
saber que tipo de barco es de acuerdo al atributo
camarotes.
public tipos_barco(int mastiles,int potencia,int camarotes,int matricula,float sloran,int año_fab){super(matricula,sloran,año_fab);this.mastiles=mastiles;this.potencia=potencia;this.camarotes=camarotes;
Definimos por último el método que nos permitirá
saber que tipo de barco es de acuerdo al atributo
camarotes.
public tipos_barco(int mastiles,int potencia,int camarotes,int matricula,float sloran,int año_fab){super(matricula,sloran,año_fab);this.mastiles=mastiles;this.potencia=potencia;this.camarotes=camarotes;//CONDICIONES PARA SABER Q TIPO DE BARCO ESpublic float mostrar(){if (camarotes==0){return deportivo;}elsereturn yate;}}
Creamos el constructor respectivo.
Ahora creamos la clase Alquiler. Esta tendrá como
atributos el DNI, la fecha de inicio de ocupación, la fecha final y la posición de amarre.
Creamos el constructor respectivo.
Ahora creamos la clase Alquiler. Esta tendrá como
atributos el DNI, la fecha de inicio de ocupación, la fecha final y la posición de amarre.
//CLASE ALQUILERpublic class alquiler extends barco{String nombre_cliente;int DNI;int fecha_inicio;int fecha_final;float posicion_amarre;
Creamos el constructor respectivo.
//CLASE ALQUILERpublic class alquiler extends barco{String nombre_cliente;int DNI;int fecha_inicio;int fecha_final;float posicion_amarre;
Creamos el constructor respectivo.
//CLASE ALQUILERpublic class alquiler extends barco{String nombre_cliente;int DNI;int fecha_inicio;int fecha_final;float posicion_amarre;public alquiler(String nombre_cliente,int DNI,int fecha_inicio,int fecha_final,float posicion_amarre,int matricula,float sloran,int año_fab){super(matricula,sloran,año_fab);this.nombre_cliente=nombre_cliente;this.DNI=DNI;this.fecha_inicio=fecha_inicio;this.fecha_final=fecha_final;this.posicion_amarre=posicion_amarre;}
Asimismo, definimos el método que calculará el
alquiler.
Asimismo, definimos el método que calculará el
alquiler.
public float precio_alquiler(){if(fecha_final>fecha_inicio)return (((fecha_final-fecha_inicio)+1)*super.modulo());elsereturn 0000000000;}}
Solicitamos los datos necesarios por consola. Recuerda que debemos
importar la librería java.útil.Scanner para esto.
Listo ya tenemos las clases necesarias. Ahora generemos la clase principal para probar
el resto.
Solicitamos los datos necesarios por consola. Recuerda que debemos
importar la librería java.útil.Scanner para esto.
Solicitamos los datos necesarios por consola. Recuerda que debemos
importar la librería java.útil.Scanner para esto.
//CLASE PRINCIPALimport java.util.Scanner;public class Principal1 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String nom;int dni,fi,ff,matric,año_fabr,mastiles,potencia,camarotes;float pos_amarre,a,sloran;System.out.print("ingrese fecha incial : ");fi=sc.nextInt();System.out.print("ingrese fecha final : ");ff=sc.nextInt();
System.out.print("ingrese esloran en metros : ");sloran=sc.nextFloat();System.out.print("ingrese nombre : ");nom=sc.nextLine();System.out.print("ingrese dni : ");dni=sc.nextInt();System.out.print("ingrese año de fabric : ");año_fabr=sc.nextInt();System.out.print("ingrese numero mastiles : ");
mastiles=sc.nextInt();System.out.print("ingrese potencia : ");potencia=sc.nextInt();System.out.print("ingrese numero de camarotes : ");camarotes=sc.nextInt();System.out.print("ingrese posicion de amarre : ");pos_amarre=sc.nextFloat();System.out.print("ingrese matricula : ");matric=sc.nextInt();
De acuerdo al número de mástiles mostramos el precio
del alquiler.
alquiler al=new alquiler(nom,dni,fi,ff,pos_amarre,matric,sloran,año_fabr);tipos_barco tp=new tipos_barco(mastiles,potencia,camarotes,matric,sloran,año_fabr);
De acuerdo al número de mástiles mostramos el precio
del alquiler.
alquiler al=new alquiler(nom,dni,fi,ff,pos_amarre,matric,sloran,año_fabr);tipos_barco tp=new tipos_barco(mastiles,potencia,camarotes,matric,sloran,año_fabr);if (mastiles>0){a=((al.precio_alquiler())*(tp.mostrar()));System.out.print("el precio del alquiler es : "+a);}}}
Utilizando JCreator ejecutaremos nuestro main y
obtendremos un resultado como el siguiente…
Nos vemos en el siguiente ejercicio. Hasta pronto.
Bueno compañero, esto fue todo por ahora, espero que la solución de este ejercicio
te haya sido clara y provechosa.
Nos vemos en el siguiente ejercicio. Hasta pronto.