Anda di halaman 1dari 5

[MUSIC] Bien estoy en mi clase principal

y a continuacin veremos un ejercicio sobre herencia. Me encuentro en el mtodo main


,
recuerda que necesitamos tener una clase que tenga por lo menos,
bueno que tenga un mtodo main. Por lo menos necesitamos tener una
clase que contenga un mtodo main, que ser el mtodo de entrada
de nuestra aplicacin. De acuerdo al ejercicio que vimos
yo you he creado una clase playera y tambin una clase jeans
y una clase calcetn. Cada una de estas clases tiene atributos. Por ejemplo a la c
lase playera
le he credo id, precio, talla, color y corte, y respectivamente le
he puesto tambin Getters y Setters. Adems le he colocado el
mtodo mostrar datos, y aqu me imprime todos
los datos de esta clase. De la misma forma, en la clase
jeans tambin he colocado un id, precio, talla, color, corte, y adems he agregado u
n atributo
propio de esta clase que es gnero. La clase calcetin contiene el mtodo id,
precio, talla, color. Tambin cada uno de estos atributos
tiene su propio manejador de acceso a la informacin, sus getters y setters y
tambin contiene el mtodo mostrarDatos. La idea de la herencia
es precisamente detectar todas estas cosas que estn siendo
redundantes en nuestro cdigo, y que de alguna forma hace la lectura
del mismo, pues un poco pesada. Entonces lo que haremos ser integrar
todas estas clases a una familia. Tal cual como lo platicamos
en los vdeos anteriores. Haremos una familia de estas clases y
para ellos crearemos una clase padre, donde detectaremos nuestros
elementos redundantes y esos elementos redundantes se
los asignaremos a la clase padre, para que l pueda heredrselos
a estas clases hijo. Entonces, ir a mi proyecto, aqu donde est mi paquetito,
y voy a crear una nueva clase. La clase se va llamar ropa. Esa ser mi clase padre
. Yo puedo definir, yo puedo abstraer, yo
puedo analizar los elementos redundantes, por ejemplo,
todos tienen en comn el id, el precio, la talla,
el color respectivamente con sus mtodos. Y tambin, adems el mtodo mostrarDatos. Todo
s tienen en comn tambin ese mtodo. mostrarDatos para jeans y este ac abajo,
mostraDatos para calcetn. Entonces voy a colocar aqu
en mi clase padre, private. Yo coloque por ac arriba el id
con un String lo vamos a cambiar. El id no debe ser String debe
ser un entero, private int. Private, seguimos con el precio,
lo podemos colocar como double. Precio. Despus tambin podemos
poner private talla, la talla si puede ser un String, talla. Podemos poner priva
te color,
y el color tambin puede ser un String. Color, aqu, listo. Y you, perfecto. you ten
emos estos cuatro elementos, que son los elementos que
detectamos que estn en comn. Vamos a crear tambin sus
respectivos getters y setters. Voy a darle click derecho dentro de
la clase, en la opcin de source. Y donde dice generar Getters y Setters, seleccio
nar todos los
elementos y le dar okay. Perfecto. Adems, voy a colocar tambin
mi mtodo mostrarDatos, mi mtodo mostrarDatos en la clase padre. Public void mostra
rDatos. Y yo puedo decir que mostarDatos, reciba a lo mejor un String
del nombre de la clase. Porque detectamos que aqu lo primero
que imprimimos es el nombre de la clase o el nombre de la prenda como tal. Enton
ces yo puedo recibir esto como
un parmetro para estarlo poniendo. Y aqu mismo puedes incluir
todos los Getters y Setters. Y aqu mismo incluir todas las impresiones
de los atributos que yo tengo por ac. Voy a colocar aqu primeramente,
imprimir el nombre de la clase. Luego imprimir el id, el id de ese elemento, de e
sa clase. Seria bueno tambin imprimir, imprimiremos
el precio, la talla, y el color. Tengo precio, aqu imprimimos el precio. Y por ot
ro lado ponemos la talla,
tambin, la talla la colocamos as y por ltimo colocamos el color,
el color lo concatenamos. you est. Entonces con esto yo you
he creado una clase padre, you no necesito tener todas
estas cosas por aqu. En primera el mtodo mostrarDatos
se va automticamente de todas las clases,
you no lo necesitamos. Se va de aqu. Listo se fue. Y tambin los atributos que dete
ctamos,
no?, id, precio, talla y color los quitamos. En este caso Playera lo nico
que tendr ser el corte, entonces por lo tanto
tambin me deshar de l. Todos los mtodos que no
tienen nada que ver aqu. De esta forma me quedo solamente
con dos mtodos y un atributo. Lo mismo har para los Jeans,
voy a quitar todos estos elementos, el corte el gnero. Estos son atributos. Que l
e corresponden
solamente a esta clase, y como vamos observando el cdigo
se va haciendo ms digerible. El cdigo va minimizndose en gran manera,
pero todava no he terminado. Tengo Calcetin,
le vamos a quitar todo a Calcetin. Porque la clase ropa you tiene todo,
todos los atributos de calcetn. Como observas,
hemos minimizado en gran manera el cdigo. Y ahora, la idea de la herencia es,
precisamente, todo esto, todo este cdigo que est aqu,
reutilizarlo en las dems clases. Para poder aplicar la
herencia en una clase, como vimos en los vdeos anteriores,
utilizamos la palabra reservada extends. Extends seguido de la sper
clase o de la clase padre. En este caso mi clase
padre es la clase Ropa. En este momento esta clase Playera. you tiene todos los
atributos. Una playera you tiene un id. Una playera you tiene un precio,
una talla y un color. Aunque no los veamos aqu en
realidad estn presentes. Por ejemplo si yo quiero
desde el mtodo set corte. Llamar no s, get Id,
imprimir el Id, puedo aqu llamarlo. Y como observas, tambin est aqu el
color, el precio, la talla y aqu te dice exactamente de que clase
pertenecen estos mtodos. El mtodo por ejemplo get id nos devuelve
un entero y pertenece a la clase ropa. El mtodo get corte, nos devuelve un string
y pertenece
a esta clase, a la clase playera. Aqu podramos ir observando a qu
clase pertenece cada mtodo, yo podra hacer eso,
y aunque yo no vea por aqu los mtodos, en realidad es como si estuvieran
gracias a la herencia. Entonces voy a quitar sto, lo mismo
suceder con los atributos, recuerda que esto va a depender del modificador
de acceso que tenga cada elemento. Podemos traernos los elementos
pblicos y los elementos protected. Pero los elementos private y default, esos
no pueden ser accesibles en la herencia. Si yo por ejemplo, en la clase
ropa declaro un elemento pblico, no s, string, le pongo nombre. Puedo yo, desde aq
u Accesar al nombre y como
observas aqu aparece el atributo nombre como si
estuviese declarado aqu. De hecho yo pongo una c, aqu, para por ejemplo poder acce
sar al corte
y aqu me dice que est en esta clase. Yo puedo poner aqu nombre y me dice que
es un string y pertenece a la clase ropa. Pero los dems atributos no los veo, por
que los otros atributos
estn definidos como privados. Es decir, una caracterstica de
este modificador de acceso es que los privado solamente son
accesibles para esa clase. No para clases que hereden de ellas, ni clases que es
tn en otro paquete,
etctera. ste es el ms restrictivo. Entonces, de esta forma
you estoy utilizando la herencia y estoy
ahorrando mucho cdigo. Yo podra definir un mtodo
constructor como lo vimos en los ejercicios anteriores del telfono. Yo podra defin
ir un mtodo constructor,
por ejemplo ropa. Y yo podra decir para que como mnimo, yo podra decir que, para qu
e un
objeto de tipo ropa puede ser creado, necesito como mnimo tener los siguientes
parmetros, por ejemplo, que tenga un id, que tenga un precio asignado, y que tamb
in tenga nada ms. Por ejemplo, vamos a decir,
por poner uno ms, una talla y, bueno, podemos decir que sean
todos obligatorios, no? Que sean todos los elementos obligatorios
para que yo pueda crear un elemento de tipo ropa y,
aqu puedo colocar this, le digo id. This lo utilizo mucho cuando tengo
variables que tienen el mismo nombre, como observas aqu estoy devolviendo
el id, que es esta variable. Y aqu tambin,
estoy accesando el id que esta variable. sta anotacin y sta, son equivalentes. En r
ealidad me trae el mismo valor, yo tambin aqu podra tener this,
as, y no hay ningn problema. Pero es muy comn utilizar this
cuando tengo elementos, por ejemplo, this este id, es una variable global
y este id es una variable local, entonces ambas variables
tienen el mismo nombre. Puedo utilizar this para
referirme a mi variable global y puedo utilizar, simplemente sin this,
para referirme a la variable local. Entonces con this me estar
refiriendo a todos los elementos que estn en la clase, como te lo
expliqu en las sesiones anteriores. Todos nuestros elementos que
est contenidos en esta clase, los acceso a travs de this. Me falta aqu el color. En
tonces, lo que yo estoy haciendo aqu, es que al momento de que
creemos un objeto de tipo ropa. Automticamente, todas estas
variables se inicializarn. Con lo que una persona le pase aqu,
eso lo vimos muy bien explicado en nuestra clase de telfono,
cuando vimos el mtodo constructor. Ahora, seguimos por ac a la playera. Qu nos est di
ciendo?, dice que
necesitamos tambin aadir un constructor. Como yo you estoy aplicando la herencia
de ropa, dice que necesitamos aadir un constructor que tenga la misma forma
de su clase padre, su clase ropa. Lo aado y me aade un constructor
con estos mismo elementos. Entonces lo que yo estoy
haciendo aqu es sobreescribiendo este constructor en mi clase hija. Y ahora puede
s ver
nuestras palabras claves, que platicamos en una sesin anterior. Que vimos this y
esta nueva que es super. Yo puedo decir, que para crear
una playera necesito el id, s, necesito el precio, tambin, la talla,
por supuesto, el color, claro. Y adems necesito que
me indiques el corte, yo puedo aadir aqu, corte. Y entonces, desde el momento en e
l que yo empiezo a implementar cdigo en
un mtodo que estoy sobreescribiendo. En un mtodo que estoy heredando,
en este caso el mtodo constructor. En este momento you estoy
sobreescribiendo el mtodo, y en ese momento cuando sobreescribimos
y le damos implementacin, estamos viendo presente el polimorfismo. Porque ese mtod
o se est
comportando de diferentes formas. Entonces con super me estoy refiriendo
a la clase padre, la sper clase. Super siempre se referir
a la sper clase. Por lo tanto aqu me estoy refiriendo. Al mtodo constructor de la c
lase padre. La clase padre ropa tiene esta definicin,
id, precio, talla y color. Con super estoy pasando los mismos
parmetros, id, precio, talla y color. Esto equivaldra como si tuviese ropa,
as no s si se pudiera ver de una forma. Pero lo ejemplifico con super, cuando yo p
ongo super, y le pongo punto, puedo tener acceso a todos los
mtodos de la clase padre. Como observas est por aqu getColor, getColor es un mtodo q
ue no
est presente en Playera. GetPrecio tambin es un mtodo
que no est presente en Playera. Y puedo trarmelos as y
estarlos llamando sin problema. Tambin podra traerlo sin la palabra
super, y ambos equivalen a lo mismo. Pero con super, indico que me refiero
a todos los componentes de la clase padre. Con este super sin punto, me estoy re
firiendo al mtodo
constructor de la clase padre. Bien, seguramente viste aqu en super, cuando le di
punto, viste por ac
estos que dicen Object- Object, Ropa, Ropa ,Object, etc. Y es que por regla, por
regla general,
automticamente todos los mtodos, automticamente todas las clases
sin que lo indiques, siquiera. Todas las clases se heredan
de la clase padre object. En Java existe la clase padre Object y,
automticamente, todas las clases van a heredar de ella. Sin nosotros siquiera ind
icarlo
con la palabra reservada extends. Si voy por aqu estoy aqu en mi clase
Object, aqu est la clase Object. Tiene muchos mtodos,
tiene muchos atributos y cuando yo creo un objeto, cuando yo creo
una clase o un objeto automticamente. Los mtodos de la clase Object
estarn presentes, estarn visibles. Entonces de esta forma yo puedo de una
forma sencilla estar ahorrando cdigo. Voy aplicar la herencia tambin en Jeans,
Ropa. Voy a definir el constructor
tambin para Jeans, y tambin en Jeans tengo
dos atributos adicionales. Corte, vamos a poner String
corte y char genero char gnero, y tambin pasrselos respectivamente. Corte, le pasam
os el corte. Y this.genero, le pasamos el gnero. Ahora el calcetn. Calcetn pues no
tienen ninguno. Entonces podra yo nada mas aqu
aplicar la herencia para Ropa, you est y coloco un constructor igualito. No neces
ito aadirle ms comportamiento
a Calcetin, al constructor de Calcetin. Ahora me falta el mtodo mostrar datos. Po
rque cuando yo llame el mostrar datos
de Playera, solamente me imprimir el id, el precio, la talla y el color. E ignora
rn el corte, el corte que es un
atributo que yo agregu para Playera. Entonces lo que har ser
sobreescribir ese mtodo, sobreescribir en el mtodo mostrarDatos. Puedes sobreescri
birlo simplemente
colocando una palabra clave, mos de mostrar,
y das ctrl barra espaciadora. Y nos aparece aqu. O tambin otra opcin es
dando click derecho en Source en la opcin de
Override/Implement Methods. Y yo aqu puedo ver todos los mtodos
que tengo disponibles para sobrescribir. Por ejemplo el mtodo mostrar datos,
ese es el que quiero. Y adems los mtodos de la clase Object. Tambin los puedo sobre
escribir, y tambin puedo darles una
implementacin personalizada. Voy a traer ese, y como observas, super tambin est hac
iendo
referencia al mtodo mostrar datos. Pero de la super clase. Yo aqu nada ms, me falta
ra aadir el Corte y colocar aqu el Corte. Entonces con esto yo estoy
indicando que se ejecute todo lo que est dentro de mostrarDatos. Y adicional, eje
cuta sto. Yo podra tambin quitar esto. Podra quitarlo,
pero solamente estara implementando, estara mostrando el corte,
no estara mostrando todos los dems. Para fines de este ejercicio,
Pues voy a dejar esto. Entonces aqu tambin vemos el
polimorfismo, en mostrar datos. Estoy sobreescribiendo este mtodo y estoy
aadindole un nuevo comportamiento. Puedo aplicar lo mismo para los dems, mostrar da
tos y agregar los
elementos que me faltan. Me falta para los Jeans, me falta el
Corte y tambin me falta el Gnero. Colocamos aqu Genero: y
concatenamos el Genero. Listo, y para Calcetin. Tambin podra traer sobreescribir,
mostrar datos y para Calcetin,
pues no tengo ningn atributo adicional. Entonces, podra ahorrarme la
sobreescritura en este caso, porque Calcetin se va a comportar
de la misma forma con como ropa. Entonces vemos ,como en el
caso de nuestra vida real. Cuando nosotros heredamos caractersticas
de nuestros abuelos o heredamos caractersticas a nuestros hijos. Algunos, algunas
caractersticas si
podemos tenerlas y otras no como tal. Algunas caractersticas podramos. Incluso aadi
rlas, tenerlas presentas,
pero a lo mejor en una forma distinta. A lo mejor yo podra tener el cabello
ondulado, y mi hija podra tener el cabello ondulado s, pero menos
ondulado, o con una ondulacin distinta. Ah podramos haber
aplicado el polimorfismo. Entonces, de esta forma es como
nosotros podemos trabajar la herencia. Y, por ltimo,
nada ms me faltara pues probar, probar mis clases. Puedo crear una playera Playera
. vamos a ponerla igual
a new y yo puedo decir que tenga un id 1, a un precio de 299.5, una talla que se
a, puedo definir chica. Un color, puedo decir que sea gris, y un corte,
puedo decir que sea de tipo polo. Esa es una Playera. Y ahora, para unos jeans,
puedo colocar unos jeans. New jeans, tambin le coloco
un Id por ejemplo el Id dos. Puedo colocarle un precio, un precio para unos jean
s podemos decir que sean 799. Una talla que sea, una talla, 32. Un color,
podemos decir que sea color azul. Para el corte de unos jeans podemos tener skin
ny y el gnero podemos
decir que sea femenino. Gnero femenino. Ahora por ltimo, nos falta un calcetn. Un c
alcetn. Podramos poner igual a new. Y lo mismo podra tener el id tres. Unos calceti
nes que podran ser unos 29. Una talla podramos poner talla m. Color podramos decir
que sean rojos. Aqu ponemos punto y coma, listo, no olvides siempre los punto y c
oma,
son muy importantes en java. Bien, you he creado estos objetos,
el objeto playera, el objeto jeans, el objeto calcetn. Y cada uno tiene su mnimo d
e
atributos para ser recreado. Ahora vamos a poner en prctica sto, vamos a decir pla
yera.mostrarDatos, y le decimos que es una playera,
una playera gris. Ahora vamos a jeans.mostrarDatos
y le decimos que son unos jeans, azul, unos jeans de mujer. Y calcetin.mostrarDa
tos, podemos decir que sea aqu calcetines. Calcetines, perfecto. Ahora, si correm
os sto,
qu nos aparecer? Pues todo lo que acabamos hacer,
todo nuestro trabajo con la herencia. you tenemos un id, el precio, la talla,
el color, para una playera gris de mujer. Precio, talla,
color para los jeans de una mujer. Tambin los calcetines,
precio, talla y color. Como observas en cada uno con su mtodo
mostrar datos lo personaliz a su gusto. Entonces aqu vemos
aplicado el polimorfismo. Bien, hemos visto varios conceptos. Hemos visto herenc
ia sobreescritura
de mtodos y polimorfismo. Hemos visto tambin nuestras palabras
reservadas super, que hace referencia a la sper clase, y this que hace referencia
a la clase donde ests ubicado. Nos vemos en el siguiente. [MUSIC]

Anda mungkin juga menyukai