No hay ningún otro video que explique tan bien y de manera tan grafica, sencilla , ilustrativa y coherente estos conceptos muchas gracias de verdad increíble!!!
Muchos verdaderos docentes estan en la internet sin ser reconocidos, tremendo trabajo una clase muy corta pero efectiva, llevo horas buscando esta claridad de minutos. gracias
La verdad me ha sido muy difícil encontrar una explicación que diferencie la agregación de la composición. Siempre salen con ejemplos insulsos de carros y no se atreven a ponerlos en código. Aquí en cambio quedó muy claro!
muy bueno el video , casi parecidos la agregacion y la composicion pero hay diferencias importantes en la implementación . hare los ejercicios. saludos de peru.
Muchas gracias por tu comentario, cuando sea rico y famoso crearé una plataforma gratuita para capacitar a todas las personas de una forma dinámica y personalizada. Jeje... sinceramente no creo que llegue ese día, pero no esta demás soñar. Que tengas un buen resto de día :')
Hola! Casi lo olvido, hace unos días hice un vídeo en base a tu pregunta, igual si aún te interesa te lo dejo por aquí 🤓 ua-cam.com/video/8I9qUYf7yDI/v-deo.html
Muy buen vídeo se agradece, pero me gustaría que hicieras un ejemplo con la relación de Asociacion es algo que me ocaciona dudas sobre la implementación en código java. Excelente aporte.
Hola. Entiendo, lo tomare en cuenta. Igual si te sirve tengo un vídeo hablando de un poco más de estos temas en ua-cam.com/video/Ce0Xmo6-qG4/v-deo.html
4:48, amigo.ayudame aún no entiendo porque se pone Bateria bateria; Ósea se pueden poner clases como atributos? Y que efecto tiene eso? Ósea para que sirve, que yo puedo hacer con ese atributo?
Pongo "Bateria bateria", el primero que es el tipo de variable ('Clase Bateria') y "bateria" solo es el nombre del atributo, podria ser "miBateria" o cualquiera. Y si, los atributos pueden ser clases llega el momento en que nuestro programa se vuelve cada vez mas complejo y necesitamos hacer ese tipo de cosas. Ponemos Bateria (como clase) ya que ese dato es mas compleo, los 'int's o 'string' ya no nos alcanzan para lo que queremos hacer :'D Al principio puede ser algo complicado entenderlo, pero practicando estarás al 💯! Ánimo! 💪
No es exactamente un "tipo de dato", es una Clase, es decir en la clase SmatPhone es un atributo, pero un atributo que tiene sus propios atributos y métodos 👌
Un objeto puede estar compuesto de otro objeto compuesto? Por ejemplo una persona está compuesta de una cabeza, y la cabeza a su vez está compuesta por ojos? Es válido representarlo así? Y si es posible cómo se representaría en código?, ya que tengo entendido que la clase "raíz" es la única encargada de "crear" a su "agregado", pero ese agregado a su vez es raíz de otro agregado, entonces como crearía el agregado de ese agregado?
Si se puede amigo. Es totalmente válido. Ahora bien, digamos que tienes las clases A,B,C; donde A es la clase que contiene a B y B a C Para agregar nuevos C's puedes crear un método en B llamado 'agregaCs(c)'. Ahora si estás pensando en agregar C's desde A, puedes crear un método en A q se llame 'agregaCenB(b,c)' y en ese método llamas al método de B (agregaCs)y ojo en los parámetros, necesitas saber en cual 'b' vas a agregar el 'c'. La idea delegar las tareas creando métodos, es decir A delega a B, B a C y así si fuera necesario. Espero te de una idea. También si estás estudiando Agregación y Composición te recomiendo este video que habla del tema ua-cam.com/video/Ce0Xmo6-qG4/v-deo.html 👍
@@doneberGracias, tenía esa duda, ya que la mayoría muestra ejemplos simples, y en la Universidad nisiquiera explican bien, así que toca arreglarmela por mi cuenta, pero con tu respuesta ya me iluminaste. De veras muchas gracias.
Hola que dices de este ejemplo..... un carro y un motor, está claro que es composición ya que un carro sin motor sería solo una lata con forma de carro...pero y las ruedas??.... te pregunto porque he visto ejemplos en youtube quienes aseveran que se trata tb de composición por razones entendibles, y otros que lo tratan como agregación por razones tb entendibles....entonces no es tan sencillo porque no hay una línea lo suficientemente marcada que separe lo que es composición de lo que es agregación "PARA TODOS LOS CASOS"...a veces aparecen casos híbridos donde bien podría encajar una cosa o la otra, entonces no siempre es tan sencillo. Cuando buscas en youtube videos generalmente te encuentras con casos muy básicos y muy bien diferenciados. Yo te exhorto a que hagas un video que trate este tema de forma más profunda viendo ejemplos no tan usuales y menos habitual través de código, porque un aprendiz al ver los ejemplos básicos pensaría aaaaaa pero si es tan sencillo como ver si la la clase tiene algún tipo de contenedor como vector pera saber que ya se trata de agregación... no siempre se necesita disponer de un vector de que contenga otros elementos para llegar a la conclusión inmediata que es un tema de agregación, a veces no se cuentan con dichos contenedores y siguen existiendo agregaciones... Me gustaría saber tu opinión al respecto, incluso he visto hasta en libros que el autor evita en tratar dichos conceptos como algo separado porque piensa que sigue habiendo enfoques y opiniones dividas sobre este tema
Me encantó tu comentario, toda la razón. En mi opinión un ejercicio se podría resolver con Agregación o Composición, y la respuesta no siempre es tan obvia. Pero hay casos en los que uno tiene mas sentido que el otro, esto uno se da cuenta con la práctica. Pero buscaré algún ejercicio que ejemplifique esto y lo subiré. Gracias por el comentario, me hace recordar el monton de otras dudas que tenemos cuando somos estudiantes. 👍
Muy buena explicación, me haz aclarado varias dudas pero hay algunas partes que aun me pierdo, por ejemplo: en la parte de agregacíon, tengo entendido que aparte del método para agregar, también hay para quitar, entonces en este caso, si quisiera quitar un chip del arreglo de chips el cual tiene para máximo 2 chips, ¿Como se haría?, se tendría que indicar que el chip en alguna de las 2 posiciones (la primer posición por ejemplo) es igual a null para quitarlo. Algo así quiero creer: nroChips=0; chips[nroChips]=null; ¿A que te refieres cuando dices que un objeto muere? por ejemplo el objeto cel de tipo SmartPhone si muere los chips agregados siguen existiendo pero la batería no, pero, ¿Que es eso de morir?, ¿Te refieres a si el objeto cel lo eliminas al igualarlo a null para que ya no este apuntando a ninguna referencia previamente instanciada?. Disculpa mi ignorancia y el hacer tantas preguntas pero, soy nuevo en estos conceptos de agregación y composición en uml. Si pudieras explicarme te lo agradeceré mucho.
La primera parte si, estaría bien eliminarlo así. Lo estarías eliminando ya que al ponerlo 'null' el *Recolector de Basura* de tu lenguaje lo terminará elimiando (googlea eso si no se entiende bien) Al decir morir me refieron que su instancia desaparece, ya no podrémos recuperar esa información (se elimina de la RAM, otra vez *Recolector de Basura (de Java, por ejemplo)*) Básicamente cuando teníamos varios datos en una variable, pero luego le damos null el Recolector de Basura libera ese especio de memoria de la computadora (la memoria RAM) y ya, muere :v Saludos, espero la información aún te sirva :'v
Ah pasado tanto tiempo que lo olvidé, creo que usé VSCode con el tema por defecto. Lamento no poder ayudarte lo suficiente. Espero lo hayas logrado. Que tengas un buen resto de día :')
he estado viendo algunos de tus videos y son muy buenos muchisimas gracias , la agregacion y composicion son tipos de asociaciones? por que recuerdo escuchar en clase el concepto de asociacion pero no estoy 100% seguro
Holas! Existen diferentes tipos de relaciones entre clases, la asociación una de ellas al igual que la agregación o composición. No me animo a decir que es un tipo de asociación aunque si tienen algo de parecido 😄 Saludos!
¿Quieres ver videos así? Aquí algunos:
🔗 Git (serie): bit.ly/Git-y-GitHub
🔗 POO: bit.ly/poo-paradigm
🔗 Beneficios Premium: bit.ly/student-list-benefits
🔗 Tips: bit.ly/awesome-pro-tips
🔗 Web: bit.ly/web-pro-list
🔗 More (YT suscribe): bit.ly/donEber
No hay ningún otro video que explique tan bien y de manera tan grafica, sencilla , ilustrativa y coherente estos conceptos muchas gracias de verdad increíble!!!
Muchos verdaderos docentes estan en la internet sin ser reconocidos, tremendo trabajo una clase muy corta pero efectiva, llevo horas buscando esta claridad de minutos. gracias
Muchas gracias por tus palabras, me alegra mucho saber que este ayude. Espero te vaya muy bien en tus estudios 💪
La verdad me ha sido muy difícil encontrar una explicación que diferencie la agregación de la composición. Siempre salen con ejemplos insulsos de carros y no se atreven a ponerlos en código.
Aquí en cambio quedó muy claro!
Uhff durisima la explicacion. Muy muy top. Gracias por ayudarnos a entenderlo tan facil, grafica y didacticamente. Un abrazo
El mejor video explicativo de lejos. Se resumió toda mi clase en 7 minutos con tu video, jajaja.
Manito te aplaudo, muy bien explicado! Saludos desde Argentina
Al fin alguien que da un ejemplo de composicion compuesta con un array.
Pero de eso hay mucho en internet... desde el año 96 este ejemplo está en el libro de UML.
Genial! No sabía eso, podrías compartir el nombre del libro por favor. Y gracias por el dato 😊 💪
El mejor explicando. Muchas tenkiu
Este canal tiene un potencial enrome!!!
¡Explicas excelente, gracias por tu video!
Excelente explicación. Muchas gracias por compartir
muy muy bueno el contenido, te agradezco y felicito por la explicacion tan clara, sos un crack
muy bien, la mejor explicación.
Excelente hermano, casi ya le entiendo
Que precioso video, no puedo creer que existiera esto
Gracias por tus palabras :')
Muy buena explicación
Muchisimas gracias maestro!
Con mucho gusto
Que explicación tan genial. Gracias, hermano.
Con mucho gusto
Un duro, mejor que mi profe
me encantó tu video, nuevo sub
EXCELENTE VIDEO!!!
Gracias man, me salvaste de la automatasion xd
Me alegra saberlo :')
Saludos :wave:
muy bueno el video , casi parecidos la agregacion y la composicion pero hay diferencias importantes en la implementación . hare los ejercicios. saludos de peru.
Muy buen ejemplo el de smartphone, gracias!
Gracias por comentarlo 🙌
Muy completo e intuitivo, gracias
Explica increíblemente bien. Buen video.
Cortito y al pie. Excelente
Excelente aporte, muy bien explicado :))
sos god brother
Muchas Gracias! muy bien explicado!
Es un gusto. SI quieres ver mas a profundidad puedes ver el video de Agregación VS Composición :'D
Saludos!
Muy buena explicación, justo lo que estaba buscando.
muy bueno gracias
Miy buen video me ayudo mucho
Muchas gracias por tu comentario, cuando sea rico y famoso crearé una plataforma gratuita para capacitar a todas las personas de una forma dinámica y personalizada. Jeje... sinceramente no creo que llegue ese día, pero no esta demás soñar.
Que tengas un buen resto de día :')
Buena explicacion bro
Gracias por tu comentario! Te deseo éxitos en tus estudios 👌
Posdata: Lamento responder de tiempo, me perdí en el sendero de la vidaa... 🍃
¿Qué implicaría usar inyección de dependencias para la batería o los chips, en el constructor del smartphone? Saludos.
Hola! Casi lo olvido, hace unos días hice un vídeo en base a tu pregunta, igual si aún te interesa te lo dejo por aquí 🤓 ua-cam.com/video/8I9qUYf7yDI/v-deo.html
@@doneber Muchas gracias, estoy de acuerdo con todo, sumado a la facilidad para realizar los tests unitarios.
Exacto, no lo he comentado en el vídeo pero para hacer mocks (objetos simulados) es necesario. 👍
Muchas Gracias!!!!!!!!
Excelente explicacion, gracias.
Gracias a ti por comentar
Gracias.
Muy buen vídeo se agradece, pero me gustaría que hicieras un ejemplo con la relación de Asociacion es algo que me ocaciona dudas sobre la implementación en código java. Excelente aporte.
Hola. Entiendo, lo tomare en cuenta. Igual si te sirve tengo un vídeo hablando de un poco más de estos temas en ua-cam.com/video/Ce0Xmo6-qG4/v-deo.html
Excelente!
4:48, amigo.ayudame aún no entiendo porque se pone Bateria bateria;
Ósea se pueden poner clases como atributos?
Y que efecto tiene eso?
Ósea para que sirve, que yo puedo hacer con ese atributo?
Pongo "Bateria bateria", el primero que es el tipo de variable ('Clase Bateria') y "bateria" solo es el nombre del atributo, podria ser "miBateria" o cualquiera.
Y si, los atributos pueden ser clases llega el momento en que nuestro programa se vuelve cada vez mas complejo y necesitamos hacer ese tipo de cosas.
Ponemos Bateria (como clase) ya que ese dato es mas compleo, los 'int's o 'string' ya no nos alcanzan para lo que queremos hacer :'D
Al principio puede ser algo complicado entenderlo, pero practicando estarás al 💯!
Ánimo! 💪
@@doneber entonces ese tipo de dato sirve para guardar lo que más cosas y ya?
No es exactamente un "tipo de dato", es una Clase, es decir en la clase SmatPhone es un atributo, pero un atributo que tiene sus propios atributos y métodos 👌
Un objeto puede estar compuesto de otro objeto compuesto? Por ejemplo una persona está compuesta de una cabeza, y la cabeza a su vez está compuesta por ojos? Es válido representarlo así? Y si es posible cómo se representaría en código?, ya que tengo entendido que la clase "raíz" es la única encargada de "crear" a su "agregado", pero ese agregado a su vez es raíz de otro agregado, entonces como crearía el agregado de ese agregado?
Si se puede amigo. Es totalmente válido. Ahora bien, digamos que tienes las clases A,B,C; donde A es la clase que contiene a B y B a C
Para agregar nuevos C's puedes crear un método en B llamado 'agregaCs(c)'. Ahora si estás pensando en agregar C's desde A, puedes crear un método en A q se llame 'agregaCenB(b,c)' y en ese método llamas al método de B (agregaCs)y ojo en los parámetros, necesitas saber en cual 'b' vas a agregar el 'c'. La idea delegar las tareas creando métodos, es decir A delega a B, B a C y así si fuera necesario.
Espero te de una idea. También si estás estudiando Agregación y Composición te recomiendo este video que habla del tema ua-cam.com/video/Ce0Xmo6-qG4/v-deo.html
👍
@@doneberGracias, tenía esa duda, ya que la mayoría muestra ejemplos simples, y en la Universidad nisiquiera explican bien, así que toca arreglarmela por mi cuenta, pero con tu respuesta ya me iluminaste. De veras muchas gracias.
Hola que dices de este ejemplo..... un carro y un motor, está claro que es composición ya que un carro sin motor sería solo una lata con forma de carro...pero y las ruedas??.... te pregunto porque he visto ejemplos en youtube quienes aseveran que se trata tb de composición por razones entendibles, y otros que lo tratan como agregación por razones tb entendibles....entonces no es tan sencillo porque no hay una línea lo suficientemente marcada que separe lo que es composición de lo que es agregación "PARA TODOS LOS CASOS"...a veces aparecen casos híbridos donde bien podría encajar una cosa o la otra, entonces no siempre es tan sencillo. Cuando buscas en youtube videos generalmente te encuentras con casos muy básicos y muy bien diferenciados. Yo te exhorto a que hagas un video que trate este tema de forma más profunda viendo ejemplos no tan usuales y menos habitual través de código, porque un aprendiz al ver los ejemplos básicos pensaría aaaaaa pero si es tan sencillo como ver si la la clase tiene algún tipo de contenedor como vector pera saber que ya se trata de agregación... no siempre se necesita disponer de un vector de que contenga otros elementos para llegar a la conclusión inmediata que es un tema de agregación, a veces no se cuentan con dichos contenedores y siguen existiendo agregaciones... Me gustaría saber tu opinión al respecto, incluso he visto hasta en libros que el autor evita en tratar dichos conceptos como algo separado porque piensa que sigue habiendo enfoques y opiniones dividas sobre este tema
Me encantó tu comentario, toda la razón. En mi opinión un ejercicio se podría resolver con Agregación o Composición, y la respuesta no siempre es tan obvia. Pero hay casos en los que uno tiene mas sentido que el otro, esto uno se da cuenta con la práctica. Pero buscaré algún ejercicio que ejemplifique esto y lo subiré. Gracias por el comentario, me hace recordar el monton de otras dudas que tenemos cuando somos estudiantes. 👍
Ah si, casi lo olvido. Hcie un video respondiendo esas dudas bro!
Lo dejo aqui: ua-cam.com/video/Ce0Xmo6-qG4/v-deo.html
@@doneber Wow, muchas gracias bro, la verdad no pensé que te tomarías el trabajo...gracias nuevamente saludos
excelente
Muy buena explicación, me haz aclarado varias dudas pero hay algunas partes que aun me pierdo, por ejemplo: en la parte de agregacíon, tengo entendido que aparte del método para agregar, también hay para quitar, entonces en este caso, si quisiera quitar un chip del arreglo de chips el cual tiene para máximo 2 chips, ¿Como se haría?, se tendría que indicar que el chip en alguna de las 2 posiciones (la primer posición por ejemplo) es igual a null para quitarlo. Algo así quiero creer:
nroChips=0;
chips[nroChips]=null;
¿A que te refieres cuando dices que un objeto muere? por ejemplo el objeto cel de tipo SmartPhone si muere los chips agregados siguen existiendo pero la batería no, pero, ¿Que es eso de morir?, ¿Te refieres a si el objeto cel lo eliminas al igualarlo a null para que ya no este apuntando a ninguna referencia previamente instanciada?. Disculpa mi ignorancia y el hacer tantas preguntas pero, soy nuevo en estos conceptos de agregación y composición en uml. Si pudieras explicarme te lo agradeceré mucho.
La primera parte si, estaría bien eliminarlo así. Lo estarías eliminando ya que al ponerlo 'null' el *Recolector de Basura* de tu lenguaje lo terminará elimiando (googlea eso si no se entiende bien)
Al decir morir me refieron que su instancia desaparece, ya no podrémos recuperar esa información (se elimina de la RAM, otra vez *Recolector de Basura (de Java, por ejemplo)*)
Básicamente cuando teníamos varios datos en una variable, pero luego le damos null el Recolector de Basura libera ese especio de memoria de la computadora (la memoria RAM) y ya, muere :v
Saludos, espero la información aún te sirva :'v
@@doneber ya entiendo, buscaré eso del recolector de basura. Gracias por responder a mi duda.
Crack!!
Amigo dime cómo puedo hacer para que el codigo de java aparezca en los mismos colores tuyos en video, es decir el color de la fuente.
Ah pasado tanto tiempo que lo olvidé, creo que usé VSCode con el tema por defecto.
Lamento no poder ayudarte lo suficiente. Espero lo hayas logrado.
Que tengas un buen resto de día :')
¿Entonces puedo distinguir una relación de composición y/o de agregación gracias al constructor y los métodos de la clase?
Se puede decir que si 👍
he estado viendo algunos de tus videos y son muy buenos muchisimas gracias , la agregacion y composicion son tipos de asociaciones? por que recuerdo escuchar en clase el concepto de asociacion pero no estoy 100% seguro
Holas!
Existen diferentes tipos de relaciones entre clases, la asociación una de ellas al igual que la agregación o composición. No me animo a decir que es un tipo de asociación aunque si tienen algo de parecido 😄
Saludos!
GOD
esto aplica tambien a PYTHON?
Así es mi estimada. Los conceptos de POO son independientes del lenguaje 😌👍
+1
Te entendi mas que al profe xd
muy lindo todo pero el código no funciona... con razón te dio pereza terminarlo.
Si funciona bro. El código está en la descripción 🥺
@@doneber aaaah mas te valía 😠
ConSideración *
Mi no sabe espaniol
Gracias por la corrección
Excelente explicación