UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Introdução à Orientação a Objetos - uma abordagem Gastronômica. Este material apresenta a Programação Orientada a Objetos sob uma ótica diferente da tradicionalmente utilizada no ensino. Ele faz uma relação conceitual entre a Orientação a Objetos e a tarefa de Organizar uma Festa de Aniversário para Crianças. A organização dessa festa necessita de Planejamento e Execução. Na fase de Planejamento, algumas decisões precisam ser tomadas, como por exemplo: quais doces serão servidos aos convidados e de onde esses doces virão. Na fase de Execução, outras decisões também precisam ser tomadas, como por exemplo: o que deve ser feito e quando deve ser feito. Essas habilidades de Planejamento e Execução também estão presentes ao programador que desenvolve um software orientado a objetos. Por isso, esse material busca, por meio dessa abordagem, introduzir alguns conceitos da Orientação a Objetos. Por uma questão de redução de escopo, apenas algumas ações e informações necessárias para uma festa de aniversário de crianças serão consideradas. Como poderia ser o cardápio dessa festa? O cardápio deverá conter alguns doces, como por exemplo: Brigadeiro, Bolo Marta Rocha e Torta de Maçã. Além disso, a definição das bebidas a serem servidas nessa festa, poderia ser formada por refrigerantes e sucos de frutas, por exemplo. Logo, até o presente momento, o cardápio dessa festa é formado apenas pelos seguintes elementos ou ingredientes: i) Brigadeiro, ii) Bolo Marta Rocha, iii) Torta de Maçã, iv) Refrigerante e v) Suco de Fruta. Ao imaginar essas informações escritas em um pequeno pedaço de papel ou cartão que poderia ser levado para a realização das compras em um supermercado, esse cartão poderia ter a aparência ilustrada na Figura 1. Figura 1 - Cartão que registra os elementos ou ingredientes que formam ou compõe a festa. 1
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 2 Definido os ingredientes dessa festa, define-se o que deve ser feito ou executado. Os seguintes passos poderiam ser definidos para essa festa: Definir um local de festa que possua uma mesa grande e diversas cadeiras Definir a lista de convidados Enviar convite para a lista de convidados Ir ao supermercado fazer compras Enfeitar o local da festa Colocar os doces e as bebidas na mesa Esperar os convidados chegarem Cantar o Parabéns A lista de ações apresentada anteriormente possui algumas novas informações que não tinham sido consideradas até o presente momento. Essa lista, apresenta de maneira pouco explicita novos elementos, a saber: local da festa, lista de convidados supermercado. Essas novas informações são importantes para a festa? Sim. Elas são importantes para a sua execução, Logo, elas precisam ser registradas. Não seria de todo errado dizer que essas três novas informações também são ingredientes dessa festa. Ao registrar esses três novos elementos no cartão, eles serão inseridos junto com os outros quatro ingredientes (Brigadeiro, Bolo Marta Rocha, Torta de Maçã, Refrigerante e Suco de Fruta). A Figura 2 a seguir, apresenta a aparência desse cartão com esses novos ingredientes. Figura 2 - Cartão que registra os ingredientes necessários para a festa. 2
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 3 A diferença o cartão da Figura 2 e o anterior apresentado na Figura 1, reside na inserção de três novos ingredientes, a saber: local_da_festa, lista_de_convidados e supermercado. Com o objetivo de Planejar e registrar o que é necessário para uma Festa de Aniversário de Criança, todas as informações importantes precisam ser registradas e não apenas os ingredientes. No terço inferior do cartão ilustrado na Figura 2, as ações ou passos necessários para a execução dessa festa são registrados. A Figura 3 ilustra o cartão com esses novos registros. Para diferenciar visualmente no cartão o que é ação do que é ingrediente da festa, adiciona-se um abrir ( e fechar ) parênteses após o nome de cada ação. Logo, o cartão da Figura 2 é modificado para registrar as ações necessárias resultando no cartão da Figura 3. A Figura 3 registra os ingredientes e as ações a serem executas. Figura 3 - Cartão que representa os ingredientes e procedimentos necessários para a Festa de Aniversário de Crianças Cada uma das ações registradas no terço inferior do cartão da Figura 3, possui o seu correpondente na definição da Festa de Aniversário de Crianças. Essas ações definidas no cartão, serão denominadas a partir deste ponto apenas por procedimentos ou métodos de execução. A Tabela 1 a seguir registra essa correlação. 3
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 4 Tabela 1 - Correlação entre os procedimentos listados no cartão e as ações necessárias para a definição da Festa de Aniversário de Crianças. Ação a ser executada Definir um local de festa que possua uma mesa grande e diversas cadeiras Procedimento ou Método definir_local_da_festa( ) Definir a lista de convidados definir_lista_de_convidados( ) Enviar convite para a lista de convidados enviar_convites( ) Ir ao supermercado fazer compras fazer_compras( ) Enfeitar o local da festa enfeitar_local_da_festa( ) Colocar os doces e as bebidas na mesa colocar_doces_bebidas_na_mesa( ) Esperar os convidados chegarem esperar_os_convidados( ) Cantar o Parabéns cantar_parabens( ) Definição de Quantidades: Para cada um desses elementos definidos e ilustrados na Figura 1, uma quantidade poderia ser definida, como por exemplo: 100 Brigadeiros 1 Bolo Marta Rocha 1 Torta de Maçã 3 litros de Refrigerante 3 litros de Suco Natural O preparo de uma receita: Na página http://br.mulher.yahoo.com/torta-maca-casquinha-crocante.html consultada no dia 07 de junho de 2012, existe uma receita de Torta de Maçã Crocante. A Figura 4 apresenta um snapshot dessa página e a sua respectiva receita. 4
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 5 Figura 4 - Receita de Torta de Maçã 5
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 6 A receita apresentada define os ingredientes e o modo de fazer necessário para a confecção da torta de maçã. A receita, por si só, é uma torta de maçã? Não. A receita por si só não é uma torta de maçã. Mas, podemos dizer que existe uma relação entre a receita e a torta propriamente dita. Se a receita for seguida, uma torta de maçã é produzida. Comparação entre uma Receita e Classes A receita armazena ou registra os ingredientes que definem uma torta de maçã e os processos ou procedimentos necessários a serem executados para que uma torta de mação seja criada. O mesmo acontece na orientação a objetos. A Receita equivale ao conceito de Classe em Orientação a Objetos. Os Ingredientes equivale aos Atributos em Orientação a Objetos. O Modo de Fazer equivale aos Métodos em Orientação a Objetos. Finalmente, o ato de executar a Receita, ou seja fazer a torta, em Orientação a Objetos recebe a denominação de fazer uma Instância de Classe. Com a receita exemplificada, pode-se confeccionar diversas tortas. De maneira similar, com uma definição de Classes, diversas Instâncias de Classes podem ser criadas. Criar uma Instância de Classe também é denominada por Criar um Objeto. 6