si tienes alguna duda (java)

Upload: perezhros

Post on 26-Feb-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    1/39

    1) Haz una clase llamada Persona que siga las siguientes condiciones: Sus atributos son: nombre, edad, DNI, sexo (H hombre, M mujer) , peso y altura. No

    queremos que se accedan directamente a ellos. Piensa que modificador de acceso es el m sadecuado, tambi!n su ti"o. Si quieres a#adir alg$n atributo "uedes hacerlo.

    Por defecto, todos los atributos menos el %N& ser n 'alores "or defecto seg$n su ti"o (

    n$meros, cadena 'ac a "ara String, etc.). Se*o sera hombre "or defecto, usa una constante "araello.

    Se im"lantaran 'arios constructores:

    o +n constructor "or defecto.

    o +n constructor con el nombre, edad se*o, el resto "or defecto.

    o +n constructor con todos los atributos como "ar metro.

    -os m!todos que se im"lementaran son:

    o calcularIMC() : calculara si la "ersona esta en su "eso ideal ("eso en g/(altura01 enm)), de'uel'e un 23 si esta "or debajo de su "eso ideal, un si esta en su "eso ideal un 3 si

    tiene sobre"eso .4e recomiendo que uses constantes "ara de'ol'er estos 'alores.o esMayorDeEdad() : indica si es ma or de edad, de'uel'e un booleano.o comprobarSexo(char sexo) : com"rueba que el se*o introducido es correcto. Si no es

    correcto, sera H. No sera 'isible al e*terior.o toStr n!() : de'uel'e toda la informaci5n del objeto.o !eneraDNI() : genera un numero aleatorio de 6 cifras, genera a "artir de este su

    n$mero su letra corres"ondiente. 7ste m!todo sera in'ocado cuando se constru a el objeto.Puedes di'idir el m!todo "ara que te sea m s f cil. No ser 'isible al e*terior.

    o M!todos set de cada "ar metro, e*ce"to de %N&.

    8hora, crea una clase ejecutable que haga lo siguiente:

    Pide "or teclado el nombre, la edad, se*o, "eso altura. 9rea objetos de la clase anterior, el "rimer objeto obtendr las anteriores 'ariables "edidas

    "or teclado, el segundo objeto obtendr todos los anteriores menos el "eso la altura el $ltimo "or defecto, "ara este $ltimo utiliza los m!todos set "ara darle a los atributos un 'alor.

    Para cada objeto, deber com"robar si esta en su "eso ideal, tiene sobre"eso o "or debajo de

    su "eso ideal con un mensaje.

    &ndicar "ara cada objeto si es ma or de edad.

    Por $ltimo, mostrar la informaci5n de cada objeto.

    Puedes usar m!todos en la clase ejecutable, "ara que os sea mas f cil.

    7sconder ;

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    2/39

    * @author Fernando * @version 1.0 */public class Persona {

    //Constantes

    /** * Se o por defecto */private final static char S!"#$%!F&'(')

    /** * !l peso de la persona esta por deba o del peso ideal */public final int +,F- P!S#& 1)

    /** * !l peso de la persona esta en su peso ideal */public final int P!S#$+%! &0)

    /** * !l peso de la persona esta por encima del peso ideal */private final int S# -!P!S#&1)

    // tributos

    /** * ,ombre de la persona */private Strin2 nombre)

    /** * !dad de la persona */private int edad)

    /** * %,+ de la persona3 se 2enera al construir el ob eto */private Strin2 %,+)

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    3/39

    /** * Se o de la persona3 ( hombre 4 mu er */private char se o)

    /** * Peso de la persona */private double peso)

    /** * ltura de la persona */private double altura)

    //45todos privados

    private void comprobarSe o6char se o7{

    //Si el se o no es una ( o una 43 por defecto es (if6se o8&'(' 99 se o8&'4'7{

    this.se o&'('):else{

    this.se o&se o):

    :

    private void 2enerar%ni67{final int divisor&;mero de ? di2itosint num%,+&66int74ath.floor64ath.random67*6100000000

    100000007 1000000077)int res&num%,+ 6num%,+/divisor*divisor7)

    //Calculamos la letra del %,+char letra%,+&2enera etra%,+6res7)

    //Pasamos el %,+ a Strin2%,+&+nte2er.toStrin26num%,+7 letra%,+)

    :

    private char 2enera etra%,+6int res7{char letrasAB&{' '3 '-'3 'D'3 ' '3 '='3 '4'3 'E'3

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    4/39

    'F'3 'P'3 '%'3 '"'3 ' '3 ','3 ' '3 'G'3 'S'3 'H'3 'I'3 '('3 ' '3 'C'3 'J'3 '!':)

    return letrasAresB):

    //45todos publicos

    /** * 4odifica el nombre de la persona * @param nombre a cambiar */public void set,ombre6Strin2 nombre7 {

    this.nombre & nombre):

    /** * 4odifica la edad de la persona * @param edad a cambiar */public void set!dad6int edad7 {

    this.edad & edad):

    /** * 4odifica el se o de la persona3 comprueba Kue es correcto

    * @param se o a cambiar */public void setSe o6char se o7 {

    this.se o & se o):

    /** * 4odifica el peso de la persona * @param peso a cambiar */public void setPeso6double peso7 {

    this.peso & peso):

    /** * 4odifica la altura de la persona * @param altura a cambiar */

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    5/39

    public void set ltura6double altura7 {this.altura & altura)

    :

    /**

    * Calcula el indice de masa corporal * @return codi2o numerico *LulMLliM 1N la persona esta por deba o de su peso idealL/liM

    *LliM0N la persona esta en su peso idealL/liM *LliM1N la persona esta por encima de su peso idealL/liML/ulM

    */public int calcular+4C67{

    //Calculamos el peso de la personadouble peso ctual&peso/64ath.poO6altura3 ;77)//Se2un el peso3 devuelve un codi2oif 6peso ctualM&;0 99 peso ctualL&; 7{

    return P!S#$+%! ):else if6peso ctualL;07{

    return +,F- P!S#) :else{ return S# -!P!S#) : : /** * +ndica si la persona es maQor de edad * @return true si es maQor de edad Q false es menor de edad

    */ public boolean es4aQor%e!dad67{ boolean maQor&false) if 6edadM&1?7{

    maQor&true):return maQor)

    :

    /** * %evuelve informacion del ob eto * @return cadena con toda la informacion */public Strin2 toStrin267{

    Strin2 se o&RR)if6this.se o&&'('7{

    se o&RhombreR):else{

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    6/39

    se o&Rmu erR):return R+nformacion de la personaNnR

    R,ombreN R nombre RnR RSe oN R se o RnR

    R!dadN R edad R a osnR R%,+N R %,+ RnR RPesoN R peso R T2nR R lturaN R altura R metrosnR)

    :

    /** * Constructor por defecto */public Persona67{

    this6RR3 03 S!"#$%!F3 03 07):

    /** * Constructor con < parametroe * @param nombre de la persona * @param edad de la persona * @param se o de la persona */public Persona6Strin2 nombre3 int edad3 char se o7{

    this6nombre3 edad3 se o3 03 07)

    :

    /** * Constructor con parametros * @param nombre de la persona * @param edad de la persona * @param se o de la persona * @param peso de la persona * @param altura de la persona */public Persona6Strin2 nombre3 int edad3 char se o3 double peso3

    double altura7{this.nombre&nombre)this.edad&edad)this.peso&peso)this.altura&altura)2enerar%ni67)comprobarSe o6se o7)

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    7/39

    ::

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    8/39

    //Wsamos metodos para realiXar la misma accion para cadaob eto

    SQstem.out.println6RPersona1R7)4uestra4ensa ePeso6persona17)4uestra4aQor%e!dad6persona17)

    4uestra+nformacion6persona17)

    SQstem.out.println6RPersona;R7)4uestra4ensa ePeso6persona;7)4uestra4aQor%e!dad6persona;7)4uestra+nformacion6persona;7)

    SQstem.out.println6RPersona

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    9/39

    SQstem.out.println6p7):

    :") Haz una clase llamada Pass#ord que siga las siguientes condiciones: =ue tenga los atributos lon! tud contrase$a . Por defecto, la longitud sera de 6. -os constructores ser n los siguiente:

    o +n constructor "or defecto.

    +n constructor con la longitud que nosotros le "asemos. >enerara una contrase#a aleatoria conesa longitud.

    -os m!todos que im"lementa ser n:

    o es%uerte() : de'uel'e un booleano si es fuerte o no, "ara que sea fuerte debe tenermas de 1 ma $sculas, mas de 3 min$scula mas de ? n$meros.

    o !enerarPass#ord() : genera la contrase#a del objeto con la longitud que tenga.o M!todo get "ara contrase#a longitud.

    o M!todo set "ara longitud.

    8hora, crea una clase clase ejecutable:

    9rea un arra de Pass@ords con el tama#o que tu le indiques "or teclado. 9rea un bucle que cree un objeto "ara cada "osici5n del arra .

    &ndica tambi!n "or teclado la longitud de los Pass@ords (antes de bucle).

    9rea otro arra de booleanos donde se almacene si el "ass@ord del arra de Pass@ord es o nofuerte (usa el bucle anterior).

    8l final, muestra la contrase#a si es o no fuerte (usa el bucle anterior). +sa este sim"leformato:

    contrase#a3 'alorAbooleano3

    contrase#a1 'alorAbololeano1

    B

    7sconder ;

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    10/39

    public class PassOord {

    //Constantes

    /**

    * on2itud por defecto */private final static int #,=$%!F&?)

    // tributos

    /** * on2itud de la contrase a */private int lon2itud)/** * caracteres de la contrase a */private Strin2 contrase a)

    //4etodos publicos

    /** * %evuelve la lon2itud * @return lon2itud de la contrase a */

    public int 2et on2itud67 {return lon2itud)

    :

    /** * 4odifica la lon2itud de la contrase a * @param lon2itud a cambiar */public void set on2itud6int lon2itud7 {

    this.lon2itud & lon2itud):

    /** * %evuelve la contrase a * @return contrase a */public Strin2 2etContrase a67 {

    return contrase a)

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    11/39

    :

    /** * =enera una contrase a al aXar con la lon2itud Kue este definida * @return contrase a

    */public Strin2 2eneraPassOord 67{

    Strin2 passOord&RR)for 6int i&0)iLlon2itud)i 7{

    //=eneramos un numero aleatorio3 se2un este eli2esi a adir una minuscula3 maQuscula o numero

    int eleccion&66int74ath.floor64ath.random67*< 177)

    if 6eleccion&&17{char minusculas&6char7

    66int74ath.floor64ath.random67*61;< VY7 VY77)passOord &minusculas)

    :else{if6eleccion&&;7{

    char maQusculas&6char766int74ath.floor64ath.random67*6V1 U 7 U 77)

    passOord &maQusculas):else{

    char numeros&6char766int74ath.floor64ath.random67*6 ? Z?7 Z?77)

    passOord &numeros)

    ::

    :return passOord)

    :

    /** * Comprueba la fortaleXa de la contrase a * @return */public boolean esFuerte67{

    int cuentanumeros&0)int cuentaminusculas&0)int cuentamaQusculas&0)//Iamos caracter a caracter Q comprobamos Kue tipo de

    caracter esfor 6int i&0)iLcontrase a.len2th67)i 7{

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    12/39

    if 6contrase a.char t6i7M&VY 99contrase a.char t6i7L&1;;7{ cuentaminusculas &1) :else{ if 6contrase a.char t6i7M&U 99

    contrase a.char t6i7L&V07{ cuentamaQusculas &1) :else{ cuentanumeros &1) : : : //Si la constrase a tiene mas de numeros3 mas de 1minuscula Q mas de ; maQusculas if 6cuentanumerosM& 99 cuentaminusculasM&1 99cuentamaQusculasM&;7{

    return true):else{

    return false):

    :

    //Constructores

    /** * Crea una contrase a al aXar

    */public PassOord 67{

    this6 #,=$%!F7):

    /** * a contrase a sera la pasada por parametro * @param passOord */public PassOord 6int lon2itud7{

    this.lon2itud&lon2itud)contrase a&2eneraPassOord67)

    ::

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    13/39

    public static void main6Strin2AB ar2s7 {

    //+ntroducimos el tama o del arraQ Q la lon2itud delpassOord

    Strin2 te to& #ptionPane.shoO+nput%ialo26R+ntroduce untama o para el arraQR7)

    int tamanio&+nte2er.parse+nt6te to7)

    te to& #ptionPane.shoO+nput%ialo26R+ntroduce la lon2ituddel passOordR7)

    int lon2itud&+nte2er.parse+nt6te to7)

    //Creamos los arraQsPassOord listaPassOordAB&neO PassOordAtamanioB)boolean fortaleXaPassOordAB&neO booleanAtamanioB)

    //Creamos ob etos3 indicamos si es fuerte Q mostramos lacontrase a Q su fortaleXa.

    for6int i&0)iLlistaPassOord.len2th)i 7{listaPassOordAiB&neO PassOord6lon2itud7)fortaleXaPassOordAiB&listaPassOordAiB.esFuerte67)

    SQstem.out.println6listaPassOordAiB.2etContrase a67 RR fortaleXaPassOordAiB7)

    :

    :

    :&) 9rearemos una su"eclase llamada Electrodomest co con las siguientes caracter sticas: Sus atributos son prec o base, color, consumo ener!'t co (letras entre 8 C) peso . &ndica

    que se "odr n heredar. Por defecto, el color sera blanco, el consumo energ!tico sera C, el "recioDase es de 3 E el

    "eso de ? g. +sa constantes "ara ello.

    -os colores dis"onibles son blanco, negro, rojo, azul gris. No im"orta si el nombre esta en

    ma $sculas o en min$sculas.

    -os constructores que se im"lementaran ser no +n constructor "or defecto.

    o +n constructor con el "recio "eso. 7l resto "or defecto.

    o +n constructor con todos los atributos.

    -os m!todos que im"lementara ser n:

    o M!todos get de todos los atributos.

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    14/39

    o comprobarConsumoEner!et co(char letra) : com"rueba que la letra es correcta, sinoes correcta usara la letra "or defecto. Se in'ocara al crear el objeto no sera 'isible.

    o comprobarColor(Str n! color) : com"rueba que el color es correcto, sino lo es usa elcolor "or defecto. Se in'ocara al crear el objeto no sera 'isible.

    o prec o% nal() : seg$n el consumo energ!tico, aumentara su "recio, seg$n su tama#o,tambi!n. 7sta es la lista de "recios:

    etra Prec o

    8 3 E

    D 6 E

    9 F E

    % ? E

    7 E

    C 3 E

    ama$o Prec o

    7ntre 3G g 3 E

    7ntre 1 G g ? E

    7ntre ? IG g 6 E

    Ma or que 6 g 3 E

    9rearemos una subclase llamada a*adora con las siguientes caracter sticas: Su atributo es car!a , ademas de los atributos heredados. Por defecto, la carga es de ? g. +sa una constante "ara ello.

    -os constructores que se im"lementaran ser n:o +n constructor "or defecto.

    o +n constructor con el "recio "eso. 7l resto "or defecto.

    o +n constructor con la carga el resto de atributos heredados. Jecuerda que debesllamar al constructor de la clase "adre.

    -os m!todos que se im"lementara ser n:

    o M!todo get de carga.

    o prec o% nal() :, si tiene una carga ma or de g, aumentara el "recio ? E, sino es asno se incrementara el "recio. -lama al m!todo "adre a#ade el c5digo necesario. Jecuerda

    que las condiciones que hemos 'isto en la clase 7lectrodomestico tambi!n deben afectar al"recio.

    9rearemos una subclase llamada ele* s on con las siguientes caracter sticas: Sus atributos son resoluc +n (en "ulgadas) s nton ador D (booleano), ademas de los

    atributos heredados. Por defecto, la resoluci5n sera de 1 "ulgadas el sintonizador sera false.

    -os constructores que se im"lementaran ser n:

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    15/39

    o +n constructor "or defecto.

    o +n constructor con el "recio "eso. 7l resto "or defecto.

    o +n constructor con la resoluci5n, sintonizador 4%4 el resto de atributos heredados.Jecuerda que debes llamar al constructor de la clase "adre.

    -os m!todos que se im"lementara ser n:

    o M!todo get de resoluci5n sintonizador 4%4.

    o prec o% nal() : si tiene una resoluci5n ma or de "ulgadas, se incrementara el "recioun K si tiene un sintonizador 4%4 incor"orado, aumentara ? E. Jecuerda que lascondiciones que hemos 'isto en la clase 7lectrodomestico tambi!n deben afectar al "recio.

    8hora crea una clase ejecutable que realice lo siguiente:

    9rea un arra de 7lectrodomesticos de 3 "osiciones. 8signa a cada "osici5n un objeto de las clases anteriores con los 'alores que desees.

    8hora, recorre este arra ejecuta el m!todo "recioCinal().

    %eber s mostrar el "recio de cada clase, es decir, el "recio de todas las tele'isiones "or un

    lado, el de las la'adoras "or otro la suma de los 7lectrodomesticos ("uedes crear objetos7lectrodomestico, "ero recuerda que 4ele'ision -a'adora tambi!n son electrodom!sticos).Jecuerda el uso o"erador instanceof.

    Por ejem"lo, si tenemos un 7lectrodomestico con un "recio final de , una la'adora de 1 una

    tele'isi5n de ? , el resultado final sera de 3 ( L1 L? ) "ara electrodom!sticos, 1 "ara

    la'adora ? "ara tele'isi5n.

    7sconder ;

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    16/39

    */ protected final static char C#,SW4#$!,!-=! +C#$%!F&'F')

    /** * Precio base por defecto

    */ protected final static double P-!C+#$ S!$%!F&100)

    /** * Peso por defecto */ protected final static double P!S#$%!F& )

    // tributos

    /** * !l precio base del electrodomestico */ protected double precio ase)

    /** * Color del electrodomestico */ protected Strin2 color)

    /**

    * +ndica el consumo ener2etico del electrodomestico */ protected char consumo!ner2etico)

    /** * Peso del electrodomestico */ protected double peso)

    //45todos privados

    private void comprobarColor6Strin2 color7{

    //Colores disponibles Strin2 coloresAB&{RblancoR3 Rne2roR3 Rro oR3 RaXulR3 R2risR:) boolean encontrado&false)

    for6int i&0)iLcolores.len2th 99 8encontrado)i 7{

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    17/39

    if6coloresAiB.eKuals6color77{ encontrado&true) :

    :

    if6encontrado7{ this.color&color) :else{ this.color&C# #-$%!F) :

    :

    /** * Comprueba el consumo ener2etico * Solo maQusculas3 si es una 'a' no lo detecta como una ' ' * @param consumo!ner2etico */ public void comprobarConsumo!ner2etico6char consumo!ner2etico7{

    if6consumo!ner2eticoM&U 99 consumo!ner2eticoL&Y07{ this.consumo!ner2etico&consumo!ner2etico) :else{ this.consumo!ner2etico&C#,SW4#$!,!-=! +C#$%!F)

    :

    :

    //45todos publicos /** * %evuelve el precio base del electrodomestico * @return precio base del electrodomestico */ public double 2etPrecio ase67 { return precio ase) : /** * %evuelve el color del electrodomestico * @return color del elesctrodomestico */ public Strin2 2etColor67 { return color)

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    18/39

    :

    /** * %evuelve el consumo ener2etico del electrodomestico * @return consumo ener2etico del electrodomestico

    */ public char 2etConsumo!ner2etico67 { return consumo!ner2etico) : /** * %evuelve el peso del electrodomestico * @return peso del electrodomestico */ public double 2etPeso67 { return peso) : /** * Precio final del electrodomestico * @return precio final del electrodomestico */ public double precioFinal67{ double plus&0) sOitch6consumo!ner2etico7{ case ' 'N plus &100) breaT)

    case ' 'N plus &?0) breaT) case 'C'N plus &U0) breaT) case '%'N plus & 0) breaT) case '!'N plus &

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    19/39

    plus &10) :else if6pesoM&;0 99 pesoLZV7{ plus & 0) :else if6pesoM& 0 99 pesoL&YV7{ plus &?0)

    :else if6pesoM&?07{ plus &100) :

    return precio ase plus) :

    //Constructores

    /** * Contructor por defecto */ public !lectrodomestico67{ this6P-!C+#$ S!$%!F3 P!S#$%!F3 C#,SW4#$!,!-=! +C#$%!F3C# #-$%!F7) :

    /** * Contructor con ; parametros * @param precio ase del electrodomestico * @param peso del electrodomestico

    */ public !lectrodomestico6double precio ase3 double peso7{ this6precio ase3 peso3 C#,SW4#$!,!-=! +C#$%!F3 C# #-$%!F7) :

    /** * Constructor con Z parametros * @param precio ase * @param peso * @param consumo!ner2etico * @param color */ public !lectrodomestico6double precio ase3 double peso3 charconsumo!ner2etico3 Strin2 color7{ this.precio ase&precio ase) this.peso&peso) comprobarConsumo!ner2etico6consumo!ner2etico7) comprobarColor6color7)

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    20/39

    :

    :

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    21/39

    double plus&super.precioFinal67)

    //a adimos el cdi2o necesario if 6car2aM

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    22/39

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    23/39

    if 6sintoniXador % 7{ plus & 0) :

    return plus)

    :

    //Constructor

    /** * Constructor por defecto */ public elevision67{ this6P-!C+#$ S!$%!F3 P!S#$%!F3 C#,SW4#$!,!-=! +C#$%!F3C# #-$%!F3 -!S# WC+#,$%!F3 false7) :

    /** * Constructor con ; parametros * @param precio ase * @param peso */ public elevision6double precio ase3 double peso7{ this6precio ase3 peso3 C#,SW4#$!,!-=! +C#$%!F3 C# #-$%!F3-!S# WC+#,$%!F3 false7) :

    /** * Contructor con U parametros * @param precio ase * @param peso * @param consumo!ner2etico * @param color * @param resolucion * @param sintoniXador % */ public elevision6double precio ase3 double peso3 charconsumo!ner2etico3 Strin2 color3 int resolucion3 boolean sintoniXador % 7{ super6precio ase3 peso3 consumo!ner2etico3 color7) this.resolucion&resolucion) this.sintoniXador % &sintoniXador % ) ::

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    24/39

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    25/39

    suma!lectrodomesticos &lista!lectrodomesticosAiB.precioFinal67) : if6lista!lectrodomesticosAiB instanceof avadora7{ suma avadoras &lista!lectrodomesticosAiB.precioFinal67)

    : if6lista!lectrodomesticosAiB instanceof elevision7{ suma elevisiones &lista!lectrodomesticosAiB.precioFinal67) : :

    //4ostramos los resultados SQstem.out.println6R a suma del precio de los electrodomesticoses de R suma!lectrodomesticos7) SQstem.out.println6R a suma del precio de las lavadoras es deR suma avadoras7) SQstem.out.println6R a suma del precio de las televisiones es deR suma elevisiones7)

    :

    :-) 9rearemos una clase llamada Ser e con las siguientes caracter sticas: Sus atributos son t tulo, numero de temporadas , entre!ado, !enero y creador. Por defecto, el numero de tem"oradas es de tem"oradas entregado alse . 7l resto de

    atributos ser n 'alores "or defecto seg$n el ti"o del atributo. -os constructores que se im"lementaran ser n:

    o +n constructor "or defecto.

    o +n constructor con el titulo creador. 7l resto "or defecto.

    o +n constructor con todos los atributos, e*ce"to de entregado.

    -os m!todos que se im"lementara ser n:

    o M!todos get de todos los atributos, e*ce"to de entregado.

    o M!todos set de todos los atributos, e*ce"to de entregado.

    o Sobrescribe los m!todos toString.9rearemos una clase / deo0ue!o con las siguientes caracter sticas: Sus atributos son t tulo, horas est madas, entre!ado, !enero y compa$ a . Por defecto, las horas estimadas ser n de 3 horas entregado false. 7l resto de atributos

    ser n 'alores "or defecto seg$n el ti"o del atributo.

    -os constructores que se im"lementaran ser n:

    o +n constructor "or defecto.

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    26/39

    o +n constructor con el titulo horas estimadas. 7l resto "or defecto.

    o +n constructor con todos los atributos, e*ce"to de entregado.

    -os m!todos que se im"lementara ser n:

    o M!todos get de todos los atributos, e*ce"to de entregado.

    o M!todos set de todos los atributos, e*ce"to de entregado.

    o Sobrescribe los m!todos toString.

    9omo 'emos, en "rinci"io, las clases anteriores no son "adre2hija, "ero si tienen en com$n, "or eso

    'amos a hacer una interfaz llamada Entre!able con los siguientes m!todos: entre!ar() : cambia el atributo "restado a true. de*ol*er() : cambia el atributo "restado a false. sEntre!ado() : de'uel'e el estado del atributo "restado. M!todo compare o ( b0ect a) , com"ara las horas estimadas en los 'ideojuegos en las series

    el numero de tem"oradas. 9omo "ar metro que tenga un objeto, no es necesario que im"lementesla interfaz 9om"arable. Jecuerda el uso de los casting de objetos.

    &m"lementa los anteriores m!todos en las clases ideojuego Serie. 8hora crea una a"licaci5nejecutable realiza lo siguiente:

    9rea dos arra s, uno de Ser es otro de / deo0ue!os , de ? "osiciones cada uno. 9rea un objeto en cada "osici5n del arra , con los 'alores que desees, "uedes usar distintos

    constructores.

    7ntrega algunos / deo0ue!os Ser es con el m!todo entre!ar() . 9uenta cuantos Ser es / deo0ue!os ha entregados. 8l contarlos, de'u!l'elos. Por $ltimo, indica el / deo0ue!o tiene m s horas estimadas la serie con mas tem"oradas.

    Muestralos en "antalla con toda su informaci5n (usa el m!todo toString()).

    7sconder ;

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    27/39

    /** * Constante Kue indica Kue un ob eto es maQor Kue otro */ public final static int 4 E#-&1)

    /** * Constante Kue indica Kue un ob eto es menor Kue otro */ public final static int 4!,#-& 1)

    /** * Constante Kue indica Kue un ob eto es i2ual Kue otro */ public final static int +=W &0)

    // tributos

    /** * itulo de la serie */ private Strin2 titulo)

    /** * ,umero de temporadas de la serie */

    private int numero emporadas)

    /** * +ndica si esta entre2ado la serie */ private boolean entre2ado)

    /** * =enero de la serie */ private Strin2 2enero)

    /** * Creador de la serie */ private Strin2 creador)

    //45todos publicos

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    28/39

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    29/39

    */ public void set=enero6Strin2 2enero7 { this.2enero & 2enero) :

    /** * %evuelve el creador de la serie * @return creador de la serie */ public Strin2 2etcreador67 { return creador) :

    /** * 4odifica el creador de la serie * @param creador a cambiar */ public void setcreador6Strin2 creador7 { this.creador & creador) :

    /** * Cambia el estado de entre2ado a true */ public void entre2ar67 { entre2ado&true)

    :

    /** * Cambia el estado de entre2ado a false */ public void devolver67 { entre2ado&false) :

    /** * +ndica el estado de entre2ado */ public boolean is!ntre2ado67 { if6entre2ado7{ return true) : return false) :

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    30/39

    /** * Compara dos series se2un su numero de temporadas * @param ob eto a comparar * @return codi2o numerico

    * LulM * LliM1N a Serie 1 es maQor Kue la Serie ;L/liM * LliM0N as Series son i2ualesL/liM * LliM 1N a Serie 1 es menor Kue la Serie ;L/liML/ulM */ public int compare o6#b ect a7 { int estado&4!,#-)

    //(acemos un castin2 de ob etos para usar el metodo 2et Serie ref&6Serie7a) if 6numero emporadasMref.2etnumero emporadas677{ estado&4 E#-) :else if6numero emporadas&&ref.2etnumero emporadas677{ estado&+=W ) :

    return estado) :

    /** * 4uestra informacion de la Serie

    * @return cadena con toda la informacion de la Serie */ public Strin2 toStrin267{ return R+nformacion de la SerieN nR Rt ituloN R titulo RnR Rt,umero de temporadasNR numero emporadas RnR Rt=eneroN R 2enero RnR RtCreadorN R creador) :

    /** * +ndica si dos Series son i2uales3 siendo el titulo Q creadori2uales * @param a Serie a comparar * @return true si son i2uales Q false si son distintos */ public boolean eKuals6Serie a7{

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    31/39

    if 6titulo.eKuals+2noreCase6a.2et itulo677 99creador.eKuals+2noreCase6a.2etcreador6777{ return true) : return false)

    :

    //Constructor

    /** * Constructor por defecto */ public Serie67{ this6RR3,W4$ !4P#- % S$%!F3 RR3 RR7) :

    /** * Contructor con ; parametros * @param titulo de la Serie * @param creador de la Serie */ public Serie6Strin2 titulo3 Strin2 creador7{ this6titulo3,W4$ !4P#- % S$%!F3 RR3 creador7) :

    /**

    * Constructor con Z parametros * @param titulo de la Serie * @param numero emporadas de la Serie * @param 2enero de la Serie * @param creador de la Serie */ public Serie6Strin2 titulo3 int numero emporadas3 Strin2 2enero3Strin2 creador7{ this.titulo&titulo) this.numero emporadas&numero emporadas) this.2enero&2enero) this.creador&creador) this.entre2ado&false) :

    :

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    32/39

    * * Clase video ue2o * * Contiene la informacion sobre un video ue2o *

    * @author Fernando * @version 1.0 */public class Iideo ue2o implements !ntre2able{

    //Constantes

    /** * (oras estimadas por defecto */ private final static int (#- S$!S +4 % S$%!F&100)

    /** * Constante Kue indica Kue un ob eto es maQor Kue otro */ public final static int 4 E#-&1)

    /** * Constante Kue indica Kue un ob eto es menor Kue otro */ public final static int 4!,#-& 1)

    /** * Constante Kue indica Kue un ob eto es i2ual Kue otro */ public final static int +=W &0)

    // tributos

    /** * itulo del video ue2o */ private Strin2 titulo)

    /** * (oras estimadas del video ue2o */ private int horas!stimadas)

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    33/39

    /** * +ndica si esta o no entre2ado el video ue2o */ private boolean entre2ado)

    /** * =enero del video ue2o */ private Strin2 2enero)

    /** * Compa ia del video ue2o */ private Strin2 compa ia)

    //45todos publicos

    /** * %evuelve el titulo del video ue2o * @return titulo del video ue2o */ public Strin2 2et itulo67 { return titulo) :

    /**

    * 4odifica el titulo del video ue2o * @param titulo a cambiar */ public void set itulo6Strin2 titulo7 { this.titulo & titulo) :

    /** * %evuelve el numero de pa2inas del video ue2o * @return numero de pa2inas del video ue2o */ public int 2et(oras!stimadas67 { return horas!stimadas) :

    /** * 4odifica el numero de pa2inas del video ue2o * @param numero de pa2inas a cambiar

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    34/39

    */ public void set(oras!stimadas6int horas!stimadas7 { this.horas!stimadas & horas!stimadas) :

    /** * %evuelve el 2enero del video ue2o * @return 2enero del video ue2o */ public Strin2 2et=enero67 { return 2enero) :

    /** * 4odifica el 2enero del video ue2o * @param 2enero a cambiar */ public void set=enero6Strin2 2enero7 { this.2enero & 2enero) :

    /** * %evuelve el compa ia del video ue2o * @return compa ia del video ue2o */ public Strin2 2etcompa ia67 {

    return compa ia) :

    /** * 4odifica el compa ia del video ue2o * @param compa ia a cambiar */ public void setcompa ia6Strin2 compa ia7 { this.compa ia & compa ia) :

    /** * Cambia el estado de entre2ado a true */ public void entre2ar67 { entre2ado&true) :

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    35/39

    /** * Cambia el estado de entre2ado a false */ public void devolver67 { entre2ado&false)

    :

    /** * +ndica el estado de entre2ado */ public boolean is!ntre2ado67 { if6entre2ado7{ return true) : return false) :

    /** * Compara dos video ue2os se2un el numero de pa2inas * @param ob eto a comparar * @return codi2o numerico * LulM * LliM1N !l video ue2o 1 es maQor Kue el video ue2o ;L/liM * LliM0N os video ue2os son i2ualesL/liM * LliM 1N !l video ue2o 1 es menor Kue el video ue2o ;L/liML/ulM */

    public int compare o6#b ect a7 { int estado&4!,#-)

    //(acemos un castin2 de ob etos para usar el metodo 2et Iideo ue2o ref&6Iideo ue2o7a) if 6horas!stimadasMref.2et(oras!stimadas677{ estado&4 E#-) :else if6horas!stimadas&&ref.2et(oras!stimadas677{ estado&+=W ) :

    return estado) :

    /** * 4uestra informacion del video ue2o * @return cadena con toda la informacion del video ue2o */

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    36/39

    public Strin2 toStrin267{ return R+nformacion del video ue2oN nR Rt ituloN R titulo RnR Rt(oras estimadasN R horas!stimadas RnR Rt=eneroN R 2enero RnR

    Rtcompa iaN R compa ia) :

    /** * +ndica si dos video ue2os son i2uales3 siendo el titulo Qcompa ia i2uales * @param a video ue2o a comparar * @return true si son i2uales Q false si son distintos */ public boolean eKuals6Iideo ue2o a7{ if 6titulo.eKuals+2noreCase6a.2et itulo677 99compa ia.eKuals+2noreCase6a.2etcompa ia6777{ return true) : return false) :

    //Constructor

    /** * Constructo por defecto

    */ public Iideo ue2o67{ this6RR3(#- S$!S +4 % S$%!F3 RR3 RR7) :

    /** * Constructor con ; parametros * @param titulo del video ue2o * @param compa ia del video ue2o */ public Iideo ue2o6Strin2 titulo3 Strin2 compa ia7{ this6titulo3(#- S$!S +4 % S$%!F3 RR3 compa ia7) :

    /** * Constructor con Z parametros * @param titulo del video ue2o * @param horas estimadas del video ue2o

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    37/39

    * @param 2enero del video ue2o * @param compa ia del video ue2o */ public Iideo ue2o6Strin2 titulo3 int horas!stimadas3 Strin22enero3 Strin2 compa ia7{

    this.titulo&titulo) this.horas!stimadas&horas!stimadas) this.2enero&2enero) this.compa ia&compa ia) this.entre2ado&false) :

    :

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    38/39

    listaSeriesAZB&neO Serie6R reaTin2 adR3 3 R hrillerR3RIince =illi2anR7)

    listaIideo ue2osA0B&neO Iideo ue2o67) listaIideo ue2osA1B&neO Iideo ue2o6R ssasin creed ;R3

  • 7/25/2019 Si Tienes Alguna Duda (Java)

    39/39

    //-ecorremos el arraQ desde la posicion 1 6no 073comparando el maQor con las posiciones del arraQ for6int i&1)iLlistaSeries.len2th)i 7{

    if6listaSeriesAiB.compare o6serie4aQor7&&Serie.4 E#-7{

    serie4aQor&listaSeriesAiB) :

    if6listaIideo ue2osAiB.compare o6video ue2o4aQor7&&Iideo ue2o.4 E#-7{ video ue2o4aQor&listaIideo ue2osAiB) :

    :

    //4ostramos toda la informacion del video ue2o Q serie

    maQor SQstem.out.println6video ue2o4aQor7) SQstem.out.println6serie4aQor7) :

    :7s"ero que os sea de a uda. Si ten!is dudas, "reguntad. 7stamos "ara

    http://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-programacion-orientado-a-objetos-java/

    http://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-programacion-orientado-a-objetos-java/http://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-programacion-orientado-a-objetos-java/http://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-programacion-orientado-a-objetos-java/http://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-programacion-orientado-a-objetos-java/