En realidad, un objeto es
una instancia de una clase, por lo que se pueden intercambiar los términos
objeto o instancia (o incluso evento).
Concepto de clase/Instancia.
Como hemos comentado una
clase es el tipo que tendrán nuestros objetos, también llamados instancias de
esa clase, es decir, la clase es la forma que tendrán los objetos empleados por
nuestra aplicación. Un ejemplo puede ser el plano de una casa, el plano sería
nuestra clase, pero con ese mismo plano podremos contruir diversas casas que
serían los objetos. El plano en sí no es nada es sólamente la especificación de
lo que será una casa una vez construida.
Alcance de los miembros: de
instancia o de clase.
Cuando creamos una instancia
de la clase en ejecución tendremos las variables de instancia, una por cada
atributo, y todas integradas dentro de la misma instancia. Todas las instancias
de la misma clase tendrán los mismos atributos (nombre y tipo), pero cada una
de ellas irá tomando distintos valores para ellos. Es decir, tendremos una
copia de los atributos por cada objeto de una clase que creemos. Por ejemplo,
tuCoche sería una instancia de la clase Coche y daremos a la variable de
instancia velocidadMaxima el valor 180. Mientras que la instancia cocheDeNigell
tiene su propia variable velocidadMaxima con el valor 300.
Hay otro tipo de atributos,
las llamadas variables de clase, que son los atributos que sólo existen una vez
para cada clase. Es decir este tipo de atributos será compartido por todos los
objetos que creemos de una clase, de modo que si cambio el valor del atributo
en un objeto se verá reflejado en todos los demás. Por ejemplo, el atributo
numDeCoches de nuestra clase Coche, de tipo entero, pensado para contar los
coches que vamos teniendo en nuestro sistema, sólo debería existir una vez: no
tiene sentido que esta variable sea distinta en tuCoche y en cocheDeNigell. Es
la misma (única) variable para toda la clase Coche.
El comportamiento, la
funcionalidad de la clase, es la concreción de qué puede hacer cada una de las
instancias de la clase, cómo cambian su estado, o cómo se relaciona con otras.
Por ejemplo, en la clase
Coche podríamos determinar la siguiente funcionalidad:
• Arrancar
• Parar (el motor)
• Acelerar
• Decelerar
• Girar
• Frenar
• Cambiar la marcha…
Para definir el
comportamiento de los objetos definiremos métodos, que no serán más que
funciones o procedimientos definidas dentro de la clase que se ejecutan y
operan sobre instancias de esa clase. Notar que estos métodos se encapsulan
dentro de la clase, es decir, encapsulamos conjuntamente datos y funcionalidad
relativa a un mismo objeto, cada objeto debe proveer el mecanismo de
almacenamiento y gestión de sus datos, y la funcionalidad relativa a dicho
objeto como una entidad cerrada.
Igual que los atributos,
también hay métodos de instancia (se aplican sobre una instancia: son los más
comunes, sobre un objeto concreto) y métodos de clase (se aplican sobre la
propia clase). Lo veremos.
No hay comentarios:
Publicar un comentario