Bienvenida e Introducción

1

¿Por qué aprender Programación Orientada a Objetos?

2

¿Qué resuelve la Programación Orientada a Objetos?

3

Paradigma Orientado a Objetos

4

Lenguajes Orientados a Objetos

5

Instalando Visual Studio Code

6

Diagramas de Modelado

7

Qué es UML

Orientación a Objetos

8

Objetos

9

Abstracción y Clases

10

Modularidad

11

Analizando Uber en Objetos

12

Reto 1: identificando objetos

Programación Orientada a Objetos. Análisis

13

Clases en UML y su sintaxis en código

14

Modelando nuestros objetos Uber

15

¿Qué es la herencia?

16

Aplicando Herencia a nuestro proyecto Uber

17

Reto 2: analicemos un problema

Clases, Objetos y Método Constructor

18

Creando nuestras carpetas iniciales para el curso

19

Definiendo clases en Java y Python

20

Definiendo Clases en JavaScript

21

Objetos, método constructor y su sintaxis en código

22

Objetos. Dando vida a nuestras clases en Java y Python

23

Declarando un Método Constructor en Java y JavaScript

24

JavaScript orientado a objetos, lo más nuevo

25

Declarando un método constructor en Python

Herencia

26

Aplicando herencia en lenguaje Java y PHP

27

Solución del reto de herencia en PHP

28

Aplicando herencia en lenguaje Python y JavaScript

29

Otros tipos de Herencia

30

Reto 4

Encapsulamiento

31

Encapsulamiento

32

Encapsulando atributos en Java

Polimorfismo

33

Generando polimorfismo en Java

34

Generando polimorfismo en PHP

Cierre del curso

35

El Diagrama UML de Uber

36

Conclusiones

37

Bonus: Qué es la Programación Orientada a Objetos

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Programación Orientada a Objetos: POO

Curso de Programación Orientada a Objetos: POO

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Objetos

8/37
Recursos

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.

Aportes 456

Preguntas 25

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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)

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

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()
-------------------------------------------------------

Objetos


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:

  • Usuario, este es un objeto físico.
  • Sección de usuario, es un objeto conceptual.
  • Cuenta de un banco, es un objeto conceptual.

Las propiedades también pueden llamarse atributos, y estas serán sustantivos.

  • Usuario
    ———
    nombre
    tamaño
    forma
    estado

💡 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’.

  • login() → Verbo
  • logout() → Verbo
  • makeReport() → Sustantivo y verbo

📒 Es importante tener en cuenta el contexto en que están mis objetos.

🐶 Analizando el Objeto:
Propiedades

  • nombre
  • altura
  • peso
  • raza
  • edad

Comportamientos

  • comer
  • Ladrar
  • Jugar
  • Caminar

todo lo que nos rodea es una objeto con atributos y múltiples acciones

Dios no puede ser un objeto, pues Dios es verbo no sustantivo.

Si lo sé, mal chiste xD

¿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:

  • ¿Cuál es la diferencia entre un objeto y una clase?
    R: El objeto es una instancia de una clase.

No es mucho, pero puede ayudarte a no volver a pagar un certificado que siempre son caros XD

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

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

Los atributos no serían adjetivos en vez de sustantivos como dices en el vídeo?

Ahora si viene lo chido

Propiedades del perrito:

  • Color de pelaje
  • Tipo de pelaje
  • Vacunas
  • Nombre del dueño

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 !

Atributos: sexo, edad, vacunas,peso,salud,etc.

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!

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


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

  • Es la Instancia de una clase, que es donde se encuentran las propiedades y comportamientos.

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…

En el canal de pildoras informaticas te explica chido la programación orientada a objetos espero alguien le sirva

Objeto telefonoMovil
Propiedades

  • Tamaño
  • Color
  • Marca
  • Peso
  • Procesador
  • Tipo de pantalla
  • Almacenamiento Interno
  • Almacenamiento Externo
  • Tipo de cámara trasera
  • Tipo de cámara frontal
  • Flash
    Comportamientos
  • Llamar
  • Tomar fotos
  • Enviar mensajes
  • Guardar archivos
  • Descargar aplicaciones

Objeto: Celular
Propiedades (Atributos):

  • Tamaño de pantalla
  • Peso
  • Color, etc.
    Comportamientos (Métodos):
  • Enviar mensaje
  • Hacer una llamada
  • Tomar una fotografía
  • Ingresar a una aplicación, etc.

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

  • Tamaño
  • Color
  • Marca
  • Puertos
  • Métodos de entrada

Comportamiento

  • Escritura y lectura de documentos
  • Entretenimiento
  • Movilidad
  • Ejecución de programas

Mi aporte del objeto Perro.

Regla de oro para definirlos:

Objeto = Sustantivo
Atributo = Sustantivo
Comportamiento = Verbo o Verbo + Sustantivo

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)

Objetos

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

  • Objeto: Perro
  • Propiedades: + nombre, + color, + raza, + altura.
  • Comportamientos: + ladrar, + comer, + dormir, + correr.

2+2 son 4, creo que he visto eso en los videos de freddy.

Les comparto mi resumen.

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

Lo más importante es el

Contexto


Tener en cuenta cual es el problema que se quiere resolver y buscar una solución que se adapte a ese CONTEXTO. 🛠

Atributos:
+ sexo
+ pelaje
+ orejas
+ edad
Comportamientos:
+ saltar
+ nadar
+ atacar
+ tomar_agua

*Aparece un perrito
Automáticamente yo:

😃

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

  • Id
  • nombre
  • color
  • raza
  • altura

comportamiento

  • ser Adoptado ()

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:

  1. Los sustantivos siempre se deben iniciar a escribir utilizando una letra mayúscula.

  2. Son palabras que pueden escribirse en masculino o en femenino.

  3. También pueden ser escritos en forma singular o plural.

  4. Funcionan como el núcleo de un sintagma nominal.

  5. Se acompañan por lo general de adjetivos.

  6. Tienen concordancia con el adjetivo y el número.

https://www.euston96.com/sustantivos/

El tema del ‘Perro’ lo mencionó como ejemplo base, después lo extendió a ‘Adopciones’.

Objetos, propiedades y comportamientos.

Cierto lo que dices Anahi, yo siempre me voy al codigo antes de saber como resolverlo

En el video anterior, Anahí habla de una lectura en el minuto 5:12, sin embargo, no aparece en los archivos, a cuál lectura se refiere?
Gracias

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.

Adoptante - Animal (Abstractos)
Persona - Empresa (Adoptante)
Perro - gato (Animal)
Adopción (conceptual)

¿Los comportamientos son los métodos?

Perro
Propiedades
Salud
Raza
Color
Edad
Nombre
Tamaño
Sexo
Peso

Comportamiento
Comer
Jugar
Morder
Caminar
Correr

muy buena didactica de enseñanza …

si puedes representarlo en un dibujo, es un objeto

El contexto es un elemento importante a la hora de diseñar un programa porque nos permite identificar lo que realmente necesitamos.

Objeto Perro:

Atributos
Nombre
Raza
Color
Peso
Altura

Comportamiento
Ladrar
Dormir
Comer
Correr
Beber Agua

Sustantivo: Perro

Propiedades:

Color de ojos.
Tamaño de orejas.
Edad.
Tiene alguna enfermedad.

Comportamientos:

Dar amor.
Amistad incondicional
Vigilar (Ladrar)
Jugar

Minuto 4:40 barras

Objeto Perro (faltantes)
Atributos:

Nombre dueño
Vacunado
Entrenado

Comportamiento:

Morder
Olfatear

EDAD
PESO
SEXO
.

edad
genero

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

Muy bien ejemplificado.

DIVIDE Y VENCERÁS 👍 ✌💪

Para no decir los clásicos de edad, sexo, tamaño etc.

Atributos perro:

  • Fuerza al ladrar
  • Velocidad para correr
  • Tamaño de la mordida

Se puede resumir objeto como aquel elemento o particularidad de un sistema en el que podemos especificar un comportamiento y atributos que pertenezcan al mismo.

Todos los atributos y comportamientos del objeto deben ser analizados acorde al contexto sobre el cual se lo vaya a usar.

Atributos o Propiedades: Son las cualidades del objeto, sus caracteristicas(adjetivos). El resultado serian los valores, ej;
Atributos: Ancho, alto, lpeso , color, nombre.
Valores: 10cm, 4 ft, 35 kg, verde. Pedro.
Métodos o Comportamientos u Operaciones: Son las acciones que realiza el objeto, por ej correr, volar, log in, log out(verbos o sustantivos con verbos).

Primero es observar el problema, como si fuera un esenario y ser nosotros los expectadores.

El contexto sobre el cual analizas el objeto define los atributos y comportamientos.

Sustantivo y verbo puede ser
Login(), logout() = verbo
makeReport() , sustantivo = reporte, verbo = hacer

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.