15
 Programação Orientada a Objeto: Introdução Professor: Adonai Estrela Medrado Data: 22/07/2008

Programacao Orientada a Objeto - Introducao

Embed Size (px)

DESCRIPTION

Programacao Orientada a Objeto - Introducao

Citation preview

  • Programao Orientada a Objeto: Introduo

    Professor: Adonai Estrela MedradoData: 22/07/2008

  • Programao

    Programao o ato de fazer um programa.

    Um programa conjunto de ordens dadas a um computador para a realizao de um determinado processo (LANCHARRO, LOPEZ e FERNANDEZ, 1991, p. 2).

    Envolve o uso de um cdigo (linguagem).Constitui somente uma das etapas no

    desenvolvimento de software.Preocupao com a qualidade deve apresentar-

    se durante todas as etapas de desenvolvimento.

  • Programao Orientada a Objeto:Destaques

    Programao orientada a objeto no sinnimo de qualidade de software (STROUSTRUP, 1995).

    Importante no aprendizado da orientao a objeto:

    A aplicao impensada de tcnicas que so eficazes em uma linguagem em outra conduz tipicamente a cdigo mal estruturado, de baixo desempenho e difcil manuteno. (STROUSTRUP, 2000, p. 18).

  • Programao Orientada a Objeto: Definio

    Segundo Stroustrup (1995), uma linguagem orientada a objeto se, e somente se, suporta:AbstraoHeranaPolimorfismo em tempo de execuo

    Critrio adicional da pureza:As classes devem ser a nica unidade de

    programao (MEYER, 1997).

  • Abstrao Classes e Objetos

    ClassePonto central da

    orientao a objeto.Definio: uma

    classe um tipo abstrato de dadoequipado com implementao parcial ou total. (MEYER, 1997, p. 165).

    ObjetoDefinio: instncia

    em tempo de execuo de alguma classe (MEYER, 1997, p. 218).

  • Abstrao Classes e ObjetosExemplo Visual

    Integer

    Tipos de Dado

    Retngulo

    Instncias

    10 19

    44

    25

  • HeranaExemplo Visual

    Uma classe A descendente de B se herda direta ou indiretamente caractersticas de B. (MEYER, 2000).

    Retngulo

    Tringulo

    Compartilham atributos de uma

    Figura Geomtrica como

    cor de borda, preenchimento e

    rea.

  • PolimorfismoExemplo Visual

    rea Tringulo(base x altura) / 2

    rea Retnguloaltura x largura

    Solicita rea da Figura Geomtrica

    Recurso de polimorfismo

    retorna a rea do Tringulo ou do

    Quadrado conforme o caso.

    Descendente deFigura

    Geomtrica

  • Principais Modificadores de Acesso

    Classe

    Elementos Pblicospublic

    Qualquer Classe

    Classe Descendente

    Elementos Protegidosprotected

    Elementos Privadosprivate

    Elemento = Dado ou Funo

  • class Triangulo extends FiguraGeometrica {

    private double altura;private double base;

    public double getAltura () {return altura;

    }public void setAltura (double valor) {

    altura = valor;}

    public double getBase () {return base;

    }public void setBase (double valor) {

    base = valor;}

    public double calcularArea() {return (getAltura() * getBase()) / 2;

    }public Triangulo() {

    setAltura(1);setBase(1);

    } }

    Campos

    Construtor

    Mtodos

  • class Retangulo extends FiguraGeometrica {

    private double altura;private double largura;

    public double getAltura () {return altura;

    }public void setAltura (double valor) {

    altura = valor;}

    public double getLargura () {return largura;

    }public void setLargura (double valor) {

    largura = valor;}

    public double calcularArea() {return getAltura() * getLargura();

    }public Retangulo() {

    setAltura(1);setLargura(1);

    } }

    Campos

    Construtor

    Mtodos

  • abstract class FiguraGeometrica {

    private int corPreenchimento;private int corBorda;

    public int getCorPreenchimento () {return corPreenchimento;

    }public void setCorPreenchimento (int valor) {

    corPreenchimento = valor;}

    public double getBorda () {return corBorda;

    }public void setBorda (int valor) {

    corBorda = valor;}

    public abstract double calcularArea(); }

    Campos

    Mtodos

  • Criando e Acessando Objetos

    FiguraGeometrica minhaFigura;int numeroDecisor;

    ...

    if (numeroDecisor % 2 == 0) minhaFigura = new Triangulo();

    elseminhaFigura = new Retangulo();

    System.out.print (minhaFigura.calcularArea ());

    A palavra new utilizada na criao um objeto.

  • Pontos Mais Importantes

    Aprender a programao orientada a objeto no tem necessariamente como conseqncia um aumento na qualidade do cdigo.

    A programao somente uma das fases do desenvolvimento de software.

    Classes podem definir a acessibilidade a seus elementos (public, private, protected).

    Para se criar um objeto utiliza-se da palavra chave new.

    Sugesto de pesquisa: Padres de Projeto (Design Patterns).

  • Referncias

    GAMMA, Erich e et al. Padres de projeto: solues reutilizveis de software orientado a objeto. Porto Alegre: Bookman, 2000.

    LANCHARRO, Eduardo Alcalde, LOPEZ, Miguel Garcia e FERNANDEZ, Salvador Peuelas Informtica bsica. So Paulo: Makron Books, 1991.

    MEYER, Bertrand. Object-oriented software construction. New Jersey: Prentice Hall PTR, 1997.

    STROUSTRUP, Bjarne. Why C++ is not just an Object-Oriented Programming Language. 1995. Disponvel em: Acesso: 20/07/2008

    STROUSTRUP, Bjarne. A linguagem de programao C++. Porto Alegre: Bookman, 2000.