GX102 - 2012.2 - Aula01 Programação Orientada a Objetos Uma breve introdução 1 Overview • Orientação a Objetos (OO) é um Paradigma de Programação • Classes • Anatomia de Classes • Atributos • Métodos GX102 - 2012.2 - Aula01 • Programação Imperativa X Programação Orientada a Objetos • Objetos • Como eu faço um jogo com isso? 2 Paradigma de Programação • Forma como o programador pensa e modela a análise de um problema e a transfere para um programa • Funcional (Haskell, Lisp, F#) • Imperativa (Fortran, Basic, C) • Logica (Prolog) GX102 - 2012.2 - Aula01 • Quatro Principais Paradigmas • Orientada a Objetos (C++, C#, Java, Python, Ruby) • Linguagens Multiparadigmas 3 Programação Imperativa • Instruções que alteram o estado do programa • Programação Procedural • Reutilização de rotinas comuns (funções) • Programação Estruturada • Uso extensivo de subrotinas, laços condicionais e de repetição GX102 - 2012.2 - Aula01 • Descrição detalhada do procedimento • “Proibição” do GOTO 4 Programação OO (POO) • Criação de modelos que representem os Objetos do problema mensagens • Encoraja programador a produzir código modularizado • Facilita o tratamento de problemas complexos GX102 - 2012.2 - Aula01 • Modela-se o relacionamento entre Objetos através de 5 GX102 - 2012.2 - Aula01 Ex: Pong 6 GX102 - 2012.2 - Aula01 Finalmente, o que é uma classe? CLASSES 7 Classes são Moldes • Classes são definições de tipos de Objetos • Representam a coletividade dos Objetos • É uma espécie de struct que guarda variaveis e funções GX102 - 2012.2 - Aula01 • Classes são definidas pelos seus atributos e métodos 8 GX102 - 2012.2 - Aula01 Ex: Veiculos 9 GX102 - 2012.2 - Aula01 Ex: Classe x Objeto 10 Atributos • Definem as características comuns a todos os Objetos de uma mesma Classe de um Objeto da Classe GX102 - 2012.2 - Aula01 • São implementados através de variáveis que armazenam o Estado 11 GX102 - 2012.2 - Aula01 Ex: Atributos de um Carro 12 Métodos • Metodos são o que um Objeto de uma Classe é capaz de fazer • Métodos são como funções acopladas em uma Classe • Métodos são como funções. Cada classe conhece os seus métodos. • Métodos também são chamados de “Mensagens” • Mandar uma mensagem para um objeto é equivalente à chamar a GX102 - 2012.2 - Aula01 • Representam as interações entre Objetos função deste método 13 GX102 - 2012.2 - Aula01 Ex: Métodos de um Carro 14 Objetos • Objetos nada mais são do que as instâncias de uma classe • Representam uma individualidade conjunto de atributos, diferenciando-se um dos outros apenas pelos valores que estes atributos contêm. • Os valores dos atributos de um Objeto definem o Estado deste GX102 - 2012.2 - Aula01 • Objetos pertencentes a uma mesma classe possuem o mesmo 15 GX102 - 2012.2 - Aula01 Ex: Objetos da Classe Carro 16 GX102 - 2012.2 - Aula01 Ex: Estado Cor 17 GX102 - 2012.2 - Aula01 Ex: Mudança de Estado 18 GX102 - 2012.2 - Aula01 Ex: Um pouco de Código 19 Como fazer um jogo com OO? • Não existe fórmula pronta • Passe a pensar em objetos agora mesmo! GX102 - 2012.2 - Aula01 • Requer experiência 20 GX102 - 2012.2 - Aula01 Análise de Caso SUPER MARIO WORLD 21 GX102 - 2012.2 - Aula01 Objetos: Mario e Luigi 22 Classe: Personagem Métodos • Cor da Roupa • Andar • Posição • Pular • Modo : (Pequeno, • Voar Grande, Flor, Capa, • Perder Vida Estrela) • Ganhar Vida • Quantidade de Vidas • Pegar Moeda GX102 - 2012.2 - Aula01 Atributos 23 GX102 - 2012.2 - Aula01 Objetos: Fores of Illusion x 24 Classe: Fases Metodos • Liberado • Libera Fase • Terminada • Termina Fase • Tempo • Reinicia Fase • Posição no World Map GX102 - 2012.2 - Aula01 Atributos • Mapa da Fase 25 GX102 - 2012.2 - Aula01 Muito mais… 26 GX102 - 2012.2 - Aula01 Duvidas? 27 Leitura Extra GX102 - 2012.2 - Aula01 • Artigo de OO na Wikipedia (de preferência em Inglês) 28