Objetos (programación orientada a objetos)
De Wikipedia, la enciclopedia libre
Un objeto es una representación detallada, concreta y particular de un "algo". Tal representación determina su identidad, su estado y su comportamiento particular en un momento dado.
La Identidad de un objeto le permite ser distinguido de entre otros y esto se da gracias al nombre que cada objeto posee.
El estado de un objeto es el conjunto de valores concretos que lo caracterizan en un momento dado, como peso, color, precio, etc.
El comportamiento define un conjunto de funciones que el objeto es capaz de llevar a cabo. Tales funciones pueden estar relacionadas entre sí, modificar el estado del objeto o invocar funcionalidades de otros objetos, entre muchas otras cosas más.
Una Clase se define como la generalización de un objeto en particular. Es decir, una clase representa a una familia de objetos concretos.
De lo anterior, podemos decir que una instancia de una clase es siempre un objeto en particular.
[editar] Ejemplo
Podemos tener, por ejemplo, una clase denominada Perro con determinadas propiedades y comportamientos. Una vez creada dicha clase podemos crear una instancia de la misma llamada "Fido" que tendrá ciertas propiedades específicas y los comportamientos de dicha clase.
Sin hacer referencia a ningún lenguaje de programación en particular (algo así como pseudocódigo), podríamos tener definido lo siguiente:
definir clase Perro: propiedad sexo en {macho, hembra} propiedad color en {blanco, marrón, negro, mixto} propiedad cansancio en (nada, poco, moderado, mucho, exhausto) ... otras propiedades ... método paseo() devuelve cansancio método quieto() devuelve nada método muertito() devuelve nada método comer(Comida) devuelve nada ... otros comportamientos ... crear Fido: método buscar() devuelve rama propiedad vacunas colección Fido.sexo = macho Fido.color = marrón crear Princesa: Princesa.sexo = hembra Princesa.color = blanco Princesa.nombre = alma
Éste ejemplo se limita a ser ilustrativo. Fido y Princesa como instancias son totalmente independientes una de la otra; sin embargo, cualquier cambio que se le haga a la clase principal afectará a los objetos correspondientes (herencia).