Você está na página 1de 41

Especializao em Orientao a Objetos e Internet Ps-Graduao Lato-Sensu

Fundamentos de Orientao a Objetos


Prof. Srgio Teixeira de Carvalho, MSc
sergiocarvalho@anhanguera.edu.br http://www.sergiocarvalho.net
Prof. Srgio T. Carvalho - Uni-ANHANGERA

Especializao em Orientao a Objetos e Internet Fundamentos de Orientao a Objetos


- Fundamentos de Orientao a Objetos - Linguagens Orientadas a Objeto - Caractersticas Gerais de Java - Tipos Abstratos de Dados - Paradigmas de Programao

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

O que a Orientao a Objetos ? ...


Classe
rio l bu ca o vo sic b

tipo ou molde

Objeto Mensagem

instncia ou exemplar

comunicao entre objetos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Classe: representa um gabarito para muitos objetos e descreve como estes objetos esto estruturados internamente.

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Objetos: coisas do mundo real

Uma instncia um objeto criado a partir de uma classe. A classe descreve a estrutura da instncia, enquanto que o estado da instncia definido pelas operaes realizadas sobre ela.
Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Propriedade e Atributos: objetos do mundo real possuem propriedades e valores para estas propriedades

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Mensagens e Mtodos: um objeto exibe algum comportamento (executa alguma operao) quando recebe um estmulo de outro objeto

Um objeto requisita a ao de algum outro objeto enviando uma Mensagem para ele.

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Uma mensagem contm: - o nome do objeto receptor; - o nome da mensagem; - argumentos (opcional) que podem ser objetos; Uma mensagem uma solicitao a um objeto para que seja executada uma rotina denominada mtodo Os mtodos so responsveis por acessar ou alterar os atributos de um objeto

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Encapsulamento: termo formal que define o empacotamento de dados de um objeto, permitindo o acesso aos dados somente atravs dos mtodos deste mesmo objeto.

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Com o encapsulamento, o objeto se comporta como uma caixa-preta, aumentando a abstrao

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Uma classe pode tambm resumir elementos comuns de outras classes ...

Surge ento os conceitos de subclasse e superclasse.


Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

superclasse de Primata e Felino

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Conceito de Herana

superclasse para Ser humano e Chimpanz, as quais so subclasses de Primata


Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Portanto,

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Linguagens de Programao Orientadas a Objeto Algumas mais familiares: Object Pascal C# C++ Java Outras menos familiares: SmallTalk Eiffel

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Caractersticas gerais da linguagem Java - Altamente portvel - Interpretada - Sintaxe simples - Multithreading - Mecanismos de segurana bastante eficazes - Garbage collection automtico - Bom suporte de desenvolvimento - Suporte fcil para aplicaes em rede - Forte interligao com aplicaes WWW

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

do incio ... - programao procedural - modularizao - caixas-pretas

Mdulos com interface

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

dos programas procedurais ... - tipos de dados - tipos de dados abstratos (TDA) dados + operaes TDA: . permite que as unidades de programa declarem suas variveis, mas ocultem a sua representao. . conjunto de operaes para manipular objetos do tipo
Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

tipos definidos em linguagens so TDAs exemplo: tipo int da linguagem C

. representao oculta . operaes embutidas . programas podem definir variveis do tipo int
Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

Um tipo abstrato de dados satisfaz as duas condies: . A definio do tipo e as operaes sobre objetos do tipo esto contidas em uma nica unidade sinttica. Alm disso, outras unidades de programa podem ter permisso para criar variveis do tipo definido . A representao de objetos do tipo no visvel pelas unidades de programa que usam o tipo, de modo que as nicas operaes diretas possveis sobre esses objetos so aquelas oferecidas na definio do tipo.
Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

um tipo abstrato de dados ...


Contador num incio incrementa() mostraNum()

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

uma classe ...


Contador int num int incio void incrementa() int mostraNum()

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

uma classe ...


Contador int num int incio void incrementa() int mostraNum()

mtodos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

uma classe ...


Contador int num int incio void incrementa() int mostraNum()

dados (ou atributos)

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Classe Contador
public class Contador { private int num; private int inicio; public Contador(int valorInicial) { inicio = valorInicial; num = inicio; } public void incrementa() { num = num + 1; } public int mostraNum() { return num; } }
Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

uma classe ...


. contm dados . contm mtodos . so reutilizveis

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

um objeto ...
Contador c = new Contador(10);

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Programa que utiliza classe Contador


public class TesteContador { public static void main (String args[]) { Contador c = new Contador(10); c.incrementa(); System.out.println (c.mostraNum()); c.incrementa(); System.out.println (c.mostraNum()); } }

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Programa que utiliza classe Contador


public class TesteContador { public static void main (String args[]) { Contador c = new Contador(10); c.incrementa(); System.out.println (c.mostraNum()); c.incrementa(); System.out.println (c.mostraNum()); } }

mensagem

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

paradigmas de programao:
programao imperativa programao orientada a objetos

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

paradigmas de programao:
programao imperativa - variveis - atribuies - loops - procedimentos e funes

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

paradigmas de programao:
programao orientada a objetos - tudo objeto - objetos realizam computaes fazendo requisies uns aos outros atravs de mensagens - todo objeto possui sua prpria memria - todo objeto instncia de uma classe. Uma classe agrupa objetos similares

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

importantes propriedades de objetos:


- um objeto tem uma interface - a implementao oculta ( information hidden ) - encapsulamento (dados + operaes ) definio da interface: public ou private

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

ocultamento de informaes (information hidden)


-classes ocultam detalhes de implementao dos clientes -ex.: estrutura de dados pilha -elementos so inseridos e removidos de uma pilha -estrutura last-in, first-out -cliente no precisa conhecer como a pilha implementada -abstrao de dados -cdigo no depende dos detalhes de implementao

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Tecnologia de Orientao a Objetos

ocultamento de informaes (information hidden)


A definio de uma classe deve fornecer ao seu usurio toda a informao necessria para manipular uma instncia da classe corretamente, e nada mais. Um mtodo deve ser fornecido com toda a informao necessria ao cumprimento de sua responsabilidade, e nada mais.

Prof. Srgio T. Carvalho - Uni-ANHANGERA

Você também pode gostar