Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
FATEC - SP FACULDADE DE TECNOLOGIA DE SÃO PAULO CAMPUS Carapicuíba PROG. ORIENTADO A OBJETOS I Aula 02 Professor: Glauber da Rocha Balthazar E-mail: professorglauberbalthazar@yahoo.com.br - Abstração – Abstração O.O. Analogia Biológica de Alan Key De acordo com David (2007) o termo Programação Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programação Smalltalk. Mas mesmo antes da criação do Smalltalk, algumas das ideias da POO já eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas idéias foi a linguagem Simula 67, criada por Ole Johan Dahl e Kristen Nygaard em 1967. De acordo com Bezerra (2003) Alan Kay, formulou a chamada analogia biológica (“Como seria um sistema de software que funcionasse como um ser vivo?" com os seguintes princípios: • Cada “célula” interagiria com outras células através do envio de mensagens para realizar um objetivo comum. • Adicionalmente, cada célula se comportaria como uma unidade autônoma. • De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagissem entre si. De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagem entre si. Através de sua analogia biológica, Alan Kay definiu os fundamentos da orientação a objetos, sendo eles apresentados a seguir: 1. Qualquer coisa é um objeto. 2. Cada objeto pertence a uma determinada classe (uma classe agrupa objetos similares). 3. A classe é um repositório para comportamento associado ao objeto. 4. Classes são organizadas em hierarquias. 5. Objetos realizam tarefas através da requisição de serviços a outros objetos. Bezerra (2003) complementa afirmando que o paradigma da orientação a objetos visualiza um sistema de software como uma coleção de agentes interconectados chamados objetos. Cada objeto é responsável por realizar tarefas específicas. É através da interação entre objetos que uma tarefa computacional é realizada. Um sistema de software orientado a objetos consiste de objetos em colaboração com o objetivo de realizar as funcionalidades deste sistema. Além disso, o mundo real é formado de coisas. Na terminologia de orientação a objetos, estas coisas do mundo real são denominadas objetos. Seres humanos costumam agrupar os objetos para entendê-los. A descrição de um grupo de objetos é denominada classe de objetos, ou simplesmente de classe. Vamos a um exemplo: Objetos Três diferentes objetos são mostrados a seguir. Classes Agora cada um dos objetos mostrados anteriormente foram organizados classes. a) Classe Cadeira (...) b) Classe Carro (...) c) Classe Cavalo (...) – Classes e Objetos Segundo Furlan (1998) o primeiro conceito da orientação a objeto é o do próprio objeto. Um objeto é uma ocorrência específica (instância) de uma classe e é similar a uma entidade/tabela no modelo relacional somente até o ponto onde representa uma coleção de dados relacionados com um tema comum. A Figura 1 apresenta um modelo de como as classes são organizadas de acordo com um tema comum. Figura 1 – Organização das classes de acordo com temas em comuns Ainda de acordo com Furlan (1998) classe é uma coleção de objetos que podem ser descritos com os mesmos atributos e os mesmos métodos. Representa a idéia ou um conceito simples e categoriza objetos que possuem propriedades similares, configurando-se em um modelo para a criação de novas instâncias (Booch, 2000). A Figura 2 apresenta a representação de uma classe com seus atributos e métodos. Figura 2 – Exemplo de uma classe e seus membros Desta forma, como foi dito em todas as citações anteriores, uma classe é constituída de atributos e métodos. Um atributo pode ser visto como uma qualidade ou característica da classe. Por exemplo, a classe Funcionário, terá os seguintes atributos: nome, idade, sexo, etc. Já os métodos são os serviços que uma classe pode oferecer. Para este caso, Funcionário, poderia-se ter: calcularSalario, calcularHorasExtras, etc. Pode-se então chegar a uma conclusão analisando a estrutura gramatical das definições descritas anteriormente na qual descobre-se que um atributo é um ADJETIVO e um método um VERBO. O atributo tem a função de qualificar alguma coisa, ou descrever e o método de realizar uma tarefa, fazer algo. Desta forma, existe uma simetria entre os conceitos descritos na Língua Portuguesa e na Orientação a Objetos. A Figura 3 apresenta a classe Funcionário com seus atributos e métodos. Figura 3 – Classe Funcionário com atributos e Métodos Resumindo: o objetivo da abstração é a construção de um modelo para representar a realidade, ou seja, veja a figura 4. Figura 4 – Um objeto automóvel abstraído em uma classe Automóvel � – Classes em Java (prática) Segundo [THOMAS,PATEL,HUDSON,BALL], a Orientação a Objetos talvez seja a frase mais na moda de toda a computação. Assim como todas as frases da moda, há uma tonelada de interpretações diferentes daquilo que ela realmente significa. Desta forma, as classes são os verdadeiros elementos a orientação a objetos. Uma classe descreve um tipo contendo sub-rotinas (ou métodos) e dados. Como uma classe descreve um tipo, pode-se construir variáveis que contêm tanto métodos quanto variáveis. Tais variáveis são os objetos. Os objetos diferem das variáveis das linguagens de programação procedimentais porque podem definir o modo como os dados podem ser alterados. As sub-rotinas nas linguagens orientadas a objetos diferem de seus equivalentes nas linguagens procedimentais pois elas têm um conjunto de dados (os membros de dados definidos na mesma classe), o qual elas podem alterar, mas os outros métodos não [HOPSON,INGRAM] ainda completam, dizendo que a classe é o ponto de partida da programação orientada a objetos em Java. São elas que fornecem modelos para a especificação do estado e do comportamento de um objeto durante a execução. Um objeto é reconhecido como uma instância de uma classe. Para uma determinada classe e uma sessão runtime específica, é possível haver várias instâncias de objetos. Por exemplo, a figura 5 apresenta a classe Funcionário. Esta classe possui os atributos "salario", "setor" e "horasExtras". Ela também possui o método "calcularSalario". Do lado esquerdo é apresentado o diagrama que representa a classe e do lado direito o código fonte da implementação desta classe em Java. � � public class Funcionario { double salario; int horasExtras; double calcularSalario(){ return salario + horasExtras; } } � � Figura 5 – A classe Funcionária implementada em Java � – Exercícios Quando se diz a palavra "gato" estamos nos referindo a uma classe ou a um objeto? Quando se diz a palavra "Pedro" estamos nos referindo a uma classe ou a um objeto? O que é uma classe? O que é um objeto? Do que uma classe é constituída? Dada uma classe, descreva os seus atributos e comportamentos (métodos) como mostrado abaixo: Leia o texto abaixo atentamente: Para um sistema de controle de estoque deve-se gerenciar o produto a ser estocado. Todo produto tem um nome, preço e data de entrada. Os produtos podem ser removidos, atualizados e excluídos do sistema. Baseado no texto anterior, diga o nome da classe envolvida e quais são os seus atributos e comportamentos (métodos). Leitura/Atividade Obrigatória: Realizar um resumo (1 página de caderno pautada - frente e verso), por escrito em caneta azul ou preta e individual. Capítulo 1 - Introdução à programação orientada a objetos do livro: SANTOS, Rafael. Introdução à programação orientada a objetos usando Java / Rafael Santos. - Rio de Janeiro : Elsevier, 2003 - 12ª reimpressão. Valor 1,0 ponto na prova do 1º bimestre. � Referencial Bibliográfico BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição. Editora Campus / Elsevier, 2003. BOOCH, Grady. UML guia do usuário / Grady Booch, James Rumbaugh, Ivar Jacobson ; tradução de Fábio Freitas da Silva. - Rio de Janeiro : Campus, 2000. HADDAD, Matheus, Origem da Orientação a Objetos. WebGoal - Software simples para empresas grandes, 2009. Acessado em <14/01/13>. Disponível em < http://www.webgoal.com.br/origem-da-orientacao-a-objetos/ >. DAVID, Marcio Frayze. Programação Orientada a Objetos: uma introdução. Guia do Hardware.net, 2007. Acessado em <14/01/2013>. Disponível em <http://www.hardware.com.br/artigos/programacao-orientada-objetos/>. DEITEL, H. M. C++ Como Programar. 5ª Edição, 2006. Editora Prentice Hall. São Paulo, SP. FURLAN, José D. Modelagem de Objetos através da UML – the Unified Modeling Language – São Paulo : Makron Books, 1998. SANTOS, Rafael. Introdução à programação orientada a objetos usando Java / Rafael Santos. - Rio de Janeiro : Elsevier, 2003 - 12ª reimpressão. _1218802097.unknown _1218803281.unknown _1218801160.unknown