Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: 15-19 en 3 Mayo 2017, 15:41 pm



Título: ¿Que es exactamente la programacion orientada a objetos?
Publicado por: 15-19 en 3 Mayo 2017, 15:41 pm
Me gustaria saber que es exactamente y para que sirve.
Gracias


Título: Re: ¿Que es exactamente la programacion orientada a objetos?
Publicado por: engel lex en 3 Mayo 2017, 16:09 pm
lee esto y explica lo que no entiendes

https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos (https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos)

en resumen de para sirve, para facilitarle la vida al programador


Título: Re: ¿Que es exactamente la programacion orientada a objetos?
Publicado por: 15-19 en 3 Mayo 2017, 18:13 pm
lee esto y explica lo que no entiendes

https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos (https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos)

en resumen de para sirve, para facilitarle la vida al programador
"La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial."
Esto en especifico XD


Título: Re: ¿Que es exactamente la programacion orientada a objetos?
Publicado por: 3n31ch en 3 Mayo 2017, 18:40 pm
Quedándome con la esencia (y omitiendo factores técnicos) te puedo indicar que la programación orientada a objetos es una metodología que intenta abstraer la programación de un conjunto de funciones lógicamente ordenadas a un conjunto de elementos (objetos) generados a partir de un patrón (clase) con atributos y métodos. Intenta asemejarse de alguna forma lo que ves en tu día a día, por ejemplo, una silla:

La silla fue creada a partir de un plano o patrón que definía que una silla tenía que tener una forma definida, un material, un color y tenía que servir para sentarse.

Código:
clase Silla {
atributo forma_de_silla = "Cuatro patas, un respaldo, ..."
atributo color = ?
atributo material = ?

contructor Silla(nuevo_color, nuevo_material) {
color = nuevo_color
material = nuevo_material
}


funcion senrase() {
.....
}
}

Ese patrón, como puedes ver, define la forma de la silla e indica que el color y el material es libre (se le puede asignar un valor coherente a gusto del usuario). Y bajo estos atributos aparece un “constructor" que justamente lo que hace es que te pide ingresar un nuevo color y un nuevo material y esos dos datos lo usara para crear la silla y entregártela.

Una vez tienes la silla ves que además tiene un "método" o función llamado sentarse(), entonces te das cuenta que con esa clase podrías crear distintos tipos de silla con distintos colores, etc.

Código:
silla1 = nueva Silla(rojo, plastico)
silla2 = nueva Silla(amarillo, plastico)
silla3 = nueva Silla(cafe, madera)

silla1.sentarse()
silla2.sentarse()
silla3.sentarse()

Y al sentarse te das cuenta que las tres funcionan igual ya que todas vienen de un mismo patrón (clase).

Entonces un patrón es una clase y cada elemento creado a partir de él es un objeto.

Con el tiempo te das cuenta que también existe una clase mesa, que era idéntica a la silla solo que la forma cambia y el cómo se usa también. Entonces para no crear una mesa desde un plano creado desde 0 y siempre tener una base para crear un plano de un mueble, se te ocurre crear un plano "padre" el cual definirá todo lo que puede tener un mueble: material, color, utilidad. Luego a tu plano mesa y silla le dices "ustedes, hereden de mueble todo lo que tiene y luego yo modifico su forma y utilidad" de esa forma te ahorras líneas de código...

A la larga te das cuenta que la programación orientada objetos no es más que un conjunto de patrones e instancias del mismo, cada uno con sus funcionalidades y atributos.

(He omitido aspectos como la encapsulación u otros, que quizás sea más oportuno ver con un ejemplo completo del paradigma)


Título: Re: ¿Que es exactamente la programacion orientada a objetos?
Publicado por: 15-19 en 4 Mayo 2017, 16:47 pm
Muchas gracias por la explicacion. Ahora me queda mas claro especificamente lo que es.

Un saludo