Programação Orientada a Objetos
Autor: Fabio Silva Ferreira | Publicado: 2008-04-28T09:07:00-03:00

Olá CCN-Aguias, vamos discutir mais um tema: A Programação Orientada a ObjetosProgramação orientada a objetos É um paradigma de programação onde o desenvolvedor é levado a abstrair o mundo real ou imaginário pelo uso de objetos que estão associados diretamente às “coisas” deste mundo real. Falando de maneira mais objetiva, trata-se de uma maneira diferente de programar que tem como vantagens a proximidade com a realidade e o reaproveitamento de código.A aproximação da realidade ocorre quando abstraímos o mundo real, pensando nos objetos e suas características (propriedades que os caracterizam juntamente com as tarefas que eles são capazes de executar – não se preocupe, veremos isto novamente adiante). O reaproveitamento de código é fruto da especialização dos objetos, pois objetos mais especializados são mais fáceis de reaproveitar em novos sistemas.Este conceito de programação não é algo propriamente novo, pois no final dos anos 60 já havia iniciativas para desenvolver uma linguagem de programação orientada a objetos.Java É uma linguagem de programação orientada a objetos desenvolvida na década de 90 por James Gosling da Sun Microsystems. Este projeto tinha como objetivo principal o desenvolvimento de uma linguagem que deveria se tornar a próxima onda do mundo digital e, para isso foram estipuladas algumas restrições como atender ao paradigma de programação orientada a objetos e ser portável, assim a Sun teria uma linguagem de programação de fácil assimilação dada a proximidade com a realidade além de conseguir que os programas criados pudessem ser executados em plataformas distintas (inicialmente geladeiras, televisões e computadores, porém atualmente temos Java sendo executado em computadores de mão, computadores de grande porte, celulares além das geladeiras).O Java foi desenvolvido de forma a usar os conceitos de orientação a objetos sem perder a robustez. Esta robustez pode ser garantida pela eliminação do acesso aos ponteiros do sistema operacional juntamente com o mecanismo de coleta de lixo (Garbage Collection).Garbage Collection Mecanismo criado para liberar a memória que não está sendo mais utilizada. Os programas Java alocam a memória de forma dinâmica em tempo de execução, porém o próprio ambiente Java se incumbe de desalocar a memória que não está mais sendo utilizada.Fundamentos da Programação Orientada a Objetos A Programação Orientada a Objetos pressupõe a utilização de alguns fundamentos e conceitos básicos e, conseqüentemente, possui uma terminologia bastante característica.Objetos Desde muito pequenos estamos acostumados a lidar com objetos. Usando a abstração conseguimos associar objetos que possuem características em comum e, desta forma agrupá-los em categorias, por exemplo, com o tempo aprendemos que um objeto que possui quatro rodas, carrega passageiro e tem um volante é denominado carro. Depois de certo tempo acabamos por descobrir que as partes componentes de um carro também são objetos, ainda aprendemos que o objeto carro é, na realidade, a especialização de um objeto veículo.Objetos são, em última instância, todas as coisas que podemos identificar no mundo real ou imaginário. Como exemplos de objetos, podemos citar carro, casa, árvore, fada e duende.Os objetos não são estáticos, eles são capazes de realizar tarefas e interagir com o meio através do envio e recebimento de estímulos capazes de alterar seu estado. Para a POO (Programação Orientada a Objetos), um objeto é uma entidade única que reúne atributos e métodos, ou seja, reúnem as propriedades dos objetos e as reações a estímulos que sofre.As propriedades de um objeto são chamadas de atributos, ou ainda de variáveis de instância, e armazenam as características em comum que o objeto conhece sobre si próprio. Métodos são os nomes dados para as tarefas que um objeto é capaz de executar.Classes Uma classe é um projeto de um objeto, descreve um grupo de objetos com os mesmos atributos e métodos. As classes podem ser definidas como formas de fazer objetos, definindo o que os objetos sabem e o que são capazes de executar. Por analogia, deduzimos que os objetos são a materialização das classes, ou ainda que os objetos são instâncias de uma classe e, conseqüentemente, seguem as regras estipuladas por ela.Representação gráfica da classe Existe uma forma gráfica de representar uma classe a fim de facilitar a sua compreensão, esta forma é utilizada no Diagrama de Classes da UML (Unified Modeling Language). Em linhas gerais a representação gráfica consiste em dividir horizontalmente um retângulo em três partes, sendo que a parte superior deverá aparecer o nome da classe de forma centralizada; a parte intermediária terá uma lista com os atributos da classe, enquanto que na parte inferior aparecerão os métodos.O nome da classe é importante para que ela seja identificável e, portanto possa ser utilizada na criação de instâncias dos objetos.Os atributos possuem um tipo de dados específico (inteiro, real, uma classe e etc). Opcionalmente os atributos podem ser inicializados com valores padrões, comumente chamados de default.Os métodos são compostos por seus respectivos nomes, uma lista de argumentos (opcional) e o tipo de dados que retorna. A este conjunto de informações é dado o nome de assinatura do método. Os argumentos de um método devem obrigatoriamente possuir um nome e um tipo de dados.Os modificadores de visibilidade são usados para adicionar segurança de acesso aos atributos e métodos de um objeto, desta forma este mecanismo pode ser explorado a fim de permitir o acesso apenas aos atributos e métodos realmente necessários. São três os modificadores utilizados: público, privado e protegido, que na UML são representados pelos símbolos +, - e #, respectivamente.Veremos mais detalhes em um futuro artigo.Até a próxima.Fabio Silva FerreiraDesenvolvendo Soluções