Hola. Hoy aprenderemos sobre variables
y los tipos de variables disponibles en Pharo.
De hecho, hay dos grandes tipos de variables:
las variables locales que por convención siempre comienzan con minúscula;
veremos los diferentes tipos disponibles.
El segundo gran grupo son las variables compartidas.
Comienzan por convención con mayúscula.
También hay varios tipos de variables compartidas.
Comencemos con las variables locales que comienzan con minúsculas.
Las variables locales que tiene un método.
Se declaran entre barras,
entre barras verticales.
Aquí, hay una variable local, c
es local al método y existe solo para su ejecución.
Por lo tanto, siempre debe comenzar con minúsculas.
Por cierto, todos los nombres de clase comienzan con mayúsculas
porque las clases se comparten en el sistema.
Otros tipos de variables locales:
por ejemplo, las variables de instancia
que son locales del objeto. Aqui hay dos de ellas x y y.
Siempre comienzan con minúsculas.
En cuanto a las variables locales,
también tenemos los argumentos de los métodos, aquí.
En aPoint, "a" es minúscula.
porque esta variable También es local del método.
También los parámetros de un bloque.
:x, x es una variable local de un bloque
Un argumento de bloque, lo siento.
Así que aquí, comienza con minúsculas.
En Pharo, hay seis variables específicas
llamadas variables especiales; No puede cambiar sus nombres.
Son palabras reservadas en Pharo.
Hay más de 50 de ellas en Java o JavaScript;
en Pharo, solo seis.
son true, false, nil, self, super, y thisContext.
Vamos a averiguar para qué sirven estas palabras reservadas
true y false son instancias de booleanos:
true es la instancia única de la clase True;
false, la instancia única de la clase False.
nil es la instancia única de la clase UndefinedObject.
true, false y nil son objetos como cualquier otro,
excepto que son las únicas instancias de una clase específica en el sistema.
Luego, hay tres pseudovariables:
self se refiere al receptor actual, y es equivalente a this en Java.
super siempre se refiere al receptor actual,
pero esta vez, cuando envíe un mensaje a través de super,
Significa que la búsqueda de métodos, el algoritmo de selección de métodos,
que veremos en otra clase,
comenzará en la superclase de donde escribe la palabra clave super.
thisContext es una pseudovariable que se refiere al objeto
que reifica la pila de llamadas del programa.
Es un concepto avanzado Que estudiaremos al final de este MOOC.
Se lo explicaremos más tarde.
Por ahora, solo necesita saber que es una pseudovariable.
Ahora, las variables compartidas o globales.
Primero, tiene todas las clases.
Todos los nombres de clase comienzan con mayúsculas
porque puedo hacer referencia a una clase desde cualquier lugar del sistema.
Tenga cuidado: lo que comienza con mayúsculas no siempre es una clase.
Por ejemplo, Transcript:
es el nombre de un objeto compartido en el sistema
Todos pueden hacer referencia a este objeto.
Es la salida estándar, el stdout en otros idiomas.
Es un objeto, instancia de una clase, accesible a nivel mundial
por eso su nombre comienza con mayúsculas.
También estan las variables de clase,
que se declaran aquí, al declarar una clase en classVariableNames;
aquí, la clase #CombinedChar define dos variables de clase,
una llamada Compositions y otra Decompositions.
Estas dos variables de clase
son accesibles por las instancias de la clase #CombinedChar
y de sus subclases.
Es por eso que se llaman Variables compartidas.
Todas las instancias de la clase y sus subclases los comparten.
Por eso, ambas comienzan con mayúsculas.
Resumiendo, debe recordar:
todas las variables locales, locales a un objeto, un bloque o un método,
comienzan con minúsculas;
todas las variables globales, tales como nombres de clase, etc.,
comienzan con mayúsculas.