La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Hablando la gente se entiende (y las cosas también) o una breve introducción a Smalltalk ESTARÍA BUENO USAR SMALLTALK.

Presentaciones similares


Presentación del tema: "Hablando la gente se entiende (y las cosas también) o una breve introducción a Smalltalk ESTARÍA BUENO USAR SMALLTALK."— Transcripción de la presentación:

1 Hablando la gente se entiende (y las cosas también) o una breve introducción a Smalltalk ESTARÍA BUENO USAR SMALLTALK

2 Plato del día El maravilloso mundo de los objetos Smalltalk Demo

3 Un martillo nuevo Antes (funcional) funciones tipos de datos Ahora objetos (sólo eso)

4 Objetos Colaboración basada en Privacidad ( ocultación de información ) Mensajes

5 #(1 2 3) Objetos, nada más En Smalltalk todo es un objeto Sí, todo Posta, todo todo 4 true $a ‘hola’ Gracias por venir... Vuelvan cuando quieran

6 Nombres Literales construcciones sintácticas que denotan objetos elementales ejemplos: 37El entero “37” 'Ser o no ser'El texto “Ser o no ser” 2.71828El número “2,71828” $pEl carácter “p” trueEl valor de verdad “verdadero” #(1 2 3)Un vector con los números “1”, “2” y “3” #pitufoEl símbolo “pitufo” 4

7 Nombres Asignación variable := objeto locales en minúsculas lamole globales en mayúsculas Transcript lamole

8 Mensajes Sí, los mensajes son objetos. Selector Argumentos Método Efecto vs. Resultado DoIt vs. PrintIt sumar 7 4 nombre de operación o selector argumentos

9 Mensajes: tipos Unarios ‘pitufo’ reverse 4 factorial Binarios 17 <= 14 4 + 7 Palabra clave (“keyword”) miCuenta transferir: 300 a: otraCuenta

10 Mensajes Precedencia 1)Unitarios 2)Binarios. 3)Keyword Asociatividad izquierda a derecha Cascada

11 Creando objetos Géneros de objetos: clases (género o clase) Humano (elementos o instancias) walterSamuel samuelWalterNhanForde sirSamuelWalterGriffith

12 En Smalltalk todo es un objeto las clases son objetos tienen variables (de clase) tienen métodos (de clase) new crea una nueva instancia allInstances devuelve un Array con las instancias de la clase guybrush := Humano new

13 Los humanos son... HumanoPerroBallena Mamífero

14  Los son todos  relación entre clases (géneros) B es sub-clase de A A es super-clase de B (cada instacia de) B “es un” A B es una especialización de A (“a kind of”) A B

15 Contame de tu clase... HumanoPerroBallena Mamífero class la clase isMemberOf: “es un” (clase) isKindOf: “es un” (clase o subclase) guybrush := Humano new guybrush class. guybrush isMemberOf: Mamífero. guybrush isMemberOf: Humano. guybrush isKindOf: Mamífero. true false true Humano

16  Los son todos  los objetos de una subclase tienen más cualidades que los objetos de su superclase los objetos de una subclase son más específicos que los de su superclase, los objetos de una superclase son más generales que los de sus subclases A B

17 El maravilloso mundo, animal. LoroPingüino HumanoPerroBallena Animal Mamífero Pájaro

18 El maravilloso mundo, animal. LoroPingüino HumanoPerroBallena Animal Mamífero Pájaro comer: guybrush := Humano new guybrush comer: ‘un bife’.

19 Herencia y mensajes Method lookup: sube buscando. Tiempo de ejecución (late binding). Herencia de comportamiento. (Reuso de código.)

20 El maravilloso mundo, animal. LoroPingüino HumanoPerroBallena Animal Mamífero Pájaro comer: guybrush := Humano new guybrush comer: ‘un bife’. qué ganas tenía de comer un bife

21 Contestá, Guybrush. comer: unaComida “(Estos) humanos son amables” super comer: unaComida. ^‘qué ganas tenía de comer’, unaComida.

22 Creando objetos (reprise) new ^(super new) initialize

23 Repaso Objetos: colaboración-mensajes-privado En Smalltalk todo es un objeto Los mensajes son objetos Efecto vs. respuesta (Do It vs. Print It) Géneros de objetos (clases) Las clases son objetos Mensajes/variables de clases/instancias Herencia: “es un” (de paso: reuso)


Descargar ppt "Hablando la gente se entiende (y las cosas también) o una breve introducción a Smalltalk ESTARÍA BUENO USAR SMALLTALK."

Presentaciones similares


Anuncios Google