Greenfoot é uma ferramenta educacional para ensinar programação orientada a objetos usando cenários visuais. Ele permite que estudantes criem aplicações gráficas em Java e experimentem conceitos de programação de forma engajada e concreta. Greenfoot fornece um ambiente de desenvolvimento baseado no BlueJ com recursos como classes World e Actor, controles de execução e editor de classes.
2. Introdução
Greenfoot é uma ferramenta computacional
desenvolvida para permitir que iniciantes
tenham experiência com programação
orientada a objetos.
◦ Suporta desenvolvimento de aplicações gráficas na
Linguagem de Programação Java™;
Desenvolvida e implementada na Universidade
de Kent (University of Kent) e Universidade
de Deakin (Deakin University);
Copyright mantido por Poul Henriksen e
Michael Koelling
Mais informações em: http://www.greenfoot.org
3. Introdução
Um ambiente que
suporta cenários
World+Actor;
Provê experiências
visualmente engajadas
e concretas para
estudantes
universitários;
Construída sobre o
BlueJ.
4. Ambiente BlueJ
IDE desenvolvida especificamente para o ensino
introdutório de orientação a objeto.
Desenvolvida por Michael Kölling.
Boa visualização de conceitos importantes.
Interatividade traz estes conceitos para a
realidade.
Tipicamente usada para ensino de graduação.
6. Conhecendo o Ambiente
Interface visual consiste de 3 partes principais
◦ The world
O largo quadro que cobre a maior pate da janela
Tem um título, por exemplo, WombatWorld
O ambiente (o mundo) onde existem os objetos
◦ Class display
Contém todas as classes Java envolvidas no cenários
3 grupos: World, Actor e outras classes
◦ Controles de Execução
Controla a ação de cada objeto: botão Act;
Controla simulação: Run, Pause, slider
Reinicia o cenário.
7. Conhecendo o Ambiente
Abra um projeto já existente (Scenario ->
Open)
◦ Alguns exemplos:
Wombats: 3 classes, 266 linhas no total
TurtleGraphics: 6 classes, 276 linhas no total
Ants: 6 classes, 598 linhas no total
◦ Escolha o cenário Wombats.
8. Conhecendo o Ambiente
Clique na classe Wombat ou Leaf para torná-la ativa
Crie e coloque um objeto dentro do mundo:
◦ Ative uma classe então shift+click em algum lugar de World
◦ Clique com o botão direito em uma classe (exemplo classe
Wombat) para abrir o menu de contexto da classe, selecione o
item (construtor) New Wombat() e clique em algum lugar de
World
10. Conhecendo o Ambiente
Métodos de um objeto
podem ser
diretamente invocados;
Um método é uma
ação simples que um
objeto pode executar;
Clique-direito no
objeto para mostrar
seu (objeto) menu de
contexto, em que
pode-se selecionar um
método e pedir o
objeto para fzer algo.
turnleft() move()
11. Conhecendo o Ambiente
O mundo em que os wombats vivem
(WombatWorld) é, na verdade, um objeto
também.
Mas somente pode existir um objeto World
por vez.
Ele funciona como um container para
objetos Actor (exemplos: Wombat, Leaf
etc.);
Invocação de métodos simples é ainda
possível para o objeto World; apnas clique-
direito no título WombatWorld e selecione
um método do menu.
13. Conhecendo o Ambiente
Um método pode ter um ou mais parâmetros
O usuário é requisitado para dar valor(es) dos
parâmetro(s) quando invocar tal método.
Tente o método setDirection() de um objeto Wombat
ou o método randomLeaves() de WombatWorld
Um método pode também retornar um valor (ou
referência a um objeto) se é invocado.
Tente foundLeaf() ou getLeavesEaten() de um
objeto Wombat.
14. Conhecendo o Ambiente
Removendo objetos
◦ Um objeto pode ser removido por selecionar
item Remove do menu de contexto do
objeto;
◦ Clicando em Reset ou criando um novo
objeto World do menu de contexto do objeto
pode-se remover todos os objetos; porém, na
verdade, isso depende da implementação do
construtor da classe World (*)
16. Conhecendo o Ambiente
Ação dos Objetos
◦ Cada objeto Actor possui um método especial chamado act()
◦ Pressionar o botão Act no painel de controle significa pedir ao
Greenfoot executar o método act() para todos os objetos em
World.
◦ Um objeto atua por fazer o que quer que ele faça:
Wombats movem-se para a frente, se encontrar uma folha em seu
caminho, eles a comerão
Leaves não fazem nada
◦ A aão depende, na verdade, em como o método act() é definido;
isto é, pode-se programar o comportamento dos objetos!!!
17. Conhecendo o Ambiente
Executar a Simulação
◦ Um cenário pode ser executado por clicar no botão
Run;
◦ Isso equivale a clicar no botão Act várias e várias
vezes rapidamente
◦ O slider prócimo aos botões Act e Run configuram a
velocidade de execução/simulação
◦ Faça um experimento com o cenário Wombats
Clique Reset se já tem alguns objetos
Selecione populate() do menu de WombatWorld
Clique Run.
19. Conhecendo o Ambiente
Display de Classes
◦ Display de Classes contém todas as classes que são usadas no
cenário.
◦ Classes World e Actor são superclasses abstratas, parte do
sistema Greenfoot;
◦ Cenário wombats tem 2 classes atores (Wombat, Leaf)
20. Conhecendo o Ambiente
Editor de Classes
◦ Pode-se modificar o
comportamento de objetos
editando o código-fonte da classe
correspondente.
◦ Para apresentar o editor de
código-fonte (pelo BlueJ):
Duplo-clique na classe
Clique com o botão direito na classe,
escolha o item Open editor
22. Conhecendo o Ambiente
A classe Leaf
◦ É a classe mais simples comparada às classes Wombat
eWombatWorld
◦ Objetos Leaf não fazem nada!
◦ Como já visto, a classe Leaf não tem nenhuma
instruçãoe consiste de um construtor vazio.
23. Conhecendo o Ambiente
Classe Wombat
importa pacotes necessários
cabeçalho da class;
Wombat é uma subclasse
de Actor
dados (constantes e
variáveis)
construtor da class e
métodos
25. Conhecendo o Ambiente
construtor inicialização
direction e leavesEaten
existe algum objeto Leaf
em minha posição? este método is herdado
da superclasse Actor
remove objeto Leaf
e atualiza a variável
leavesEaten
31. Conhecendo o Ambiente
se objeto alcança uma
das bordas, não faça nada!
o objeto move-se setLocation() é
em frente; herdado de Actor
depende da
sua direção
32. Conhecendo o Ambiente
se encontrar folhas (leaves),
coma!
se não encontrar folhas , mas
pode mover-se à frente, então
mexa-se!
se não encontrar folhas e não
pode mover-se à frente, então
gire à esquerda!
33. Conhecendo o Ambiente
Classe WombatWorld
◦ 1 construtor : WombatWorld()
◦ 2 métodos :
populate()
randomLeaves()
34. Conhecendo o Ambiente
chama o construtor World
configura o fundo.
o método é herdado
da superclasse World
cell.jpg
36. Conhecendo o Ambiente
Cria um objeto Leaf em uma posição
aleatória (x,y); repita howmany
vezes
37. Testando outros cenários
Escolha Scenario -> Open ... e selecione um
cenários dos disponíveis no Greenfoot;
Pressione o botão Compile all, se necessário.
Instancie os objetos e execute o cenário:
◦ wombats2
◦ lunarlander (permite ação com teclado)
◦ ballons (permite ação com mouse)
◦ ants (permite ação com mouse)