PROGRAMAÇÃO ORIENTADA A OBJETOS:                            INTRODUÇÃO E CONCEITOS.                                   Jana...
pode considerar como uma serie de                        4. Abstração de Dadoscomandos     executados      em    sequência...
Os primeiros programas tinham de       tecas permitem que se escrevam as funçõesser escritos em linguagem de máquina e    ...
programação             (estruturada):         a     não    valor de dois resistores ligados emreutilização de códigos. Mu...
linguagem não a possuir o programador            apenas os métodos dessa classe possamnão consegue sintetizá-la.          ...
Com as abstrações dos métodos,           herdados nas subclasses sem afetar oseles passam a funcionar como uma caixa      ...
VI – CONCLUSÕES                           procedural, afinal é a forma como a                                             ...
[5] Santos, R., Introdução à ProgramaçãoOriendada a Objetos Usando Java.Rio deJaneiro: Campus, 2003.
Upcoming SlideShare
Loading in …5
×

Programação Orientada a Objetos

1,109
-1

Published on

Relatório sobre Programação Orientada a Objetos (POO) para a matéria Seminários do Curso de Eng. Elétrica da UFES. Tem uma apresentação baseada nele. A POO tem outras características interessantes, então pesquise mais ^^

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,109
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programação Orientada a Objetos

  1. 1. PROGRAMAÇÃO ORIENTADA A OBJETOS: INTRODUÇÃO E CONCEITOS. Janaina Scal Duia Castello Programação Orientada a Objetos Disciplina Seminário Departamento de Engenharia Elétrica – Universidade Federal do Espírito Santo Vitória – ES – BRASIL janascal@gmail.com Resumo – Neste artigo descreve No capitulo II será descritos algunsalguns conceitos de programação a fim de conceitos básicos para facilitar a com-que se possa definir o que é Programação preensão do texto. A seguir, o capitulo III,Orientada a Objetos. Também se discute mostram a evolução das linguagens devantagens deste tipo de programação em programação até a Programação Orientadacomparação com o tipo mais usado na a Objeto, bem como principais motivosindústria de software, bem como os destas mudanças. O capitulo IV conceituamotivos e a historia de seu surgimento. o que significa Programar Orientado aAlém disso, espera-se que pessoas com objetos e descreve as principais carac-pouco conhecimento em programação terísticas deste tipo de programação. Porconsigam compreender este conceito e fim, o capitulo V discorre sobre as vanta-possam iniciar um estudo mais gens e desvantagens desta metodologia eaprofundado futuramente. comenta as conclusões sobre tal. I – INTRODUÇÃO II – CONCEITOS BÁSICOS Nos últimos anos, a indústria do 1. Paradigmas de Linguagens desoftware vem investindo numa nova Programaçãofilosofia de programação, a ProgramaçãoOrientada a Objeto. Este filosofia consiste “É um conjunto de característicasem aproximar a metodologia de programa- que servem para caracterizar um conjuntoção da metodologia do raciocínio humano, de linguagens” [1].ou seja, na discrição do mundo por De um modo mais simplificado, osconjunto de objetos, os quais possuem seus paradigmas indicam a forma como ocomponentes e suas ações bem definidas. programador visualiza como o programa será escrito e executado. Por exemplo, ele
  2. 2. pode considerar como uma serie de 4. Abstração de Dadoscomandos executados em sequência(Estruturação) ou como objetos que É o conceito de separar ainteragem entre si (orientação a objetos). manipulação dos dados (programa) de como os dados e as funções de 2. Programação Estruturada manipulação destes são implementadas. Simplificando, é o mesmo que manipular “É uma forma de programação de dados através de uma biblioteca.computadores que preconiza que todos osprogramas possíveis podem ser reduzidos 5. Orientação a Objetosa apenas três estruturas: sequência,decisão e interação” [2]. É o conceito de programar de uma Este orienta os programadores para forma mais parecida de como os humanosa criação de estruturas simples em seus compreendem o mundo e utilizando aprogramas, usando as sub-rotinas e abstração de dados. A idéia é representarfunções. Além de incentivar os comen- os dados como um conjunto de atributos,tários (trecos de texto que não são por exemplo: representa uma pessoa comoexecutáveis) para facilitar a compreensão um nome, uma idade, uma nacionalidade,do programa, seja para ajudar a relembrar etc.o programador, seja para que outros III – HISTORIAprogramadores possam entendê-lo. A máquina analítica criada por 3. Modularização Charles Babbage, em 1837, é considerado o projeto do primeiro computador de uso É a idéia de dividir um programa geral. Ela não chegou a ser construída,em etapas a fim facilitar o entendimento do apesar de se acreditar que seja um projetoprograma. Além disso, também se pode viável para época. Neste mesmo projeto jáescrever um trecho de código uma única existia uma programadora, Ada Lovelace,vez e utilizá-lo repetidas vezes no código, que escreveu um algoritmo capaz deapenas chamando-o (escrevendo o nome computar valores de uma funçãoespecificado no módulo). matemática. Contudo este projeto não chegou a ser construído, e o primeiro computador de uso geral só foi criado 100 anos mais tarde. [3]
  3. 3. Os primeiros programas tinham de tecas permitem que se escrevam as funçõesser escritos em linguagem de máquina e em arquivos separados e apenas utilize aexigiam que os programadores conhe- função, sem ter que escrevê-la no código.cessem a arquitetura, entre outras informa- A modularização subdivide o código emções, da máquina que iriam programar. módulos (blocos de códigos) o que facilitaPara facilitar a programação foram criadas a visualização do mesmo. ADA (emas Linguagens de Programação (LP), um homenagem a Ada Lovelace) e MODULA-conjunto de instrução que a maquina deve 2 agregam esses conceitos. [1]seguir. As LP abstraem os códigos da Nos anos 80 e 90 os computadoreslinguagem de maquina para códigos mais pessoais passaram a ser um bem decompreensivos para o homem. consumo, desenvolvendo da indústria de As primeiras LP foram software. Isso demandou programasdesenvolvidas com o intuito de maximizar melhores em um período de desen-a eficiência computacional das maquina, volvimento menor. Para isso surgiu opois seus recursos, como a memória e o conceito de reutilização de códigos e asprocessador, eram escassos. Nesse contex- linguagens baseadas em orientação ato surgiu a linguagem FORTRAN (For- objetos. O SMALTALK foi a primeira LPmula Translator). [1] totalmente orientada a objetos. JAVA e Apesar dos computadores terem se C++ também utilizam. [1]desenvolvido com o passar dos anos, aprogramação ainda era um ato demorado, o IV – PROGRAMAÇÃO ORIENTADAque atrapalhava o mercado de compu- A OBJETOS.tadores, uma fez que ainda era muitotrabalhoso escrever programas. Por este Programação Orientada a Objetosmotivo, nos anos 60, o enfoque das LP (POO) visa descrever o mundo realpassou a ser a melhoria da eficiência dos baseado na forma que os humanos aprogramadores, então elas passaram a usar compreendem: como objetos com atributoso paradigma Estruturado. Pascal e C são e atitudes. Por exemplo, podemos definirlinguagens desta geração. um cachorro descrevendo-o através dos Com o aumento da complexidade atributos: cor do pêlo, idade, brinquedocomputacional tornou-se difícil compre- favorito, nome, dono, etc.; e das atitudes:ender um código único. Daí apareceu o morder, lamber, andar, brincar, e etc.conceito de abstração de dados, e com o de Baseado nisso o POO evita um dosmodularização, o de bibliotecas. As biblio- problemas da forma tradicional de
  4. 4. programação (estruturada): a não valor de dois resistores ligados emreutilização de códigos. Muitas vezes paralelo.deseja-se reutilizar pedaços de outro Os objetos são instancias deprograma, porém isso acarretaria em classes, ou seja, é um elemento quemudanças substancias no código original pertence a uma classe. Só um objeto deque na pratica mais dificultam que ajudam. uma classe pode acessar os métodos dessa Como na POO a funções que mesma classe. Por exemplo, R80P1 é omanipulam os dados (atitudes) são objeto cuja resistência é 80 ohms e agüentadefinidas na descrição dos mesmos, a no máximo 1W, é uma instancia dereutilização do mesmo não é um problema. resistor, enquanto L120mH1W é um objetoOu seja, a POO tem um melhor da classe indutor, o qual não conseguedesempenho nos desenvolvimento de acessar o método paralelo da classeprogramas e um menor custo de resistor.manutenção. Esta ultima vantagem deve-se Os métodos são declarados dentroao fato de que caso seja necessário uma das classes. Por isso a reutilização demudança no código ela será local, só na códigos é tão disseminada na POO. Umdefinição da função no objeto, e se programa que utiliza uma classepropagará por todo o código. automaticamente pode reutilizar todos os A implementação da POO baseia-se seus métodos.nos conceitos: Classe (e subclasse), Ao se chamar um método de umherança, polimorfismo e encapsulamento. objeto diz-se que se esta passando uma mensagem ao objeto. Por exemplo, ao 1. Classe escrever “R80P1.paralelo(„parâmetros‟)” esta se passando a mensagem paralelo ao Estrutura modular que descreve um objeto R80P1.conjunto de dados estruturados e as fun-ções capazes de manipulá-los. É carac- 2. Polimorfismoterizada por nome, superclasse, variáveisinternas e métodos (funções associadas). “Polimorfismo é a propriedade dePor exemplo, a classe resistor pertence à uma ou mais classes responderem asuperclasse ElementoPassivo, possui a mesma mensagem cada uma de uma formavariável resistência e potência máxima, e diferente” [4].possui o método paralelo, que calcula o Essa propriedade é uma característica da Linguagem, ou seja, se a
  5. 5. linguagem não a possuir o programador apenas os métodos dessa classe possamnão consegue sintetizá-la. manipulá-los. Ela permite que várias classes Faz-se necessário explicar opossuam as mesmas características, atri- conceito de métodos privados e públicos.butos e métodos, de outras classes. Além Um método privado é uma função em quedisso, também permite a flexibilidade apenas os objetos da classe podem acessá-dessas características serem idênticas ou los, enquanto que outras classes não. Noserem redefinidas. Ou seja, duas classes mesmo conceito, um método públicopodem possuir o mesmo método (e estes qualquer classe tem acesso.realizarem comandos diferentes) e os Caso os atributos de uma classemesmos atributos com tipos diferentes (um sejam declarados como privados, eles sóinteiro e outro carácter). A LP consegue poderão ser modificados pelo própriodefinir qual das funções será executada objeto através de seus métodos. Casoatravés do tipo de objeto que recebe as contrário, qualquer objeto terá acesso amensagens, sendo essa decisão é tomada este, o que pode causar uma série de errosem tempo de execução. Isto quer dizer que se o programador não tomar muitoo programa só sabe qual função será cuidado. Com os atributos privadoschamada no momento em que for chamá- evitam-se erros, protegendo o estado dola. objeto, isto é, os seus dados. A filosofia do encapsulamento 3. Encapsulamento também consiste na abstração de como os métodos são implementados nas classes, de “A capacidade de ocultar dados forma que para passar uma mensagem adentro de modelos, permitindo que um objeto não é necessário saber como elasomente operações especializadas ou será executada, apenas qual é o seu tipo dededicadas manipulem estes dados ocultos resposta. Por exemplo, se falar consiste emchama-se encapsulamento” [5] escrever na tela uma string, então não é Modelos são representações necessário saber se o método escreve letrasimplificadas de itens, pessoas, processos, por letra ou toda a mensagem de uma vez,conceitos, etc. Ou seja, modelos são os apenas que irá aparecer uma mensagem naobjetos da POO e encapsulamento a tela. Isto permite que se consiga pensar nofilosofia de proteger os atributos do objeto programa principal de uma forma maisde uma determinada classe ao garantir que abstrata, alto nível.
  6. 6. Com as abstrações dos métodos, herdados nas subclasses sem afetar oseles passam a funcionar como uma caixa métodos das superclasses. Por exemplo,preta, o que significa que é possível defini-se a classe primata e sua subclassemodificar a sua implementação sem afetar humano. Ambas possuem o método fala,o programa principal, desde que a forma de porém redefini-se na subclasse humano. Achamar e o tipo de resposta seja mantido. classe humano e suas subclasses (ex.:Isto permite que a manutenção do sistema homem e mulher) irão executar a funçãoseja mais simplificada, afinal caso se descrita na classe humano, enquanto adescubra um erro em um método, ou se classes primata, e suas outras subclassesdecida que é melhor implementá-lo de (ex.: chimpanzé), irão executar a descritaforma diferente, não será necessário em primata.modificar todas as suas chamadas ou o Necessita-se lembrar que apenas osprograma principal, só a descrição do métodos públicos são herdados enquantométodo na classe. os métodos privados são exclusivos da classe que os possui. 4. Herança V – APLICAÇÕES “Herança é a propriedade dosobjetos que permite a criação de uma A Programação Orientada ahierarquia entre eles, onde os descen- Objetos aplica-se ao desenvolvimento dedentes herdam o acesso ao código e estru- qualquer tipo de software. Como qualquerturas de dados dos seus ancestrais.” [4] paradigma de programação, a população não compreende que está utilizando, mas Toda classe pode ter subclasses quase todos os aplicativos de internet jáassociadas as quais herdam suas utilizam este artifício.características, assim como um filho herda Quem utilizaria diretamente são osas características de seus pais, a cor do programadores de software e osolho por exemplo. Se uma classe não gerenciadores de Banco de Dados.possuir todas as características de outra Contudo, as Linguagens de Programaçãoclasse, essa nova classe não é uma são, na sua maioria, softwares livres, entãosubclasse da classe original. qualquer pessoa está apta a utilizar os Devido ao conceito de conceitos de POO.polimorfismo e de hierarquia, é possívelredefinir (mas não excluir) os métodos
  7. 7. VI – CONCLUSÕES procedural, afinal é a forma como a máquina executa os programas. Então o Como discutido durante o artigo, a código final da POO será um códigoPOO foca em resolver as duas maiores procedural, o que significa que em algumpreocupações da indústria de softwares momento houve uma conversão doatualmente: a reusabilidade dos códigos e a “método de programação”.manutenção dos softwares. Com aabstração, possibilita que várias pessoas VII – REFERENCIASpossam trabalhar no mesmo sistema efacilita o gerenciamento do projeto, uma [1] VAREJÃO, Flávio M. Linguagens devez que é mais bem definida qual a função Programação: Conceitos e Técnicas.de cada departamento. Ela também Editora Campus. Disponível em:proporciona uma metodologia de <www.inf.ufes.br/~fvarejao/livroLP.html>.programação mais próxima de como os Acesso em: 19 set. 2011.seres humanos pensam, além de reduzir oserros por mudança indesejada dos dados. [2] JACKSON, Michael A. Principles of Em contrapartida a POO nunca será Program Design. Academic Press,tão eficiente quanto à execução do London, 1975.programa. Mas no quadro em que acomputação se encontra, com [3] MENABREA, L. F. Sketch of Theprocessadores de alto desempenho e Analytical Engine Invented by Charlesmemória que chegam a 1TB (um terabyte), Babbage. Fourmilab Switzerland.e considerando que a diferença de Disponível em:desempenho não é tão alarmante e nem <http://www.fourmilab.ch/babbage/sketch.proporcional a complexidade do programa, html>. Acessado em: 19 set. 2011.esta desvantagem não é preocupante. Outra desvantagem seria a [4] Programação Orientada a Objetos.complexidade maior em aprender a POO Jackson Laskoski, Jack.eti.br. Disponívelem relação aos paradigmas procedurais. em:Mas, novamente, isto não é preocupante, <http://www.jack.eti.br/www/arquivos/apouma vez que ainda necessita-se programar stilas/java/poo.pdf>. Acessado em: 19 set.proceduralmente para descrever alguns dos 2011.métodos básicos. Logicamente o pré-requisito da POO é a programação
  8. 8. [5] Santos, R., Introdução à ProgramaçãoOriendada a Objetos Usando Java.Rio deJaneiro: Campus, 2003.

×