SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Introdução ao Greenfoot
Técnicas de Programação
Prof. Iális Cavalcante
Engenharia da Computação
2011.1
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
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.
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.
Vamos finalmente usar o Greenfoot...

CONHECENDO O
AMBIENTE
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.
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.
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
Conhecendo o Ambiente




Crie 3 objetos e posicione-os   Menu de contexto
         em World                  da classe
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()
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.
Conhecendo o Ambiente




populate()      randomLeaves()
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.
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    (*)
Conhecendo o Ambiente
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!!!
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.
Conhecendo o Ambiente




    Executando o cenário wombats
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)
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
Conhecendo o Ambiente
 Editor de Classe
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.
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
Conhecendo o Ambiente
Classe Wombat
◦ 4 constantes : EAST,
  WEST, NORTH,
  SOUTH
◦ 2 variáveis : direction,
  leavesEaten
◦ 1 construtor : Wombat()
◦ 8 métodos :
   getLeavesEaten(),
   foundLeaf(), eatLeaf()
   setDirection(), turnLeft()
   canMove(), move()
   act()
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
Conhecendo o Ambiente
Conhecendo o Ambiente


               este método é herdado
               da superclasse Actor
Conhecendo o Ambiente


            muda a direção em 90 graus
            para a esquerda
Conhecendo o Ambiente

                   estes métodos são
                   herdados de Actor
Conhecendo o Ambiente
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
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!
Conhecendo o Ambiente
 Classe WombatWorld
 ◦ 1 construtor : WombatWorld()
 ◦ 2 métodos :
    populate()
    randomLeaves()
Conhecendo o Ambiente

                                 chama o construtor World




          configura o fundo.
          o método é herdado
          da superclasse World
                                              cell.jpg
Conhecendo o Ambiente
Conhecendo o Ambiente

              Cria um objeto Leaf em uma posição
              aleatória (x,y); repita howmany
              vezes
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)
Referências
 http://www.greenfoot.org

 http://www.bluej.org

Introducao ao greenfoot

  • 1. Introdução ao Greenfoot Técnicas de Programação Prof. Iális Cavalcante Engenharia da Computação 2011.1
  • 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.
  • 5. Vamos finalmente usar o Greenfoot... CONHECENDO O AMBIENTE
  • 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
  • 9. Conhecendo o Ambiente Crie 3 objetos e posicione-os Menu de contexto em World da classe
  • 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.
  • 18. Conhecendo o Ambiente Executando o cenário wombats
  • 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
  • 21. Conhecendo o Ambiente Editor de Classe
  • 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
  • 24. Conhecendo o Ambiente Classe Wombat ◦ 4 constantes : EAST, WEST, NORTH, SOUTH ◦ 2 variáveis : direction, leavesEaten ◦ 1 construtor : Wombat() ◦ 8 métodos : getLeavesEaten(), foundLeaf(), eatLeaf() setDirection(), turnLeft() canMove(), move() act()
  • 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
  • 27. Conhecendo o Ambiente este método é herdado da superclasse Actor
  • 28. Conhecendo o Ambiente muda a direção em 90 graus para a esquerda
  • 29. Conhecendo o Ambiente estes métodos são herdados de Actor
  • 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)