Página Inicial > Aprender a Programar Programando, Desenvolvimento, Série > Entendendo Orientação a Objetos na prática Parte 1

Entendendo Orientação a Objetos na prática Parte 1

19, dezembro, 2009 Isaque Alves

Olá, pessoal. Não sou professor, sou apenas um estudante de Sistemas de Informação indo para o 3º ano do curso (falta pouco!!).

Como colega de outros estudantes, percebo que apesar de todo o esforço de muitos professores em sala de aula ou laboratórios, muito pouco do que eles passam é realmente aproveitado.

Observei o seguinte: Há uma grande dificuldade em se apreender conceitos simples como ‘polimorfismo’, herança e até ocorrem confusões quanto aos termos overload e override. Além disso, a maioria dos estudantes parece perdido frente a conceitos como ‘encapsulamento’: não sabem decidir quando declarar um método ou atributo como público, privado ou protegido (public, private ou protected).

Isso é ruim… muito ruim.

Decidi então partilhar um pouco do que aprendi (Sei… existem muitos conceitos, muitos posts pela internet apresentando o mesmo assunto…), mas não vamos ficar só na teoria, na apresentação de conceitos ou códigos previamente elaborados.

Minha proposta aqui vai além, e meu objetivo é demonstrar claramente cada conceito com base em uma das melhores questões de avaliação de programação que eu já vi.

Vou dividir esse post em pelo menos 3 partes, uma contemplando a teoria mesmo e apresentando conceitos básicos de design e desenvolvimento orientados a objetos, e as outras caindo na prática pra criarmos uma solução à questão proposta.
Nesta primeira parte, iremos abordar uma definição trazendo também uma contextualização histórica e apresentaremos alguns conceitos básicos.

Uma boa leitura!!

Orientação a Objetos

Orientação a objetos ou OO é um paradigma, ou seja, um padrão de análise, modelagem, projeto e programação, e não apenas uma técnica de programação. Seu uso afeta todo a compreensão do sistema por seus usuários de fato e torna mais simples a gestão de código e características dos sistemas computacionais.

Diferentemente da programação procedural ou estruturada, no paradigma OO todo o esquema de um sistema é baseado na troca de mensagens entre os objetos integrantes do próprio sistema. Essa troca de mensagens é fundamental e implementa o nosso conceito de estímulo-resposta recorrente no nosso mundo real. Além disso, o simples fato de a implementação dos sistemas ser menos acoplada, ou seja, há maior e verdadeira independência entre as partes que formam o todo, torna-se possível uma prática denominada reutilização. Economia é a palavra-chave.

Um pouco história

O paradigma da orientação a objetos tem uma história um pouco recente. O primeiro esforço significativo no sentido de fazer uso de uma linguagem que se caracterizasse pelo uso de abstrações mais fieis aos objetos do mundo real envolvidos nos problemas a que os programas desenvolvidos fossem relativos.

No paradigma procedural, toda a arquitetura é orientada às ações que o sistema deve realizar, ou seja, tudo é voltado basicamente às funções do sistema, sendo na maioria das vezes, soluções únicas para problemas únicas com pouca ou nenhuma reutilização de funcionalidades.

A primeira linguagem de que se tem notícia a trabalhar explicitamente com orientação a objetos foi a Simula 67, desenvolvida na década de 1960 na Noruega, no Centro Norueguês de Computação ( Em inglês, Norwegian Computing Center, e em norueguês: Norsk Renesentral) por dois professores:

 

Simula 67 na verdade, se propunha a ser uma extensão para outra linguagem já existente (ALGOL 60) como o objetivo de realizar a simulação de eventos discretos.

Simula 67, no entanto não foi ‘a linguagem‘ orientada a objetos a aparecer definitivamente. Isso só aconteceria por volta das décadas de 1970/1980 com a linguagem SmallTalk, desenvolvida por uma equipe de trabalho da Xerox encabeçada pelo pesquisador Allan Kay. Os principais pontos em que SmallTalk 80 diferia da linguagens tradicionais:

  • O Código era compilado para bytecode e executado através de máquina virtual;
  • Tudo em Smalltalk era necessariamente um objeto;
  • A troca de mensagens entre os objetos era a forma padão de implementação das funções ou métodos;
  • Um esboço claro de polimorfismo;
  • Um esboço de Overload ou sobrecarga de métodos;
  • Todas as classe obedeciam uma hierarquia, descendendo de uma superclasse.
  • Todo objeto funcionava como instância de uma classe, a qual determinava-lhe os comportamentos e propriedades.
  • SmallTalk não possuia tipos primitivos, sendo assim, todo e qualquer objeto era implementado na forma de classes.

 

O importante é que isso moldou definitivamente todo o conceito de orientação a objetos. A partir de então, surgiram implementações de diferentes linguagens utilizando-se das facilidades do paradigma de orientação a objetos.

Linguagens que suportam orientação a objetos

Bem , a lista é grande, e se faz desnecessário nomear a todas aqui, uma vez que esse não é nosso objetivo, mas é interessante saber que a maioria das linguagens modernas implementa intrinsecamente o paradigma OO.
Entre elas temos C++, Object Pascal (Delphi, Lazarus IDE), Python, Java (a Linguagem e a plataforma), C# (C sharp), e diversas ’scripting languages’, como PHP, Ruby, Javascript, ActionScript.

Não há registros relacionados ao tema

Página« 1 2View All»

Os comentários estão fechados.
This site employs the Wavatars plugin by Shamus Young.