Este post es parte de una serie de artículos sobre POO y viene a continuación de Características de la P.O.O.
¿Qué es una Clase?
Cuando decimos «ave», sabemos que nos referimos a «algo» con plumas, pico, dos patas, etc. No importa realmente si hemos visto un ave o no, o si tenemos un ave frente a nosotros; entendemos claramente que la palabra «ave» se refiere a alguna cosa que cumple con unas características específicas, se comporta de una forma concreta, etc, etc. No es más que una palabra, pero nos permite clasificar las cosas. Por ejemplo, sabemos que una gallina es un ave y que un perro no es un ave.
La clasificación es algo que hacemos todos los días, a cada momento (entre otras cosas, nos libra de utilizar medias como guantes o bañarnos en el comedor en vez de en la ducha). Cada vez que decimos que algo es alguna cosa, estamos clasificándolo, asociándolo a una clase.
Sin embargo, sabemos que la palabra ave no se refiere a un animal concreto, sino a una serie de animales. Ave es la palabra que usamos para identificarlos en un grupo, pero no podemos decir hoy haré volar la palabra «ave» (bueno, puedes decirlo, pero estarás cada vez más cerca del manicomio), en tal caso siempre nos referiremos a esta o aquella ave, siempre hablaremos de un animal concreto. La palabra es lo que conocemos como un concepto, una abstracción.
En la POO ocurre igual, una clase no es más que una serie de código que define a todos los elementos relacionados con ella. Así, podríamos escribir la clase ave colocando en ella todas las características que tienen las aves (pico, color, alto, ancho, patas,…) esas características las llamaremos en lenguaje de programadores, propiedades.
Pero la cosa no termina allí, resulta que las aves tienen también ciertos mecanismos específicos, como comer, dormir, reproducirse (¡aléjate Pertvertvaz! 😛 ), etc. Estos mecanismos los llamamos métodos.
Por último, también sabemos que las aves reaccionan ante ciertos sucesos, como peligro, atracción, defensa… A esto lo llamaremos eventos.
Entonces, vemos que una clase es algo así como el concepto de lo que queremos hacer, es como la idea (concebida al detalle) de la cosa, del objeto; pero igual que con las ideas, no puedo hacer nada directamente con una clase (puedes sentarte en una silla, pero no en tu idea de una silla). Sin embargo, esta idea será la que dé forma al objeto que crearemos (que tendrá las características, mecanismos y comportamientos que habíamos pensado en nuestra idea).
¿Qué es una Instancia?
Bien, decíamos que una clase es como la definición de un objeto, pero no es el objeto en sí, del modo como una idea no es una cosa física (el ejemplo de la silla). Así que para sentarnos necesitaremos convertir esa idea en algo, en un objeto real; a ese objeto lo llamamos instancia.
En un mismo proyecto puedo tener una o más instancias de una misma clase sin problemas.
Cada vez que creamos una nueva instancia, ésta adquiere las propiedades, métodos y eventos de la clase a la que pertenece (es lo que permite la relación es un), sin embargo, cada instancia es independiente de las otras; esto nos da dos ventajas:
- Si hago algún cambio en la clase, todas las instancias de esta clase se actualizarán automáticamente; esto nos permite hacer cambios sin tener que ir a cada una de las instancias (se aplica el mismo principio de herencia, aunque a un nivel diferente).
- Al ser independientes de las otras instancias, puedo darles valores diferentes sin que afecten a las demás (como tener una silla negra, una roja, una más alta, etc.). Aunque comparten la misma estructura, pueden programarse individualmente, dando versatilidad y flexibilidad al código.
Ahora que tenemos la base teórica, debemos dar un paso más práctico, en el siguiente post aprenderemos Cómo Escribir una Clase
Technorati Tags: Programación Orientada a Objetos, Clases, Action Script
Me parece excelente esta forma de entender la programación orientada a objetos, espero con ansias la continuación del mismo!!
perfecto!!!! me ha salvado de un buen comedero de cabeza!! mil gracias!!
Ey, está genial. Enhorabuena, esperaré el próximo 😉
Muy bueno… esperaré el próximo ñ_ñ
Excelente Amigo!
ey men mejor explicado no puede estar….lo felicito
compadre que modo de explicar tan bacano… es justo lo que necesitaba
que informacion tan bacana
Mejor explicado no creo que nadie más lo haga, le agradezco su elocuencia
Todo me queda claro, vaya que si conoces mucho sobre POO… y eso se nota por la forma como lo explica… con parábolas… mmm… recuerdo vagamente que alguien hace más de 2000 años atrás hizo lo mismo… 🙂
Viejo esto es lo que necesitamos exelente!!
Eres Magnifico de veraz deberias ser quien me diera clases!!! xD
La Forma En Que Explicas Todo Esto Lo Hace Parecer Sumamente Facil, Sinceramente Con Mi Actual Maestro Me Costaba Mucho Enterder Las Cosas!!
De Veras Gracias!!! Sigue asi.
Un Saludo Desde Merida Yuc Mex
Tengo Una Frase!!
«Solo Es Digno De Ser Llamado Maestro, Aquel Que Es Capaz De Convertir Sus Conocimientos En Metaforas!!»
Gracias Mestro.
Gracias por la magnifica explicacion me parece genial continua asi, de verdad muchas gracias
Felicidades y gracias, la verdad que al principio es mi coco pero me esta gustando el asunto de programar
diablos
por q los profesores de todas las escuelas no enseñan de esta forma???
muy buenas metaforas
excelente excelente
lastima que no lo haya encontrado antes
Man dejame decirte que he leido varios cursos y/o manuales de poo, java, c++, desde las tipicos «Aprenda poo como si estuviera en primero» o «Java para principiantes» hasta los cursos avanzados y en ninguno habia encontrado una explicacion tan clara de los que es una clase y una instancia y el porque de diferentes instancias. Muchas felicidades por esa facilidad para darte a entender
Hola!!! Gracias por esas definiciones tan bien explicadas. Felicidades por tu blog.
muy bueno, practico, facil y entendible.
Gracias.
El mundo es de todos, y todos somos uno solo.
Casi lloro de la alegría … Buena explicacion man!
Jajajaja!!!! Muchas gracias Danny. Me alegra que te haya servido
Fricky, me satisface ver como tus cyber alumnos se expresan de la forma como le explicas. Muchos comentarios positivos que parecen genuinos, ciertamente.
Bueno, a lo que vine… Un amigo tuyo me dice que puedes diseñar maravillas y estoy trabajando en un blog social (de tendencia social y de cooperar con los mas desposeidos) que requiere de la creatividad de un buen diseñador web.
Perdona que me entrometa aca en tu clase, pero como hago para contactarte?
Saludos,
Armando
Interesante lo que me comentas. Ya que tengo tu dirección de correo, ya te contacto yo entonces.
muy chevere esta forma de explikr kien no entiende assii,,, graciasss
gracias por compartir tus conocimientos con estos mortales que estamos tratando de aprender
jajajajaja!!! No, gracias a ti. Yo sólo soy otro mortal que lo averiguó primero 🙂
Los libros de programacion deberian estar explicados asi!
jjeje muy buenas explicaciones ^^ me han ayudado mucho a entender la POO me estoy iniciando a programador =P
Es genial la forma como transmites los conocimientos concerniertes a la POO solo queria felicitarte. seria bueno que pudieras dar clases mas adelante en un colegio. segui asi de humilde y no cambies y si cambias hazlo para bien.
en verdad que es da las mejores explicaciones que hee escuchado muchas felicidades,, no has pensado en escribir libros? creeme que te iria muy bien!!! muchas gracias 😀
Wow, escribir libros es un compromiso. Gracias por el voto de confianza, la verdad es que no se me ha ocurrido hacerlo, pero quizá en el futuro me anime 😉
De la misma forma que todo el grupo de hinchas, te estoy agradecido pues ya era hora de encontrar información más detallada para poder comprender rápidamente este nuevo mundo.
Gracias.
oooooooh!!! Mis respetos hermano! que manera de transmitir un conocimiento de manera mas natural y amigable! Muchas felicidades y gracias por compartir!
EXECELENTE.
muchas gracias…la manera en que lo explicas es tan facil de entender,,,ahora me gusta mucho mas la programacion …XDXD…GRAGIAS!!!!….
muy bueno, facil y rapido de aprender felicidades y gracias por hacer este tipo trabajos..
Perfecto ,muy bien explicado
Gracias por el aporte bastante entendible…….Saludos…
🙂 eSt@ MuY bIeN eXpLiC@Do Y LoS EJeMpLoSSS lo hAceN mAS enTeNdIblE mUy bIeN
FELICITACIONES, yo soy NUEVO en java y digo nuevo porque es la primera vez que la uso como lenguaje de programación, e tu explicacion me hiso entender esta parte que no tenia sentido para mi, continuare leendo tus post y espero que todos sean asi de didacticos.
me sirvió de mucho mil gracias
Qué buena explicación, pero qué buena. Soy un programador de la vieja escuela (Cobol), y en mis intentos por entender la poo, nunca he leído algo tan escueto y bien explicado. Como decía Góngora «lo bueno, si breve, dos veces bueno». Y ahora he entendido la diferencia entre clase y objeto. MIL GRACIAS!!!!
interesante y soberbio.
Gracias por el post me fue muy facil de entender.
Felicitaciones!. Muy bien logrado.
Si lo hubiera visto antes no me hubiera quedado en supletorios jeje…
muy bien explicado!!!
Hola, no son propiedades son atributos y cambiaría Mecanismos por Comportamiento.
Hola Alberto. Entiendo lo que dices, pero debes entender lo que digo acá fuera del léxico común de la programación, mi intención acá es «traducir» estos términos a un contexto comprensible por no programadores. Fuera de la programación los términos «atributo» y «propiedad» son intercambiables casi siempre
NO LE ENTIENDO A SUS METAFORAS EXPLIQUE CLARO XFAVOOR 😦
enorme explicación simple y fácil de entender,gracias!