João Araujo
Dr. en Informatique, Université de Versailles, França.

View page as slide show

Características das Linguagens de Programação

Introdução a POO

Programação Orientada a Objetos

Por João Araujo.

Introdução

Apresentação baseada no texto da página:

CriaWeb

de Miguel Angel Alvarez

O que é POO?

A programação Orientada a objetos (POO) é uma forma especial de programar, mais próximo de como expressaríamos as coisas na vida real do que outros tipos de programação.

Pensar Coisas

Com a POO temos que aprender a pensar as coisas de uma maneira distinta, para escrever nossos programas em termos de objetos, propriedades, métodos e outras coisas que veremos rapidamente para esclarecer conceitos e dar uma pequena base que permita soltarmos um pouco com este tipo de programação.

Motivação

Durante anos, os programadores se dedicaram a construir aplicações muito parecidas que resolviam uma vez ou outra, os mesmo problemas.

POO é Reutilização de Código

    • Para conseguir que os esforços dos programadores possam ser utilizados por outras pessoas foi criado a POO.
    • Esta é uma série de normas de realizar as coisas de maneira com que outras pessoas possam utilizá-las e adiantar seu trabalho, de maneira que consigamos que o código possa ser reutilizado.
  • Difícil???

    • A POO não é difícil, mas é uma forma especial de pensar, às vezes subjetiva de quem a programa, de forma que a maneira de fazer as coisas possa ser diferente segundo o programador.
    • Embora possamos fazer os programas de formas distintas, nem todas elas são corretas.

    Programar e Programar Bem

    • O difícil não é programar orientado a objetos e sim, programar bem.
    • Programar bem é importante porque assim podemos aproveitar todas as vantagens da POO.

    Como se pensa em objetos

    Pensar em termos de objetos é muito parecido a como faríamos na vida real. Por exemplo, vamos pensar em um carro para dar um modelo em um esquema de POO.

    Um carro tem características

    Diríamos que o carro é o elemento principal que tem uma série de características, como poderiam ser…

    a cor

    o modelo

    ou a marca

    Um carro tem funcionalidades

    Ademais tem uma série de funcionalidades associadas, como podem ser …

    andar

    parar

    ou estacionar

    O que é Objeto???

    Então em um esquema POO o carro seria o objeto, as propriedades seriam as características como a cor ou o modelo e os métodos seriam as funcionalidades associadas como andar ou parar.

    Uma fração como objeto

    Para dar outro exemplo, vamos ver como faríamos um modelo em um esquema POO de uma fração, ou seja, essa estrutura matemática que tem um numerador e um denominador que divide ao numerador, por exemplo,

    3/2

    Métodos

    A fração será o objeto e terá duas propriedades, o numerador e o denominador. Logo, poderia ter vários métodos como simplificar, somar com outra fração ou número, subtrair com outra fração, etc.

    Como Usar?

    Estes objetos poderão ser utilizados nos programas, por exemplo, em um programa de matemáticas seria feito o uso de objetos fração e em um programa que providencie uma oficina de carros, seria utilizado o uso de objeto carro.

    Muitos objetos para um programa

    Os programas Orientados a objetos utilizam muitos objetos para realizar as ações que se desejam realizar e eles mesmos também são objetos. Ou seja, a oficina de carros será um objeto que utilizará objetos carro, ferramenta, mecânico, trocas, etc.

    Um Objeto é...

    Composto de um comportamento e de um estado.

    Objeto Bicicleta

    Classes em POO

    As classes são declarações de objetos, também se poderiam definir como abstrações de objetos.

    Objetos e Classes

    • Por exemplo: João é um objeto da classe pessoa.
    • João é concreto, pessoa é uma abstração.

    Programamos Classes

    Isto quer dizer que a definição de um objeto é a classe. Quando programamos um objeto e definimos suas características e funcionalidades na verdade o que estamos fazendo é programar uma classe. Nos exemplos anteriores, na verdade falávamos das classes carro ou fração porque somente estivemos definindo, embora por alto, suas formas.

    Propriedades em classes

    As propriedades ou atributos são as características dos objetos. Quando definimos uma propriedade normalmente especificamos seu nome e seu tipo. Podemos ter a idéia de que as propriedades são algo assim como as variáveis onde armazenamos os dados relacionados com os objetos.

    Métodos nas classes

    São as funcionalidades associadas aos objetos. Quando estamos programando as classes as chamamos de métodos. Os métodos são como funções que estão associadas a um objeto.

    Exemplo

    Objetos em POO

    Os objetos são exemplares de uma classe qualquer. Quando criamos um exemplar temos que especificar a classe a partir da qual se criará. Esta ação de criar um objeto a partir de uma classe se chama instance (que significa em inglês exemplificar).

    Exemplo

    Por exemplo, um objeto da classe fração é por exemplo, 3/5. O conceito ou definição de fração seria a classe, mas quando já estávamos falando de uma fração em concreto 4/7, 8/1000 ou qualquer outra a chamamos de objeto.

    Criar objetos

    Para criar um objeto temos que escrever uma instrução especial que possa ser distinta dependendo da linguagem de programação que se empregue, mas será algo parecido a isto.

    meuCarro = new Carro()

    Com a palavra new especificamos que se tem que criar uma instance da classe que continua a seguir. Dentro dos parênteses poderíamos colocar parâmetros com os quais se inicia o objeto da classe carro.

    Estados em objetos

    Quando temos um objeto suas propriedades tomam valores. Por exemplo, quando temos um carro a propriedade cor tomará um valor em concreto, como por exemplo, vermelho, cinza. O valor concreto de uma propriedade de um objeto se chama estado.

    Operador ponto

    Para acessar a um estado de um objeto para ver seu valor ou mudá-lo se utiliza o operador ponto.

    meuCarro.cor = vermelho

    O objeto é meuCarro, logo colocamos o operador ponto e por último o nome da propriedade a qual desejamos acessar. Neste exemplo, estamos mudando o valor do estado da propriedade do objeto a vermelho com uma simples atribuição.

    Mensagens em objetos

    Uma mensagem em um objeto é a ação de efetuar uma chamada a um método. Por exemplo, quando dizemos a um objeto carro para andar, estamos lhe passando a mensagem “ande”.

    Enviando Mensagens

    Para mandar mensagens aos objetos utilizamos o operador ponto, seguido do método que desejamos utilizar.

    meuCarro.andar()

    Neste exemplo, passamos a mensagem andar(). Deve-se colocar parênteses assim como com qualquer chamada a uma função, dentro iriam os parâmetros.

    Encapsulamento

    é o processo de ocultar todos os detalhes de um objeto que não contribuem para as suas características essenciais

    Encapsulamento protege

    O encapsulamento impede os clientes de terem uma visão interna dos objetos. Trata-se de uma barreira efetiva entre diferentes abstrações.

    Interface

    Os atributos de um objeto são acessíveis apenas por meio dos métodos da classe.

    Herança

    A herança serve para criar objetos que incorporem propriedades e métodos de outros objetos. Assim, poderemos construir uns objetos a partir de outros sem ter que reescrevê-lo todo.

    Herança define relação

    Herança define uma relação entre classes, em que uma classe compartilha a estrutura e o comportamento definido em uma ou mais classes (herança simples e herança múltipla, respectivamente).

    Exemplo

    Polimorfismo

    O polimorfismo serve para que não tenhamos que nos preocupar sobre o que estamos trabalhando, e abstrairmos para definir um código que seja compatível com objetos de vários tipos.

    Polimorfismo é um mecanismo

    É um mecanismo que permite que diferentes operações (métodos, serviços ou funções) sobre objetos de diferentes tipos tenham o mesmo nome

    Consequências

    Isto significa que um objeto pode enviar uma mensagem para outro objeto sem necessariamente saber (ou preocupar-se) a que classe o outro objeto pertence.

    Linguagens

    Simula(1967) é a primeira linguagem de programação orientada a objetos.

    Melhor suporte

    Smalltalk (1972 to 1980) é a linguagem que foi mais longe no suporte ao paradgma da POO.

    Linguagens "Puras"

    • Tudo é tratado como objeto.
    • Exemplos: Smalltalk, Eiffel, Ruby, JADE

    Projetadas principalmente

    • Linguagens projetadas principalmente para OO, mas com elementos procedurais.
    • C++, Java, Python.

    Estendidas

    • Historicamente são linguagens procedurais, mas foram estendidas com alguma características OO.
    • Fortran 2003, Perl, COBOL 2002.

    Formato particular

    • Linguagens com características OO, mas em formato particular.
    • Oberon (Oberon-1 or Oberon-2).

    Baseadas em Objetos

    • Linguagens com suporte aos tipos abstratos, mas sem todas as características da OO
    • Modula-2 (com um excelente encapsulamento e ocultação de informação), Pliant, CLU.

    FIM

    introducao_a_poo.txt · Última modificação: 31/10/2009 07:38:38 (edição externa)
    geomatica Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0