Você está na página 1de 9

FATEC - SP FACULDADE DE TECNOLOGIA DE SO PAULO

PROG. ORIENTADO A OBJETOS I Professor: Glauber da Rocha Balthazar E-mail: professorglauberbalthazar@yahoo.com.br

CAMPUS

Carapicuba
Aula 02

1 1.1 Abstrao O.O.

- Abstrao

Analogia Biolgica de Alan Key De acordo com David (2007) o termo Programao Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programao Smalltalk. Mas mesmo antes da criao do Smalltalk, algumas das ideias da POO j eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas idias 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 biolgica (Como seria um sistema de software que funcionasse como um ser vivo?" com os seguintes princpios: Cada clula interagiria com outras clulas atravs do envio de mensagens para realizar um objetivo comum. Adicionalmente, cada clula se comportaria como uma unidade autnoma. De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autnomos que interagissem entre si. De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autnomos que interagem entre si. Atravs de sua analogia biolgica,

Alan Kay definiu os fundamentos da orientao 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 repositrio para comportamento associado ao objeto. 4. Classes so organizadas em hierarquias. 5. Objetos realizam tarefas atravs da requisio de servios a outros objetos. Bezerra (2003) complementa afirmando que o paradigma da orientao a objetos visualiza um sistema de software como uma coleo de agentes interconectados chamados objetos. Cada objeto responsvel por realizar tarefas especficas. atravs da interao entre objetos que uma tarefa computacional realizada. Um sistema de software orientado a objetos consiste de objetos em colaborao com o objetivo de realizar as funcionalidades deste sistema. Alm disso, o mundo real formado de coisas. Na terminologia de orientao a objetos, estas coisas do mundo real so denominadas objetos. Seres humanos costumam agrupar os objetos para entend-los. A descrio de um grupo de objetos denominada classe de objetos, ou simplesmente de classe. Vamos a um exemplo: Objetos Trs diferentes objetos so mostrados a seguir.

Classes Agora cada um dos objetos mostrados anteriormente foram organizados classes. a) Classe Cadeira

(...) b) Classe Carro

(...) c) Classe Cavalo

(...)

1.2 Classes e Objetos Segundo Furlan (1998) o primeiro conceito da orientao a objeto o do prprio objeto. Um objeto uma ocorrncia especfica (instncia) de uma classe e similar a uma entidade/tabela no modelo relacional somente at o ponto onde representa uma coleo de dados relacionados com um tema comum. A Figura 1 apresenta um modelo de como as classes so organizadas de acordo com um tema comum.

Figura 1 Organizao das classes de acordo com temas em comuns

Ainda de acordo com Furlan (1998) classe uma coleo de objetos que podem ser descritos com os mesmos atributos e os mesmos mtodos. Representa a idia ou um conceito simples e categoriza objetos que possuem propriedades similares, configurandose em um modelo para a criao de novas instncias (Booch, 2000). A Figura 2 apresenta a representao de uma classe com seus atributos e mtodos.

Figura 2 Exemplo de uma classe e seus membros

Desta forma, como foi dito em todas as citaes anteriores, uma classe constituda de atributos e mtodos. Um atributo pode ser visto como uma qualidade ou caracterstica da classe. Por exemplo, a classe Funcionrio, ter os seguintes atributos: nome, idade, sexo, etc. J os mtodos so os servios que uma classe pode oferecer. Para este caso, Funcionrio, poderia-se ter: calcularSalario, calcularHorasExtras, etc. Pode-se ento chegar a uma concluso analisando a estrutura gramatical das definies descritas anteriormente na qual descobre-se que um atributo um ADJETIVO e um mtodo um VERBO. O atributo tem a funo de qualificar alguma coisa, ou descrever e o mtodo de realizar uma tarefa, fazer algo. Desta forma, existe uma simetria entre os conceitos descritos na Lngua Portuguesa e na Orientao a Objetos. A Figura 3 apresenta a classe Funcionrio com seus atributos e mtodos.

Figura 3 Classe Funcionrio com atributos e Mtodos

Resumindo: o objetivo da abstrao a construo de um modelo para representar a realidade, ou seja, veja a figura 4.

Figura 4 Um objeto automvel abstrado em uma classe Automvel

1.3 Classes em Java (prtica) Segundo [THOMAS,PATEL,HUDSON,BALL], a Orientao a Objetos talvez seja a frase mais na moda de toda a computao. Assim como todas as frases da moda, h uma tonelada de interpretaes diferentes daquilo que ela realmente significa. Desta forma, as classes so os verdadeiros elementos a orientao a objetos. Uma classe descreve um tipo contendo sub-rotinas (ou mtodos) e dados. Como uma classe descreve um tipo, pode-se construir variveis que contm tanto mtodos quanto variveis. Tais variveis so os objetos. Os objetos diferem das variveis das linguagens de programao 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 tm um conjunto de dados (os membros de dados definidos na mesma classe), o qual elas podem alterar, mas os outros mtodos no [HOPSON,INGRAM] ainda completam, dizendo que a classe o ponto de partida da programao orientada a objetos em Java. So elas que fornecem modelos para a especificao do estado e do comportamento de um objeto durante a execuo. Um objeto reconhecido como uma instncia de uma classe. Para uma determinada classe e uma sesso runtime especfica, possvel haver vrias instncias de objetos. Por exemplo, a figura 5 apresenta a classe Funcionrio. Esta classe possui os atributos "salario", "setor" e "horasExtras". Ela tambm possui o mtodo "calcularSalario". Do lado esquerdo apresentado o diagrama que representa a classe e do lado direito o cdigo fonte da implementao desta classe em Java.

public class Funcionario { double salario; int horasExtras; double calcularSalario(){ return salario + horasExtras; } }

Figura 5 A classe Funcionria implementada em Java

1.4 Exerccios 1. Quando se diz a palavra "gato" estamos nos referindo a uma classe ou a um objeto? 2. Quando se diz a palavra "Pedro" estamos nos referindo a uma classe ou a um objeto? 3. O que uma classe? 4. O que um objeto? 5. Do que uma classe constituda? 6. Dada uma classe, descreva os seus atributos e comportamentos (mtodos) como mostrado abaixo:

7. 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, preo e data de entrada. Os produtos podem ser removidos, atualizados e excludos do sistema. Baseado no texto anterior, diga o nome da classe envolvida e quais so os seus atributos e comportamentos (mtodos).

Leitura/Atividade Obrigatria: Realizar um resumo (1 pgina de caderno pautada - frente e verso), por escrito em caneta azul ou preta e individual. Captulo 1 - Introduo programao orientada a objetos do livro: SANTOS, Rafael. Introduo programao orientada a objetos usando Java / Rafael Santos. - Rio de Janeiro : Elsevier, 2003 - 12 reimpresso. Valor 1,0 ponto na prova do 1 bimestre.

Referencial Bibliogrfico BEZERRA, Eduardo. Princpios de Anlise e Projeto de Sistemas com UML - 2 edio. Editora Campus / Elsevier, 2003. BOOCH, Grady. UML guia do usurio / Grady Booch, James Rumbaugh, Ivar Jacobson ; traduo de Fbio Freitas da Silva. - Rio de Janeiro : Campus, 2000. COBRA, Alexandre. Origem da Orientao a Objetos. WebGoal - Software simples para empresas grandes, 2009. Acessado em <14/01/13>. Disponvel em < http://www.webgoal.com.br/origem-da-orientacao-a-objetos/ >. DAVID, Marcio Frayze. Programao Orientada a Objetos: uma introduo. Guia do Hardware.net, 2007. Acessado em <14/01/2013>. Disponvel em <http://www.hardware.com.br/artigos/programacao-orientada-objetos/>. DEITEL, H. M. C++ Como Programar. 5 Edio, 2006. Editora Prentice Hall. So Paulo, SP. FURLAN, Jos D. Modelagem de Objetos atravs da UML the Unified Modeling Language So Paulo : Makron Books, 1998. SANTOS, Rafael. Introduo programao orientada a objetos usando Java / Rafael Santos. - Rio de Janeiro : Elsevier, 2003 - 12 reimpresso.

Você também pode gostar