MAC 441 - Tópicos de Programação Orientada a Objetos
Aula 5 - 9/03/2010
Blocos
- Um bloco é um objeto que contém uma
seqüência de instruções a serem executadas
- Um bloco é uma seqüência postergada de
ações
- Sintaxe: [
ação1. ação2. ação3. ...
açãon]
- Exemplos:
- [índice := índice
+ 1]
- [índice := índice
+ 1.
array at: índice put: 32]
- note a indentação acima, é a comumente
utilizada, i.e., blocos são "retangulares".
- blocos podem ser passados como parâmetros ou guardados em
variáveis:
- ações at:
'pagamentos mensais'
put: [FinançasCaseiras gastoDe:
1200 em: 'aluguel';
gastoDe: 60 em: 'jornal';
gastoDe: 350 em: 'manutenção do carro';
gastoDe: 13.50 em: 'Nhá Bentas']
- O trecho de código acima não envia nenhuma mensagem
para o objeto FinançasCaseiras,
ele simplesmente envia o bloco para o objeto ações que
provavelmente o guardará como sendo um bloco associado ao string
'pagamentos mensais' e
que deverá ser executado mais tarde no momento oportuno.
- Objetos do tipo bloco podem ser executados enviando-se para eles
a mensagem value
- Por exemplo, faríamos algo como (ações at: 'pagamentos
mensais') value para recuperar e executar o bloco armazenado
- Às vezes, armazenamos blocos em variáveis: incrementBlock := [index := index + 1]
- O valor devolvido por um bloco é o valor devolvido pela
última expressão dentro dele.
Repetição
- Por ser uma linguagem minimalista, Smalltalk não possui
comandos de repetição, laços, etc.
- Mas os números possuem métodos que fazem exatamente
isso.
- Exemplo:
- 4 timesRepeat: [quantia := quantia + 10]
Bibliografia
- Smalltalk-80 - The Language and
Its Implementation. Adele
Goldberg e David Robson.
- Conhecendo o Smalltalk.
Abdala e Wangenheim.
Próxima Aula
Aula Anterior
Página de MAC 441
Página do Fabio
Página do DCC