Qué es la programacion orientada a objetos

Valoración del artículo:
Introducimos para los más profanos las bases sobre las que se asienta la Programación Orientada a Objetos.
Publicado: 24/7/01
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.

Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.

Motivación

Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos problemas. Para conseguir que los esfuerzos de los programadores puedan ser utilizados por otras personas se creó la POO. Que es una serie de normas de realizar las cosas de manera que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el código se pueda reutilizar.

La POO no es difícil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente según el programador. Aunque podamos hacer los programas de formas distintas, no todas ellas son correctas, lo difícil no es programar orientado a objetos sino programar bien. Programar bien es importante porque así nos podemos aprovechar de todas las ventajas de la POO.

Cómo se piensa en objetos

Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar.

Pues en un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.

Por poner otro ejemplo vamos a ver cómo modelizaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2.

La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.

Estos objetos se podrán utilizar en los programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestione un taller de coches utilizarás objetos coche. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc.

Clases en POO

Las clases son declaraciones de objetos, también se podrían definir como abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase. En los ejemplos anteriores en realidad hablábamos de las clases coche o fracción porque sólo estuvimos definiendo, aunque por encima, sus formas.

Propiedades en clases

Las propiedades o atributos son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos.

Métodos en las clases

Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.

Objetos en POO

Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar (que viene de una mala traducción de la palabra instace que en inglés significa ejemplar). Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o definición de fracción sería la clase, pero cuando ya estamos hablando de una fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.

Para crear un objeto se tiene que escribir una instrucción especial que puede ser distinta dependiendo el lenguaje de programación que se emplee, pero será algo parecido a esto.

miCoche = new Coche()

Con la palabra new especificamos que se tiene que crear una instancia de la clase que sigue a continuación. Dentro de los paréntesis podríamos colocar parámetros con los que inicializar el objeto de la clase coche.

Estados en objetos

Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un coche la propiedad color tomará un valor en concreto, como por ejemplo rojo o gris metalizado. El valor concreto de una propiedad de un objeto se llama estado.

Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operador punto.

miCoche.color = rojo

El objeto es miCoche, luego colocamos el operador punto y por último el nombre e la propiedad a la que deseamos acceder. En este ejemplo estamos cambiando el valor del estado de la propiedad del objeto a rojo con una simple asignación.

Mensajes en objetos

Un mensaje en un objeto es la acción de efectuar una llamada a un método. Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha estamos pasándole el mensaje “ponte en marcha”.

Para mandar mensajes a los objetos utilizamos el operador punto, seguido del método que deseamos invocar.

miCoche.ponerseEnMarcha()

En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar paréntesis igual que cualquier llamada a una función, dentro irían los parámetros.

Otras cosas

Hay mucho todavía que conocer de la POO ya que sólo hemos hecho referencia a las cosas más básicas. También existen mecanismos como la herencia y el polimorfismo que son unas de las posibilidades más potentes de la POO.

La herencia sirve para crear objetos que incorporen propiedades y métodos de otros objetos. Así podremos construir unos objetos a partir de otros sin tener que reescribirlo todo.

El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que estamos trabajando, y abstraernos para definir un código que sea compatible con objetos de varios tipos.

Son conceptos avanzados que cuesta explicar en las líneas de ese informe. No hay que olvidar que existen libros enteros dedicados a la POO y aquí solo pretendemos dar un repaso a algunas cosas para que os suenen cuando tengáis que poneros delante de ellas en los lenguajes de programación que debe conocer un desarrollador del web.

Ejemplo concreto de programación orientada a objetos

Para conseguir un ejemplo concreto de lo que es la programación orientada a objetos, podemos entrar en el Manual de PHP 5. Realmente este manual explica las características de orientación a objetos de PHP 5 y ofrece ejemplos concretos de creación de clases con características como herencia, polimorfismo, etc.

Comentarios
Fueron enviados 85 comentarios al artículo
48 comentarios no revisados
37 comentarios revisados:
Por: Mauriel Rosero
08/1/03
Creo que el articulo esta bueno lo tomare como referencia

creo que hay que hacer enfasis en los 3 conceptos fundamentales de la la POO encapsulacion, herencia y polimorfismo al igual que la abstraccion

Saludos...
Por: Marivi
16/1/05
Hola!! Quiero felicitar al autor de este artículo porque me pareció que escribió lo elemental y con las palabras precisas para definir términos importantes de la Programación de Objetos. Realmente me sirvió mucho la información. Gracias!!
Por: rigoberto muñoz jimenez
31/1/05
me fue de mucha utilidad tu articulo, me ayudo a resolver mis dudas; sin embargo considero que te falto mencionar ejemplos sobre el tema tratado ademas de especificar de manera mas practica y concisa las caracteristicas del tema tratado.
Por: paola
13/4/05
Con respecto a lo que dice el artículo estoy de acuerdo pero, creo que hay que dar un poco más de referencias sobre algunos conceptos que son esenciales en la POO como la abstracción, el encapsulamiento, hacer algún tipo de comentario sobre el ciclo de vida de los objetos, creo que les servira un poco a todas esas personas que entran a ésta página, ok.
muchos saludos.
Por: Karolina
28/4/05
Creo que el informe está bueno aunque también debería darsele importancia a otras cosas de poo como agregación o herencia, la friend class, etc ya que considero que esto es tambien ultra importante en poo.
Por: Francisco
19/5/05
Me parece muy bueno este articulo, especialmente para personas que como yo no tenia ni idea de es si que era este tipo de programacion. Como arranque esta muy bueno, resumido y directo, saludos.
Por: esmeralda
23/5/05
de hecho es muy interesante todo lo relacionado con POO pero al articulo le hacen falta algunos apectos como herencia,agrupamiento abstraccion entre otros y no estaria nada mal que se mencionara para conosimiento ycrear una definicion mas consisa para crear mas interes asicomo ejemplos amplios con caracteres eiconos logicos
Por: GLADYS CHAICO
03/7/05
ESTUVO MUY SINTETIZADO EL CONTENIDO BRINDADO SOBRE PROGRAMACION ORIENTADO A OBJETOS PODRIA ENFOCARSE MAS A LA FRIEND CLASS.
Por: JAIR
04/8/05
Concidero que se apuntaron un 10 con este comentario, muy bueno. Creo que deben profundizar un poco más sobre las cuatros caracteristicas fundamentales de la POO (Abstracción,Encapsulamiento,Polimorfismo y Herencia).
Muy bueno sigan asi.
Por: marcos
19/8/05
esta muy bien la pagina y su comentarios pero creo de deben especificar mas aserca de las caracteristicas de java como son la herencia la abstraccion en capsulacion y polimorfisma
Por: MARCOS HEREDIA
23/8/05
Hola!! Muy bien y felicitaciones al autor de este artículo porque me pareció que escribió lo elemental y con las palabras precisas para definir términos importantes de la Programación de Objetos... Depues de leer otros tutoriales este me pareció el mas claro y entendí estos conceptos,gracias man. A pesar de las críticas de los demas, esto está claro como parar empezar a programar.
Por: andrea
27/9/05
esta muy bien todo pero pienso que deberian especificar mas las caracteristicas dado que conocer las caracteristicas es la mejor forma de aprender y conocer algo
Por: darkharrypotter
01/10/05
Excelente apunte ,soy alumno de inge.en informatica y me servido de mucho.!!saludos¡¡
Por: Marco Requejo
12/10/05
Este es un curso muy interesante sobre la programacion Orientada a Objetos estoy de eacuerdo con Paola que dice más profundidad sobre los temas que menciona, además se debe profundizar sobre clases y sub clases como tambien propiedades y eventos de un objeto
Por: will-lain
13/10/05
pienso que deverian agregar algo màs como que lenguajes tienen herramientas para la POO y los metodos como el OMT, OOSE, UML... bye y esta muy buena la pagina ;)
Por: alex
14/10/05
creo que les falta mas informacion para poder que los alumnos se enpapen mas en el tema y de verian escribir mas sobre las clases que representa en una enrtidad
Por: diego
01/11/05
si su articulo es bueno pero creo combeniente que dieran a conocer como programar una clase como lo mensiona el encabezado porque es lo que hando buscando.
Por: Lorena
18/1/06
Hola,considero que es un buen resumen de los conceptos más básicos de la POO. Me parece que para arrancar está muy bien. No obstante, siempre es posible mejorar. Si agregan los onceptos avanzados de POO, estaría mucho mejor, siempre y cuando se aborden los temás con la misma simplicidad que explican los conceptos básicos.

Felicitaciones.
Por: ara
08/2/06
ESTA MUY BIEN LA INFORMACION PERO CREO Q LE FALTA ALGUNAS COSAS COMO LOS DIFERENTES LENGUAJES Q UTILIZA POO
Por: maria de los angeles
15/2/06
hola atodos quiero decir que el comentario sobre el articulo es muy bueno pero enrealidad me ubiera gustado que definiera sobre abstraccion,herencia, objeto,polimorsismo,clase,constructor, entre ellos. de mi parte es todo muy buen articulo.
Por: janett
21/2/06
Hola, pues la verdad tu articulo me parecio muy bien elaborado, y creo que apesar de ser corto trae lo elemental y bueno hasta ahorita es el que mas me ha ayudado a entender algo de este tema (pues no he encontrado otro articulo tan claro como el tuyo) FELICIDADES Y MUCHAS GRACIAS (porque si me ha sido de gran ayuda)
Por: secia
23/2/06
es muy interesante pero creo que tambien les hace falta ajregar lo de abstraccion, encapsulamiento, herencia, constructores y destructores
Por: manuel
01/3/06
Esta muy bien la informacioan contenida mas sin embargo hay que hacer mas incapie en las caracteristicas de la poo
Por: JuanK_berta
29/3/06
La verdad que este artículo sobre los aspectos básicos de la POO tiene entre sus lineas eficiencia pedagogica..los felicito, aunque me gustaria ver un ejemplo real y completo para enterderlo..no tiene q ser enorme..pero ue abaruqe todas las caracteristicas la POO, es decir encapsulamiento, herencia y polimorfismo.
Por: Polar
24/5/06
Me gustó el articulo porque es sencillo y directo. Le recomiendo a las personas que comentan sobre la falta de temas como polimorfismo, herencia etc. que revisen los manuales que aqui mismo se recomiendan. Por definición un artículo es sólo una revisión general de los conceptos y el detalle se encuentra en los manuales.
saludos
Por: Milena Zambrana
01/9/06
Hola,considero que es un buen resumen de los conceptos más básicos de la Programacion Orientada a Objetos. Me parece que para arrancar está muy bien. No obstante, siempre es posible mejorar. Si agregan los conceptos avanzados de Programacion Orientada a Objetos, estaría mucho mejor, siempre y cuando se aborden los temás con la misma simplicidad que explican los conceptos básicos, como tambien se necesita mas que hablen de la parte de Herenci y astrapcion.

Felicitaciones y que tengan un gran exito ok.
Por: Martha Gutiérrez Miranda
04/10/06
Hoy día nos enfrentamos a dos grandes polos en cuestiones tecnológicas, aquél donde se refugian los que no saben nada o no quieren sabe nada de la tecnología y en el otro, los demasiado expertos, que presumen saberlo todo. El problema es que los que no somos "ni de aquí ni de allá", no sabemos donde refugiarnos, y sólo nos queda recurrir a artículos como este, que con un toque de sutileza nos procuran adentran en elementos a veces complicados, de una manera sencilla, clara y precisa. "Dar al usuario la información en el menor número de pasos y en el menor tiempo posible", tomemos esto como mandamiento.
Por: EDUARDO
07/11/06
EL ARTICULO HABLA UN POCO DE LO Q ES LA POO PERO UN LE FALTA MUCHO Q PROFUNDISAR EN ESTA MATERIA!!
Por: Moises
22/12/06
En lo personal esta explicación me ha parecido muy acertada y precisa especialmente para personas que que nunca han programado con este paradigma de programación.
Saludos
Por: vanessa
29/1/07
el articulo esta muy bueno pero estaria mejor si lo complementaran, para agrandar los resultados positivos en las consultas.
Por: MARTHA
11/3/07
NO ME GUSTO EL ARTICULO ESTA MUY POBRE Y NO TIENE DEFINICIONES EXACTAS Y BIEN SUSTENTADAS NO TINE REUTILIZACION ABTRACCION Y OTRAS MUCHAS CARACTERISTICAS MAS GRACIAS
Por:
13/12/07
personalmente creo que el artículo esta muy bien enfocado para los no iniciados. aporta un punto de vista esencial relativo en la manera de pensar a la hora de la programacion orientada a objetos, abstrallendose de tecnicismos, a mi forma de ver, por que no pretende abarcar ni mucho menos las extensas posibilidades existentes en la poo, si no meramente ser una simple introduccion o mas bien una forma de ver las cosas a la hora de empezar a programar objetos
Por: CarlosL
06/2/08
Me gustaría apuntar un par de correciones:

Donde dice: "Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operador punto."

Debería decir: "Para acceder a una propiedad de un objeto, para ver su estado o cambiarlo, se utiliza el operador punto."

Donde dice: "En este ejemplo estamos cambiando el valor del estado de la propiedad del objeto a rojo con una simple asignación."

Debería decir: "En este ejemplo estamos cambiando el estado de la propiedad del objeto, a rojo, con una simple asignación."

Saludos.
Por: Gerardo
05/12/08
El señor que ha escrito este artículo es un "maestro" pues explica maravillosamente los conceptos básicos. tomaré como referencia este artículo.
Por: Iván
24/12/08
Muy buen articulo, estoy estudiando el JavaScript mediante esta pagina y llegé a la parte en la que te decía que leyeses esto para entender mejor los objetos y es así, los he entendido ;)

Saludos
Por: anonimo
05/3/09
esto si sirve peroo es puroo mugrro a mi no m gusta esta todo complicadoo iii iio qiero saber en donde se aplica i no vieneee bye
Por: rolando paco
07/3/09
bueno al principio por la simplicidad con que explican los conceptos, pero al final pierde en claridad al explicar lo de herencia y polimorfismo, son conceptos importantes, pero falto definirlos mejor. Sin embargo, felicitaciones.

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Alojados en el grupo
Copyright | Publicidad | Acerca de | Datos legales | Contacta