Hola. En este curso
nos tomaremos el tiempo para realmente Comprende los métodos de clase.
Debiste haber hecho el ejercicio con el mostrador,
Has hecho un método de clase, funcionó muy bien
Ahora vamos a echar un buen vistazo, para que entiendas por una vez y por todas.
Aprenderás en este curso que no hay diferencia en Pharo
entre la clase y los métodos de instancia en un nivel de algoritmo de búsqueda.
Solo hay un algoritmo de búsqueda
aludido y utilizado, eso se define en la máquina virtual,
y verás eso, mientras pudiéramos He dicho que los métodos de clase,
a primera vista, son como estáticos Los métodos de Java no lo son.
De hecho, están vinculados dinámicamente.
Hay una búsqueda en la ejecución,
mientras que en Java, por lo general, Los métodos estáticos no se buscan dinámicamente.
Veamos cómo funciona.
De hecho, lo que has visto
es que solo hay una búsqueda, que comienza en la clase del receptor.
Si el método se define en la clase,
se devuelve, de lo contrario continúa en la superclase.
Lo que esto significa, gráficamente,
es que tengo mi ejemplo de la clase Counter.
Cuando envío el mensaje de incremento, ¿lo que sucederá?
Paso 1, miro en la clase Contador, y volveré a subir ...
Si he "incrementado", se define aquí,
si se trata de un método definido más arriba en la jerarquía
se buscará más arriba.
De hecho, este mecanismo se usa en Pharo, solo hay una,
Se usa para instancias y clases.
Cuando hiciste el ejercicio con el contador de clase y envió el mensaje
"con valor" al contador de clase
Para crear una instancia, ¿qué sucedió?
El contador de clase es instancia de una clase llamada "clase de contador"
y miramos, usamos el mismo método que antes.
Miramos en la clase receptora, el receptor era "contador",
así que miramos en la clase "Counter class" y encontró el método
"con valor" que aplicamos al receptor
y nos dio una nueva instancia.
Entonces usamos exactamente el mismo proceso en cuanto a los mensajes que enviamos
a una instancia de la clase Contador.
Entonces, ¿qué es una "clase" en Pharo? Una clase es una instancia.
Es un objeto como cualquier objeto. En Pharo solo hay objetos.
Una clase es una instancia de otra clase, llamada metaclase.
Es solo para distinguirlos. Una metaclase es solo una clase
cuyas instancias son clases,
diferenciar entre instancias de terminal y clases.
Lo siguiente es que la clase Contador, en esta línea,
la clase Counter es la única instancia de la clase clase de contador.
Se crea esta clase de contador. automáticamente, sin que lo sepas.
Cuando definió la clase Contador, el sistema se creó automáticamente
la clase clase de contador, y creó la clase Counter.
Pensaste que estabas creando 1 clase, pero en realidad estabas creando 2.
Lo que debes saber en Pharo es que todas las clases
en una clase llamada XXX se llaman XXX clase.
Entonces si tengo contador, la clase Contador será
Clase de contador, sistemáticamente.
Entonces, de hecho, lo que haces en realidad,
Solo te mostramos cómo funciona. No necesitamos haberlo explicado,
pero eso significa que cuando el navegador te muestra
la clase Counter, te muestra
el código que se ejecutará en las instancias de esta clase.
Eso significa "incremento"
es el código que se ejecutará en este caso aquí.
Cuando haces clic en el botón "clase" para definir un método de clase,
Te muestra el código que será ejecutado en este objeto aquí.
Y de hecho, si miramos, cuando envío el mensaje "incremento"
a la instancia del contador, Miraré en la clase Counter.
Mira, ese es el método ejecutado.
Cuando envío el mensaje "con valor" a la clase Contador,
donde voy a mirar En su clase Sigo este enlace,
y es este método aquí.
Entonces, ¿qué debes saber?
Una clase es un objeto en Pharo.
Una clase puede recibir mensajes.
Te lo dije cuando hicimos la sintaxis,
Te dije que salgas hoy ...
¿Que es eso? Es un mensaje que enviamos a una clase.
No hay elementos Sintaxis diferente.
Es lo mismo que enviar un mensaje sintácticamente a una instancia.
Además, este curso te muestra, solo hay una búsqueda de método.
Los métodos de clase son buscados dinámicamente
como los métodos de instancia. ¿Dónde se miran?
En la clase del receptor.
Cuando es una instancia, Se buscó en la clase,
cuando es una clase de instancia como la clase Counter
Se buscó en la metaclase, en la clase llamada clase de contador.
Entonces, una clase es una instancia de otra clase, llamada metaclase,
y solo una mirada funciona.
Entonces volveremos a esta noción en la sesión final,
en la conferencia Comprender Metaclases
y vamos a revisar, vamos a levantar la tapa de Pharo
y le mostrará cómo funciona, y es completamente uniforme.