Publicado el 9 de Agosto del 2020
1.892 visualizaciones desde el 9 de Agosto del 2020
278,0 KB
73 paginas
Creado hace 25a (24/03/2000)
PROGRAMACIÓN ORIENTADA
A OBJETOS
EL LENGUAJE SMALLTALK
GIPSI
TEMAS:
Introducción a Smalltalk
Smalltalk: Conceptos básicos
••
Clase
••
Instancia
•• Mensaje
•• Herencia
Sintaxis del lenguaje
••
••
Expresiones
Literales
*
tipos
Variables
*
tipos
*
asignaciones
*
pseudovariables
••
•• Mensajes
tipos
evaluación de las expresiones de mensajes
*
*
* mensajes en cascada
*
polimorfismo
•• Métodos y expresiones de retorno
tipos
tipos
estructura de cada tipo
*
*
Estructura de control: Selección o Alternativa
*
* Mensajes de comparación a objetos
Bloques
Estructura de control: Repetición o Iteración
*
tipos
••
••
••
POO - GIPSI -
*
*
*
*
*
*
*
*
*
*
*
*
*
Árbol genealógico de los lenguajes OO
POO - GIPSI -
Introducción a SMALLTALK
1. SMALLTALK es un lenguaje orientado a objetos puro, pues todas las
entidades que maneja son objetos. El lenguaje se basa en conceptos
tales como objetos y mensajes.
2. SMALLTALK es descendiente del lenguaje SIMULA y tiene sus
orígenes en el Centro de Estudios de Palo Alto de Xerox, en los
comienzos de 1970. Su desarrollo se basa en gran parte en las ideas de
Alan Kay. Las
tres versiones principales del
lenguaje son
SMALLTALK-72, SMALLTALK-76 y SMALLTALK-80.
3. SMALLTALK es mucho más que un lenguaje de programación, es un
ambiente completo de desarrollo de programas. Éste integra de una
manera consistente características tales como un editor, un compilador,
un debugger, utilitarios de impresión, un sistema de ventanas y un
manejador de código fuente.
4. SMALLTALK elimina la frontera entre aplicación y sistema operativo,
modelando todos los elementos como objetos.
POO - GIPSI -
La programación en SMALLTALK requiere de al
menos los siguientes conocimientos:
1.
los conceptos fundamentales del lenguaje: manejo de clases y objetos,
mensajes, clases y herencia.
2.
la sintaxis y la semántica del lenguaje.
3.
4.
cómo interactuar con el ambiente de programación de SMALLTALK
para construir nuevas aplicaciones SMALLTALK.
las clases
fundamentales del sistema,
tales como numéricas,
colecciones, gráficas y las clases de interfase del usuario.
Diseñar nuevas aplicaciones SMALLTALK, requiere de
conocimientos sobre las clases existentes en el sistema
SMALLTALK. Frecuentemente
la programación en
SMALLTALK se denomina
"Programación por extensión"
Las nuevas aplicaciones son construidas por extensión de
las librerías de clases de SMALLTALK.
POO - GIPSI -
SMALLTALK: CONCEPTOS BÁSICOS
Los conceptos básicos son:
- Clase
- Instancia
- Mensaje
- Herencia
La programación en SMALLTALK
consiste en:
- Crear clases.
- Crear instancias.
- Especificar
la
secuencia de
mensajes entre objetos.
POO - GIPSI -
CLASE
Es una colección de objetos que poseen características y operaciones
comunes.
Una clase contiene toda la información necesaria para crear nuevos objetos
y permite agrupar bajo un mismo nombre las variables y los métodos que
manipulan esas variables.
Variables de la clase
Mét Mét Mét ... Mét
m1 m2 m3 ... mn
Las variables de la clase son accedidas por los métodos m1, m2, m3, ... mn.
MÉTODO
Es el procedimiento local a una clase. Su activación permite el acceso a
las variables de la clase.
POO - GIPSI -
INSTANCIA DE CLASES
A partir de una clase se pueden crear tantos elementos como se deseen.
A estos elementos creados se los denomina Instancias u Objetos de la
clase.
Por lo tanto dos instancias diferentes de una misma clase comparten los
mismos métodos y la misma lista de variables con valores diferentes.
Clase Libro
título autores editorial añoEdición idioma isbn
tema prestado
método método método
verTítulo prestar devolver
[...] [...] [...]
título=POO
autores=Timothy Budd
editorial= Addison-
Wesley Iberoamericana
añoEdición=1991
idioma=español
isbn=0-201-60103-6
tema=POO
prestado=true
verTitulo, prestar,
devolver
título=Inside Smalltalk
- Vol. I
autores=Lalonde-Pugh
editorial= Prentice-Hall
International
añoEdición=1990
idioma=inglés
isbn=0-13-438430-3
tema=POO
prestado=false
verTitulo, prestar,
devolver
Instancia I1
Instancia I2
POO - GIPSI -
MENSAJES
Es una petición a un objeto para que brinde algún servicio que el objeto
puede realizar.
El mensaje especifica que operación se debe llevar a cabo, pero no
cómo realizarla.
El objeto al que se envía el mensaje se denomina RECEPTOR del
mensaje.
El texto del envío de un mensaje está compuesto de:
•
el nombre del objeto destinatario denominado RECEPTOR
DEL MENSAJE.
•
•
un SELECTOR, que es el nombre del método (punto de entrada
en el objeto receptor).
y eventualmente, PARÁMETROS del método que se quiere
activar, denominados ARGUMENTOS DEL MENSAJE.
Instancia I2
Variables
Método prestar
…
prestar
Valor
Texto del envío del mensaje: I2 prestar
selector
receptor
POO - GIPSI -
HERENCIA
Permite crear nuevas clases partiendo de otras previamente definidas
con características semejantes a la que se quiere crear.
El mecanismo de herencia nos permite definir las propiedades
particulares de un nuevo objeto y heredar las propiedades comunes ya
existentes.
Herencia en la definición de la clase Cn
Clase C1
Variables de C1
Métodos de C1
Hijo de C1
Variables de C2
Métodos de C2
…
Hijo de Cn-1
Variables de Cn
Métodos de Cn
Clase Cn
Variables de C1 +
Variables de C2 +
… +
Variables de Cn
Métodos de C1 +
Métodos de C2 +
… +
Métodos de Cn
POO - GIPSI -
En SMALLTALK, todas las clases heredan de una
única clase llamada Object.
Representación ascendente (Bottom-up) parcial de las clases
provistas por el Smalltalk
Object
. . .
Collection
Magnitude
Number
Date
Time
Bag
Set
Integer
Float
Fraction
. . .
. . .
SMALLTALK maneja sólo HERENCIA SIMPLE.
POO - GIPSI -
La herencia se hace sobre las clases y NO sobre las instancias.
Una instancia de una clase maneja el conjunto de variables y métodos
disponibles en dicha clase.
Clase Textos
título idioma tema nroIdentif
verTitulo darDeAlta darDeBaja
Clase Libro
Clase Revistas
Clase Artículos
autores editorial
prestado isbn
añoEdición
prestar devolver
verAutor
Instanciación
editorial director
volumen número
mes año
verIndice
autores
nombreRevista
perteneceA
título=POO
autores=Timothy Budd
editorial= Addison-
Wesley Iberoamericana
añoEdición=1991
idioma=español
isbn=0-201-60103-6
nroIdentif=194785
tema=POO
prestado=true
verTitulo, prestar,
devolver, verAutor,
darDeAlta, darDeBaja
POO - GIPSI -
ACTIVACIÓN DE MÉTODOS
Cuando una instancia recibe un mensaje, el selector del mensaje podrá o no
corresponder con un método local a la clase de la instancia.
1. Si el selector corresponde a un método local de la clase del objeto,
entonces hay activación de ese método.
2. Si el selector no corresponde a un método local a la clase del objeto,
entonces se busca el método en la superclase de la clase del objeto y así
recursivamente hasta encontrar la primera clase del árbol de herencia que
posea un método idéntico al selector del mensaje.
Como vemos la investigación se hace de abajo a arriba.
Object
Clase C1 Herencia
Variables
Método m1
Método m2
Clase C2 Herencia
búsqueda del método
m1 en la clase C1.
Variables
Método m3
Instanciación
búsqueda del método
m1 en la clase C2.
Instancia de C2
mensaje
m1 (selector)
POO - GIPSI -
SINTAXIS DE SMALLTALK
La sintaxis de SMALLTALK es:
objeto mensaje
Por ejemplo
3 factorial
•
significa que el mensaje factorial es enviado al objeto 3 (instancia de la clase
Integer) y por lo tanto se ejecutará el método de nombre factorial
que se encuentra en la clase Integer o en sus superclases.
•
•
•
‘HOLA’ size
#(4 8 6 3) at: 2
$A asciiValue
POO - GIPSI -
EXPRESIÓN
Smalltalk es un lenguaje basado en expresiones. Una
expresión es una secuencia de caracteres que puede ser
evaluada.
Hay cuatro tipos de expresiones:
1. Literales
2. Nombres de Variables
3. Expresiones de mensajes
4. Expresiones de bloque
La interfase de usuario permite la selección y evaluación de estas
expresiones.
POO - GIPSI -
TIPOS DE EXPRESIONES
1- LITERALES (constantes literales u objetos constantes)
El valor de una expresión literal es siempre el mismo
objeto.
Hay cinco tipos de constantes literales:
1. Números
2. Caracteres
3. Secuencia de caracteres
4. Símbolos
5. Arreglos
NÚMEROS
Descripción:
Los números son objetos que representan valores
numéricos y
responden a mensajes que calculan
resultados matemáticos.
Representación: Secuencia de dígitos precedidos o no de un signo '-' y/o
con un punto decimal.
Ejemplos:
25 27.5 -35.7 -128
Notación científica: 25.53e2 -8.126e-3.
POO - GIPSI -
CARACTERES
Descripción:
Los caracteres son objetos que representan los símbolos
que forman un alfabeto.
Representación: Expresión precedida por el signo $ seguida por cualquier
carácter
Ejemplos:
$a $A $3 $+ $$
SECUENCIA DE CARACTERES
Descripción:
Son objetos que representan una cadena de cara
+
Comentarios de: El lenguaje Smalltalk - Programación orientada a objetos (0)
No hay comentarios