Unidad 4: Polimorfismo Ejercicio 4

Post on 13-Jun-2015

2.086 views 10 download

Transcript of Unidad 4: Polimorfismo Ejercicio 4

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.