Apareció el perrito y yo
Bienvenida e Introducción
¿Por qué aprender Programación Orientada a Objetos?
¿Qué resuelve la Programación Orientada a Objetos?
Paradigma Orientado a Objetos
Lenguajes Orientados a Objetos
Instalando Visual Studio Code
Diagramas de Modelado
Qué es UML
Orientación a Objetos
Objetos
Abstracción y Clases
Modularidad
Analizando Uber en Objetos
Reto 1: identificando objetos
Programación Orientada a Objetos. Análisis
Clases en UML y su sintaxis en código
Modelando nuestros objetos Uber
¿Qué es la herencia?
Aplicando Herencia a nuestro proyecto Uber
Reto 2: analicemos un problema
Clases, Objetos y Método Constructor
Creando nuestras carpetas iniciales para el curso
Definiendo clases en Java y Python
Definiendo Clases en JavaScript
Objetos, método constructor y su sintaxis en código
Objetos. Dando vida a nuestras clases en Java y Python
Declarando un Método Constructor en Java y JavaScript
JavaScript orientado a objetos, lo más nuevo
Declarando un método constructor en Python
Herencia
Aplicando herencia en lenguaje Java y PHP
Solución del reto de herencia en PHP
Aplicando herencia en lenguaje Python y JavaScript
Otros tipos de Herencia
Reto 4
Encapsulamiento
Encapsulamiento
Encapsulando atributos en Java
Polimorfismo
Generando polimorfismo en Java
Generando polimorfismo en PHP
Cierre del curso
El Diagrama UML de Uber
Conclusiones
Bonus: Qué es la Programación Orientada a Objetos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Anahí Salgado Díaz de la Vega
Los Objetos son aquellos que tienen propiedades y comportamientos, también serán sustantivos.
Las Propiedades también pueden llamarse atributos y estos también serán sustantivos. Algunos atributos o propiedades son nombre, tamaño, forma, estado, etc. Son todas las características del objeto.
Los Comportamientos serán todas las operaciones que el objeto puede hacer, suelen ser verbos o sustantivos y verbo. Algunos ejemplos pueden ser que el usuario pueda hacer login y logout.
Aportes 542
Preguntas 29
Apareció el perrito y yo
Este tipo de cursos deberíamos tomarlos antes de aprender a algún lenguaje de programación.
Nota de clase:
Un Objeto: Son aquellos que tienen propiedades y comportamientos. Un objeto puede ser algo físico o conceptual.
Una Propiedad: También llamado atributo, son las características o las propiedades que describen a un objeto. Estas propiedades siempre deben ser de forma sustantiva. ej: color, tamaño, etc.
Un **Comportamiento **o método: Son las acciones que puede realizar un objeto, es decir lo que puede hacer dicho objeto.
Los objetos (Sustantivos) tienen cualidades (Adjetivos) y comportamientos (Verbos).
Esto es muy importante porque es la base de la POO, un objeto tiene propiedades y comportamientos, y básicamente las propiedades son aquellas cosas que describen al objeto, y los comportamientos son todas esas cosas que dicho objeto puede hacer, e igual, para evitar confusiones, hay varias formas de llamar a las propiedades y comportamientos, pero son lo mismo:
propiedades/atributos/variable <- Es lo mismo (variable solo aplica si está dentro de una clase, no es una variable que usarías comúnmente en algún lenguaje)
métodos/acciones/comportamientos/funciones <- Es lo mismo (al igual que con variable, funciones solo aplica dentro de una clase)
Dios no puede ser un objeto, pues Dios es verbo no sustantivo.
Si lo sé, mal chiste xD
Un ejemplo de objetos, podría ser en una sistema de ventas de videojuegos. Donde identificamos el objeto videojuego:
-------------------------------------------------------
--------------------Videojuego-------------------
-------------------------------------------------------
-ID: integer
+Titulo: string
+Duracion: string
+Clasificacion: string
+Precio: float
-------------------------------------------------------
-ProbarDemo()
-VenderVideojuego()
-------------------------------------------------------
Lo primero que te que hacer cuando tengamos un problema es identificar Objetos. Tenemos que observar nuestro problema, no ir directo al código.
Para identificar objetos debemos tener en cuenta que estos siempre van a tener propiedades y comportamientos. Además, estos siempre serán sustantivos.
Los objetos podrán ser físicos pero también podrán ser conceptuales. Estos siempre van a tener un nombre, y este nombre será un sustantivo. Ej:
Las propiedades también pueden llamarse atributos, y estas serán sustantivos.
💡 Es importante tener en cuenta que el atributo no sea el resultado. Ej: el atributo de ser nombre, no el resultado del atributo.
Además, los objetos también puede tener comportamientos. Estos serán todas las operaciones del objeto, suelen ser ‘verbos’ o ‘sustantivo y verbo’.
📒 Es importante tener en cuenta el contexto en que están mis objetos.
Como siempre las clases de Anahí son muy buenas, la manera en que las prepara, las explica es excelente!
Ejemplo de la clase:
Objeto: Perro
Propiedades:
+nombre
+color
+raza
+altura
Comportamientos:
+ladrar
+comer
+dormir
+correr
Con contexto Sistema de Adopciones
Propiedades:
+id
+nombre
+color
+raza
+altura
Comportamientos:
+serAdoptado
El perrito feliz porque no lo excluyeron:
la analogia que siempre me ha gustado para identificar y comprender el paradigma es imaginar a las clases como moldes para preparar galletas, obviamente las galletas serian nuestros objetos y los atributos para cada objeto serian los ingredientes que tienen cada una de ellas, los metodos serian las acciones que realizaremos con dichas galletas. se ve muy simple, pero me sirvio para que niños comprendieran mejor el paradigma
🐶 Analizando el Objeto:
Propiedades
Comportamientos
todo lo que nos rodea es una objeto con atributos y múltiples acciones
¿No sería más apropiado pensar las Propiedades, Atributos con los conceptos Adjetivan al Objeto pero expresados con un cuantificador?
Ej Tamaño -> grande, mediano, chico, muy chico -> 64, 32, 16, 8
En conclusión
Objeto-> Sustantivo.
Propiedades -> Adjetivos
Métodos -> verbos
Pregunta de vienen en varias certificaciones que he tomado:
No es mucho, pero puede ayudarte a no volver a pagar un certificado que siempre son caros XD
Ahora si viene lo chido
Este curso debería ir como principal en cada escuela de desarrollo. hasta ahora mucho lo que he aprendido viene a tener sentido. literalmente es el fundamento, por eso muchos abandonan el camino.
Sustantivo = nombre del Objeto
Atributos son las caracteristicas propias del objeto.
Comportamientos son las acciones que puede ejecutar el objeto
Ejemplo
Objeto Persona
Atributos
Estatura, color de pelo, color de ojos, peso etc
Métodos (Comportamiento)
Comer, dormir, caminar, hablar, etc
" No me interesa si el perrito come o duerme, solo que sea adoptado"
Propiedades del perrito:
Atributos: sexo, edad, vacunas,peso,salud,etc.
Los atributos no serían adjetivos en vez de sustantivos como dices en el vídeo?
cuando dijo: una persona puede ser un objeto.
Mi mente: JAJAJA obvio, eso pienso de mi ex.
*Aparece un perrito
Automáticamente yo:
Mejor explicado que en la universidad! HAHAHAHAH.
Sera posible que pelaje tambien sea una propiedad?
Es genial aprender de una persona con tan buena energía y que evidencia amar lo que hace. Espero algún día conocerla en persona y cruzar unas palabras. Gracias Ann !
Excelente manera de aplicarlo en un contexto, por cierto, me encanta el animo con el que Anahí explica un tema que a muchos programadores se les queda en el tintero al momento de programar!
Regla de oro para definirlos:
Objeto = Sustantivo
Atributo = Sustantivo
Comportamiento = Verbo o Verbo + Sustantivo
En el canal de pildoras informaticas te explica chido la programación orientada a objetos espero alguien le sirva
En el paradigma de programación orientada a objetos (POO, o bien OOP en inglés), un objeto es una unidad dentro de un programa de computadores que consta de un estado y de un comportamiento, que a su vez constan respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecución. Un objeto puede ser creado instanciando una clase, como ocurre en la programación orientada a objetos, o mediante escritura directa de código y la replicación de otros objetos, como ocurre en la programación basada en prototipos.
Estos objetos interactúan unos con otros, en contraposición a la visión tradicional en la cual un programa es una colección de subrutinas (funciones o procedimientos), o simplemente una lista de instrucciones para el computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a un servicio.
La creacion de objetos va de la mano de tener una buena capacidad de abstraccion. Ya que la misma te permitira tomar los objetos de la vida real, llevarlos a su minima expresion, tomar solo lo necesario para el escenario que queramos resolver y luego implementarlo en codigo.
Objeto Perro
Propiedades:
+nombre
+raza
+color
+edad
+peso
+estatura
Comportamiento:
+ladrar()
+comer()
+correr()
+jugar()
+irBaño()
+dormir()
La edad podría ser otro atributo del perro
POO: Todo es un objeto y esos objetos tienen propiedades y comportamientos. lml
Para entender mejor el concepto de objeto, Les sugiero fuertemente ver esta clase gratuita del MIT:
Con la ayuda de la profe Anahí y ese video complementario, al fin logré entender qué es un objeto JAJAJA
Aveces siento que la profesora se enreda al querer ser clara y da varias vueltas a lo mismo, puede confundir a estudiantes que no tengan experiencia desarrollando con objetos antes.
Notas:
Cuando tenemos un problema debemos Identificar:
1.) Los objeto: [Propiedades y Comportamientos ] -> Son sustantivos, pueden ser físicos o conceptuales
2.) Los Atributos: Las características de los objetos
3.) Los comportamientos: Operaciones del objeto
Un objeto puede ser:
1.concreto(físico) ejem: Un usuario.
2.abstracto(conceptual) ejem: El login de un pag. web.
Propiedades ó atributos serán sustantivos. Los atributos son las características o propiedades de un objeto y pueden tener comportamientos, acciónes del objeto, que suelen ser verbos ó sustantivos y verbos.
Les comparto mi resumen.
Lo más importante es el
Tener en cuenta cual es el problema que se quiere resolver y buscar una solución que se adapte a ese CONTEXTO. 🛠
Información resumida de esta clase
#EstudiantesDePlatzi
La programación orientada a objetos resuelve problemas escribiendo código
Cuando tengamos un problema lo primero que debemos hacer es definir los objetos
Debemos ver el problema como un escenario, debemos observar y así podemos enterarnos de los objetos dentro del problema
Un objeto tiene propiedades y comportamientos, siempre y serán sustantivos
Un sustantivo es un nombre que se utiliza para nombrar un algo
Los objetos pueden ser físicos o conceptuales
Un objeto conceptual es algo que vive en nuestra mente o el pensamiento vive en inteligencia infinita
Las propiedades pueden llamarse atributos y serán sustantivos
Algunos atributos o propiedades pueden ser nombre, tamaño, forma o estado
Sustantivos son las propiedades que componen al objeto
Los comportamientos son todas las acciones que realiza el usuario y serán verbos
Algo muy importante es entender el contexto de nuestros objetos
Para cada objeto defino sus propiedades y comportamientos
Otra forma de ver el valor que le asignamos a un atributo es diciendo que el valor que estamos asignando es un adjetivo de esa propiedad es decir, una descripcion particular.
e.g
color="rojo"
Estamos describiendo el color de nuestro objeto, el objeto es de color rojo.
Resumiendo bastante, para crear POO se hacen clases y luego se crean objetos a partir de dichas clases, que constituyen el modelo a partir del que se estructuran los datos y los comportamientos. Y es que quizá el concepto más importante sea distinguir entre clase y objeto.
Una clase es una plantilla, que define de modo genérico cómo serán los objetos de un determinado tipo. Por ejemplo, una clase para representar a animales puede denominarse ‘animal’ y disponer de una serie de atributos, como ‘nombre’ o ‘edad’ (que habitualmente son propiedades), y una serie con los comportamientos que estos pueden tener, como caminar o comer, y que a su vez se implementan como métodos de la clase (funciones).
En POO comúnmente el concepto que se utiliza es que un objeto
Ahora me queda claro como se relacionan éstos conceptos
OBJETO ( 🐶 Físco ó 💭 Conceptual )
Contiene
🐕 Propiedades 🐾 Comportamientos
Que se refieren a los:
Atributos y Métodos.
Variables y Funciones.
Respectivamente
Para que se les haga màs facil saber los atributos que tendra su objeto piensenlo como si fuera una entidad para una base de datos
26/03/2022 Entendiendo verdaderamente POO…
Objeto telefonoMovil
Propiedades
Objeto: Celular
Propiedades (Atributos):
Si tengo una clase Triangulo y quiero obtener su área, el método de obtener el área le corresponde al Triangulo ? o le corresponde a otra clase encargada de obtener el área como por ejemplo una clase abstracta ? esa es mi pregunta
https://www.teatroabadia.com/es/uploads/documentos/iagramas_del_uml.pdf
les recomiendo esta lectura que complementa lo que menciona esta lección
Cuál sería el contexto del objeto FACTURA DE VENTA.
Cuáles serían algunas de sus propiedades y comportamientos?
el metodo son las cosas que puede hacer nuestro atributo
¿Como seria desglosar un Planeta en un objeto? 🤔
Objeto físico Portátil
Atributos
Comportamiento
Mi aporte del objeto Perro.
Deberia de haber una sección de shitpost para los don comedia.
Todo lo que nos rodea es un Objeto u Objetable (convertirse en un objeto)
Cuando tengamos un problema lo primero que debemos hacer es identificar Objetos.
Los Objetos son aquellos que tienen propiedades y comportamientos, también serán sustantivos. Pueden ser físicos o conceptuales.
Las Propiedades también pueden llamarse atributos y estos también serán sustantivos. Algunos atributos o propiedades son nombre, tamaño, forma, estado, etc. Son todas las características del objeto.
Los Comportamientos serán todas las operaciones que el objeto puede hacer, suelen ser verbos o sustantivos y verbo. Algunos ejemplos pueden ser que el usuario pueda hacer login() y logout(), makeReport().
Ejemplo
2+2 son 4, creo que he visto eso en los videos de freddy.
me mentiste, me dijiste que no harias el ejemplo del perrito jajajajajajajajaja. Es para que vean que si estamos pendientes de las clases jajajajajajajaja
me pareció muy interesante, en algunas partes me chocó lo de que el nombre es la propiedad y no el nombre en sí, pero vengo de enseñanza convencional y pasé de noche en algunas cosas jajajjajaa, me agrada expandir los horizontes y no quedarme estancado
Hola dejo mi humilde aporte :3
-----Perro----
Propiedades:
+nombre
+color
+raza
+altura
+peso
+sexo
+nacimiento
Comportamientos:
+ladrar
+comer
+dormir
+correr
+defecar
+reproducirse
+olfatear
+jugar
+chillar
En OOP, un objeto es una entidad que representa un elemento del mundo real o un concepto abstracto y que tiene una combinación de propiedades (atributos) y comportamientos (métodos). Cada objeto es una instancia de una clase, que es una plantilla que define qué propiedades y comportamientos tienen los objetos que se crean a partir de ella.
Para crear un objeto, se utiliza una constructora, que es una función especial que se utiliza para crear una nueva instancia de una clase. En la constructora se asignan valores a los atributos y se definen las acciones que puede realizar el objeto. Una vez creado, el objeto puede interactuar con otros objetos y utilizar sus métodos para realizar tareas específicas.
Es Identificar los objetos: Propiedades, comportamientos.
puedes ser objetos o conceptuales
Atributos son sustantivos y también tienen comportamiento
comportamiento: operaciones del objeto, son verbos, sustantivos
Si el objeto es un sustantivo, las propiedades ¿no serían adjetivos de ese objeto en lugar de sustantivos como vos decís?
Mis notas!
Objetos (Físico “Una persona” o conceptual “Sesión De Usuario”) siempre va a tener:
Durante toda mi carrera batallé con este tema, me encantó esta explicacion!!
No estoy de acuerdo con el comportamiento serAdoptado puesto que es algo que el perro no puede hacer. Más bien, a una persona le pongo un comportamiento de adoptarMascota(Perro perro)
Los doggos!!
Perro
Ficha adopcion
¡Apuntes!
En esta clase se definió lo que es un objeto.
Dentro de la programación orientada a objetos, el primer paso siempre es la identificación de los mismos. Así, para identificarlos podemos definirlos como aquellas cosas que tienen tanto propiedades como comportamientos. Un objeto, definido de esta manera, tendrá tanto unas características concretas (propiedades) como un abanico de acciones posibles de ejecutar (comportamientos).
Ahondando más en la definición, las propiedades de un objeto son las cualidades que, dentro del contexto, consideramos importantes. Por ejemplo, las cualidades de un doctor, en un hospital, deben limitarse a lo que se necesite de este en terminos del servicio de salud (como su especialidad, sus horarios, sus años de experiencia etc…). A nadie le importa (y tampoco es relevante en el proyecto) si el doctor es gay, está casado o incluso si es presidente del club de fans de Harry Potter, pues no tiene nada que ver con el contexto del caso (está en un hospital).
Por otro lado, los comportamientos son las acciones que pueden darse en el contexto del caso. Volviendo al ejemplo del doctor, sus acciones tienen que enmarcarse en lo que debería hacer en un hospital, no fuera de este. Así, jugar golf, ir de fiesta o poder correr 100mts en 10 segundos son acciones que a nadie le importan. Las acciones que en este contexto sí son relevantes son, por ejemplo, sanar heridas, hacer diagnósticos, establecer límites profesionales, etc…
El entender de esta manera a los objetos permite ver que pueden ser divididos entre los físicos y los conceptuales. Lo que los diferencia es que mientras el primero se puede tocar, el segundo no. Este último, en tanto objeto, debe regirse por el mismo criterio de definición: estar implicado en un contexto (del cual se desprenden tanto sus propiedades como comportamientos).
clase perro puede tener: edad, raza, dueño etc
Objetos:
Los objetos se identifican porque tienen propiedades y comportamientos (sus nombres son sustantivos).
Los objetos pueden ser físicos (presentes en la realidad como casa, perro, coche, etc) o conceptuales (presentes en la realidad virtual como registro, sesión, etc)
Las propiedades o atributos son sustantivos que señalan una característica del objeto, no confundamos los resultados o valores del atributo con el atributo en sí
Los comportamientos son las operaciones que puede realizar el objeto, suelens er verbos o sustantivos con verbos (indican acciones)
Nota:
El contexto es muy importante de el dependen las propiedades y comportmaientos relevantes del objeto
Atributos:
+ sexo
+ pelaje
+ orejas
+ edad
Comportamientos:
+ saltar
+ nadar
+ atacar
+ tomar_agua
😃
También los atributos deberían ser relevantes para el problema que queramos solucionar.
Por ejemplo le agregaría el atributo carácter.
Si queremos adoptar una mascota esto es relevante a la hora de ser elegible (por ejemplo si el perro es sociable con otros animales porque ya tenemos un gato en nuestra casa) y al fin de cuentas es una característica propia del animal y por tanto entiendo un atributo y no un método.
Con esto voy a que, a la hora de pensar en los atributos no hay que perder de vista el entorno y que cosas van a ser relevantes para nuestro problema a solucionar 😃
Anahí en el primer vídeo: no vamos a ver ejemplos con perritos
Also Anahí en el 8vo vídeo: ya que mi gente! a ver veamos el ejemplo del perrito! xd
Rescato algo muy importante de la explicacion de Anahi sobre ir directo al codigo. Una parte muy importante del paradigma de objetos es la forma de pensar. Hay una abstraccion que ya casi no se nombra (le gana la abstraccion como caracteristica de implementacion) que es la forma de desarrollar. Como dice Anahi en la funcional es muy normal atacar directamente el codigo y mientras se codifica tomar decisiones. En la orientacion a objetos el diseño de las clases es muy importante porque define “contratos” de esa clase en relacion a su funcionalidad y relacion con otros objetos (mediante mensajes) lo que hace que se pueda dividir el desarrollo en distintos equipos ya que deben respetar ese contrato (que la interfaz ayuda a declarar) con lo que al diseñar se “abstrae” de la implementacion (asbtraccion como forma de pensamiento) y cuando se unen distintos objetos desarrollados por separado si el diseño esta bien hecho y las clases cumplen con las especificaciones debe funcionar. Incluso se puede cambiar una clase mientras respete la implementacion del contrato sin que afecte al sistema (contrario a la funcional donde cualquier cambio podia tener impacto). De esa forma al codificar se debe respetar la interface y si se encuentra un impedimento se debe volver al diseño porque cada objetos se comunica con otros mediante mensajes (definidos en la “interfaz” o contrato) evitando las decisiones al momento de codificar (salvo metodos privados que no afecten el contrato y sean necesario para el funcionamiento). Lo que buscaba el paradigma era cambiar el modo de pensar para evitar los problemas de la programacion funcional (y se recomendaba a tal efecto que aunque no se codificara orientado a objetos se diseñe orientado a objetos) Por eso me parece muy importante destacar ese punto de la explicacion de Anahi.
Algo muy importante para tomar las características de un objeto es el contexto.
Objetos (Fisicos y conceptuales)
Propiedades : tambien pueden llamarse atributos seran sustantivos : nombre, tamaño, forma y estado (son todas las caracteristicas)
Comportamiento : seran todas las operaciones del objeto, suelen ser verbos o sustantivos y verbo
login(), logout(), makeReport()
Objeto Perro
Atributos nombre, color, raza y altura
Comportamiento ladra, comer , dormir , correr
Adopciones
comportamiento
Para entender mejor esto podemos decir que cada objeto hace la función de un mini programa dentro de la aplicación, donde cada objeto contiene sus propios datos, su propia lógica y se comunican entre ellos.
Anahi ha dicho algo muy importante y es que los objetos de un programa no son solo los que tiene apariencia visual en la pantalla, como en el caso de los botones, contadores o naves en un video juego, pero también pueden ser objetos una matriz o un temporizador.
¿Pero como saber si algo en mi aplicación puede ser un objeto?
Una pista o ayuda puede ser, si puedo poner delante de ese elemento la palabra (el o la) , ya tenemos aquí posibles objetos.
La hora.
La cuenta.
El carro
El ojo.
Pero ojo que podemos decir también la explosión, el sonido, como vemos estos son métodos o acciones que provienen de un objeto por tanto se convierten en los métodos.
En el contexto del sistema de adopciones yo añadiría el atributo estado para saber si ya ha sido adoptado o no.
Definición
Sustantivo es el nombre que le damos a las cosas, las personas, los animales o los lugares, es decir, es la palabra que sirve para designar a todos los seres, reales o imaginarios. Los sustantivos son todas las palabras que podemos utilizar para referirnos también a los objetos, ya sea material abstracto, animado o inanimado. Muchas de las palabras que se utilizan diariamente son sustantivos y son también el sujeto de la oración.
Características
Las características más importantes que tienen los sustantivos son las siguientes:
Los sustantivos siempre se deben iniciar a escribir utilizando una letra mayúscula.
Son palabras que pueden escribirse en masculino o en femenino.
También pueden ser escritos en forma singular o plural.
Funcionan como el núcleo de un sintagma nominal.
Se acompañan por lo general de adjetivos.
Tienen concordancia con el adjetivo y el número.
El tema del ‘Perro’ lo mencionó como ejemplo base, después lo extendió a ‘Adopciones’.
Objetos, propiedades y comportamientos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?