Introdução à Orientação a Objetos
Paradigmas de programação Objetos Classes
Paradigma não é só uma palavra bonita! Lógico - tudo é assertiva lógica: Prolog, Mercury; Funcional tudo são listas e funções: Erlang, LISP; Imperativo (Estruturado) tudo é comando: Lua, C, Pascal; Orientado a Objetos tudo é objeto: Smalltalk, C++, Java. O paradigma de programação orientada a objetos é uma evolução da programação imperativa (estruturada).
Programas orientado a objetos consistem de entidades, denominadas (claro!) objetos; Essas entidades correspondem aos conceitos que o programa irá manipular; Objetos tem sua estrutura e suas propriedades definidas em uma classe: Uma classe Empregado é uma fôrma (única) usada para criar (um ou mais) objetos Empregado; Objetos se comunicam com outros: Um objeto Empresa deve perguntar a um objeto Empregado: Qual seu nome?.
Orientação a objeto provê: O paradigma de troca de mensagens provê uma clara e consistente sintaxe para acessar e modificar os objetos.
Orientação a objeto provê: Encapsulamento provê uma forma de tornar os dados e funções próprias, ocultos e inacessíveis.
Orientação a objeto provê: Herança permite que novas estruturas possam ser definidas a partir de outras já existentes, re-utilizando o código dos pais.
Orientação a objeto provê: O polimorfismo indica às estruturas a que tipos elas pertencem e que formas elas podem assumir, durante a execução do sistema.
Orientação a objeto provê: Todos os objetos mantém a coesão com um conjunto completo de operações e atributos que são relevantes para trabalhar com os mesmos, e o descrevem claramente.
Um objeto é um agrupamento de informações que modela conceitos de alto-nível no domínio do problema do programa. Todo objeto possui um tipo; Um objeto pode ser composto de outros; Objetos enviam mensagens uns aos outros; Objetos de um determinado tipo podem receber as mesmas mensagens; Um objeto é algo que tem: estado, comportamento e identidade.
O estado de um objeto representa uma das possíveis condições em que um objeto pode existir; O estado é representado pelo conjuntos dos valores dos atributos de um objeto em um determinado momento de tempo; O estado do objeto usualmente muda ao longo do tempo. Exemplo Controle Acadêmico (Aluno) Nome: Godofredo Lisboa Matrícula: 100510 Semestre de Ingresso: 2002.1
O comportamento determina como um objeto age e reage: as modificações de estado e as interações com outros objetos; O comportamento é determinado pelo conjunto de operações que o objeto pode realizar; As operações manipulam atributos e/ou realizam uma ou mais ações. Exemplo - Controle Acadêmico (Aluno) Matricular aluno (Godofredo Lisboa) Solicitar numero de matrícula: Retorna: 100510
Cada objeto tem uma única identidade, mesmo que seu estado seja idêntico ao de outro objeto em determinado momento de tempo; Ou seja, cada objeto é único e distinguível dos demais; A identidade do objeto é gerada a partir da sua instanciação e criação de referências.
A relação entre coisas reais no domínio do problema é, geralmente, reproduzida no programa orientado a objetos.
Quando estamos modelando o domínio de um programa, observa-se a existência de entidades e conceitos (similares ou não) que compõem àquele domínio; Em OO, essa modelagem é feita através da abstração dos atributos (variáveis) e operações (métodos) dessas entidades e conceitos, através da implementação de CLASSES. Uma classe deve modelar uma e apenas uma entidade ou conceito-chave.
Uma classe é a descrição de um grupo de objetos com propriedades similares (atributos), comportamento comuns (operações), relacionamentos comuns com outros objetos (associações, agregações, composições), e semântica comum; Uma classe é um molde, uma planta, para a criação de vários objetos similares (de mesmo tipo); O objeto criado a partir de uma classe, é uma instância.
Objetos criados a partir da mesma classe terão a mesma estrutura e funcionalidade básicas; Todos os carros criados a partir de uma classe Carro, aparentarão e funcionarão basicamente da mesma maneira Da mesma forma que uma planta serve de guia para produção de carros específicos numa linha de montagem. Quantas instâncias forem necessárias podem ser criadas a partir de uma classe única. Uma classe Carro pode gerar quantos tipos de carros sejam necessários na aplicação Da mesma forma que uma linha de montagem fabrica, a partir de uma planta única, quantos carros estejam definidos para produção.
Um molde (classe) e suas instâncias (objetos).
Atribuição-Uso Não-Comercial 2.5 Brasil