Dois artigos sobre Teoria Orientada a Objetos, um novo tópico para o desenvolvimento de softwares, que está aos poucos ganhando espaço no mercado de TI . O primeiro será um breve histórico sobre Orientação a Objetos e alguns conceitos básicos e o segundo será um resumo sobre os princípios da O.O. Bem vamos la:
Anos 60: A linguagem de programação chamada de SIMULA, criada por Kristen N. e Ole-Johan, derivada da ALGOL, usada para simulação, já apresentava o uso de conceitos de O.O, no caso da linguagem eram o uso de classes e sub-classes utilizado atualmente em O.O.
Anos 70: surge a primeira linguagem totalmente voltada a O.O, que é a SMALLTALK, a qual tudo era considerado como sendo um objeto (conceito de OO que veremos abaixo). Ela foi criada pelos cientistas da XEROX PARC.
Depois veio o C++ criado por Bjarme S. da AT&T Bell, linguagem que evoluiu do C, mas de fácil transição com conceitos de O.O.
Anos 80: Praticamente todas as linguagens de programação já apresentavam conceitos de O.O, como o Delphi, Java, C++, PASCAL, LISP, Cobol.3 entre outras.
Ferramentas Case: Para a implementação da O.O podem ser utilizadas algumas ferramentas como a Rational Rose, System Architect, Together C++ entre outras.
Bem vamos agora falar mesmo o que é essa Orientação a Objetos. Antes dela, o Desenvolvimento de Software era demorado e com isso era necessário estabelecer uma mudança de metodologia. Com alguns conceitos de O.O isso foi possível. A partir da chegada da O.O os desenvolvedores tiveram que se adaptar a uma mudança de habito, a programação ficou mais consistente, as linguagens de programação deixaram de ser estruturadas e passaram a ser mais complexas (evolução), além de que com a O.O os programas passaram a serem maiores e muito mais complexos.
O que a Orientação a Objetos tenta fazer então: Passar para os computadores uma abstração do Mundo real. Para isso utiliza basicamente classes e objetos. O.O então é simplesmente organizar o software em objetos que incorporam estruturas de dados e comportamentos.
Por que utilizar O.O?
Porque é um tópico atual, pois maior desempenho no desenvolvimento, qualidade (menos erros), reuso (reaproveitamento de código) e abandono de velhas metodologias.
Por que não usar?
Falta de preparo de Empresas e Desenvolvedores, Treinamentos, Ser apenas mais uma tendência, além de que é uma nova metodologia.
Bem vamos especificar então o que são esses tais objetos e classes, as quais compõe basicamente a O.O
Objetos: são instâncias de uma classe. São compostos por dados e comportamentos. Cada objeto difere de outro através de uma identidade, mesmo que apresente características semelhantes. Um objeto pode ser um parágrafo de um documento, pode ser a janela de uma estação de trabalho, pode ser o carro do Zé etc. Ele pode ser real ou abstrato, desde que armazene dados ou comportamentos. Pode se dizer que um objeto é como uma caixa preta pois é passado a ele uma mensagem dizendo o que é para ele fazer, mas sem se preocupar como irá fazer.
Classes: é um conjunto de objetos que compartilham dados e métodos. Por exemplo: temos X objetos em uma sala de aula pertencentes a uma classe chamada ALUNO.
As classes podem ser ABSTRATAS, quando servem como um modelo e não são instanciadas, PERSISTENTES, como o próprio nome diz, persistem do início ao fim da aplicação e TRANSIENTES, que são utilizadas somente quando são chamadas e utilizadas.
Ex: Identidade da Classe (ALUNO) - Atributos ou Dados (Nome, Idade, RG…) - Métodos (Cadastrar, Deletar…)
Ainda temos dentro das classes os Métodos ou Funções-Membro, que são métodos que podem manipular os atributos da classe e a Instancia, que é quando declaramos um objeto através de uma classe, parecido com declaração de uma variável.
Esse foi o primeiro resumo de OO, amanhã colocarei um artigo sobre os príncipios.