Sei sulla pagina 1di 51

Conceitos Fundamentais

de OO
Objetos

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Objetos

Um objeto tudo aquilo que existe, uma entidade


(fsica, conceitual ou do domnio de algum
problema).

Poderia ser um cliente, um carro, um relgio. Em


termo computacional, um objeto a representao
de algo que existe.

necessrio abstrair um "objeto" real para


represent-lo computacionalmente, como, por
exemplo, construir o objeto carro.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Objetos

Um DVD player, por exemplo, um objeto:

Existem vrias coisas que voc pode fazer com


esse objeto, como: ligar ou desligar, escutar um
som, aumentar o volume, escolher um captulo do
filme.

Sem ser necessrio o entendimento de como tudo


funciona para poder executar essas atividades.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Objetos

Computacionalmente, um objeto contm:

mtodos (procedimentos e funes em


linguagens procedimentais) e

variveis que representam seus campos de


dados (atributos).

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Atributos

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Atributos

A estrutura de um objeto representada em


termos de atributos, que so as caractersticas do
objeto, como cor e tamanho.

Exemplos:

Funcionrios: nome, endereo, telefone, CPF;

Carro: nome, marca, cor; livro: autor, editora, ano.

O conjunto de valores dos atributos de um


determinado objeto chamado de estado.

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Mtodos

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Mtodos

Por sua vez, os mtodos


habilidades dos objetos.

definem

as

As propriedades (atributos) descrevem as


caractersticas do objeto, como por exemplo:
para um objeto pessoa o nome, endereo,
telefone seriam as propriedades;

e o que essa pessoa pode fazer seria um


mtodo.

www.helioandrade.eng.br

Exemplo do uso de mtodos: O cachorrinho


Bidu um objeto da classe cachorro.

Tem habilidades de latir, sentar, comer e morder,


implementadas por meio dos seguintes mtodos
respectivamente:

late()

sente()

coma()

morda()

Um mtodo em uma classe apenas uma definio. A


ao ocorre quando o mtodo invocado atravs do
objeto, no caso Bidu.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Mtodos

Para fazer Bidu latir, sentar, comer e morder,


invocamos os respectivos mtodos da seguinte
maneira:

Bidu.late()

Bidu.sente()

Bidu.coma()

Bidu.morda()

www.helioandrade.eng.br

Objetos, Atributos e Mtodos: Concluso

Computacionalmente, um objeto no somente se


aproxima muito mais de um objeto do mundo real, como
tambm elimina o problema criado por variveis globais.

Um objeto capaz de

armazenar estados

atravs de seus atributos e

reagir (mtodos) a mensagens enviadas a ele,


assim como se relacionar (interface) e enviar
mensagens e outros objetos,

sem ter que entender como seus detalhes internos


esto implementados (encapsulamento).

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Classes

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Classes

Uma classe uma especificao para um ou


mais objetos.

O conceito de classe nasceu da necessidade


de se criar diversos objetos de um mesmo
tipo.

Dizemos que um objeto pertence a uma


classe ou, mais comumente, que uma
instncia de uma classe.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Classes

Em outras palavras, classes so uma especificao para


objetos com propriedades semelhantes (atributos),
comportamentos
semelhantes
(mtodos)
e
relacionamentos comuns com outros objetos.

Classes descrevem os tipos dos dados que compem o


objeto (o que podem armazenar - seus atributos e
estados) e

Procedimentos que o objeto pode executar (o que


podem fazer seus mtodos).

www.helioandrade.eng.br

Definio de Classe em Java

www.helioandrade.eng.br

Exemplo do uso da classe Conta em um


programa

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Herana e Polimorfismo

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Herana


e Polimorfismo

A criao de uma classe a partir de outra classe


chamada de herana.

Em outras palavras, a herana usada para criar


objetos que tem tudo que outro objeto tem, mas
tambm possui alguns detalhes prprios.

A herana nos permite pegar uma classe e


utilizar ou alterar suas propriedades e mtodos
incluindo nossas propriedades e mtodos.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Herana


e Polimorfismo

Um exemplo seria pegar uma classe Pessoa,


que possui como propriedades: nome,
endereo, telefone, CPF e etc., e incluir essa
classe Pessoa na classe Funcionrio. Dessa
forma, aproveitamos todas as propriedades de
pessoa e inclumos as propriedades especficas
de funcionrio, tais como: data de admisso,
cargo, salrio e etc.

www.helioandrade.eng.br

Exemplo de Herana em Delphi: Modelo de


formulrio para os cadastros do sistema

www.helioandrade.eng.br

Exemplo de Herana em Delphi: Cadastro de


Clientes

www.helioandrade.eng.br

Exemplo de Herana em Java: O prximo slide ilustra o


conceito de herana.

Em Java, a classe derivada ou estendida a partir da


classe base usando a palavra chave extends.

A classe base chamada de superclasse e a classe


estendida chamada de subclasse.

Uma classe Secretaria pode ser derivada de uma classe


mais geral chamada Empregado e incluir um campo de
dados chamado velocidadeDeDigitacao, que no existe na
classe Empregado.

Uma classe Gerente pode tambm ser derivada da


mesma classe Empregado e incluir um campo de dados
chamado bonus.

www.helioandrade.eng.br

Classe
Empregado

Classe Secretria

Classe Gerente

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Principais Vantagens


da Herana

A capacidade de agrupar as propriedades


comuns de diversas classes em uma
superclasse pode:

reduzir dramaticamente a repetio de cdigo em um


projeto ou programa (reutilizao de cdigo).

promover o aumento da eficincia e produtividade no


desenvolvimento de grandes projetos de software.

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Polimorfismo

www.helioandrade.eng.br

Conceitos Fundamentais de OO:


Polimorfismo

O tratamento de objetos de classes


diferentes de uma mesma forma
chamado de polimorfismo.

Para isso ser possvel as classes diferentes


tm de ser derivadas da mesma classe base.

www.helioandrade.eng.br

Conceitos Fundamentais de OO:


Polimorfismo

Um exemplo prtico do cotidiano dado por


um moedor de carne. Esse equipamento tem a
funo de moer carne, produzindo carne moda
para fazer bolinhos.

Desse modo, no importa o tipo (classe) de carne


alimentada, o resultado ser sempre carne moda,
no importa se de boi, de frango ou de qualquer
outro tipo.

Nos prximos trs slides, temos um exemplo de


polimorfismo em Java

www.helioandrade.eng.br

www.helioandrade.eng.br

Exemplo de Polimorfismo em Java: A classe Polimorfismo


ilustra o conceito de polimorfismo.

www.helioandrade.eng.br

Exemplo de Polimorfismo em Java: A classe Polimorfismo


ilustra o conceito de polimorfismo.

Uma chamada do mtodo imprime para o objeto


secretaria faz com que seja chamado o mtodo de
impresso da classe Secretaria, enquanto uma chamada
idntica para o objeto gerente chama o mtodo de
impresso dentro da classe Gerente.

Nas trs situaes, os devidos contedos so


impressos por meio do mtodo imprime, mesmo
pertencendo a classes distintas.

www.helioandrade.eng.br

Exemplo Genrico de Herana e Polimorfismo: superclasse


Mamferos e subclasses Homem, Co e Gato.

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Abstrao

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Abstrao

considerada como a habilidade de modelar


caractersticas do mundo real do problema
que o programador esteja tentando resolver.

uma visualizao ou uma representao de uma


entidade que inclui somente os atributos de
importncia em um contexto particular.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Exemplo


de Abstrao de uma Mesa

Quando fechamos os olhos e pensamos em uma mesa, esta


mesa imaginria provavelmente no vai ser igual outra
imaginada por outras pessoas, mas o que importa que
todas as pessoas que imaginaram uma mesa colocaram as
informaes que para elas so necessrias para a sua funo
(de ser uma mesa).

No importa se a mesa de trs ps ou quatro, ou se o


tampo de vidro, madeira ou mrmore.
O que importa que a imagem que idealizamos em nossa
cabea de uma mesa e tenha as informaes necessrias
para cumprir sua funo.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Outro Exemplo


de Abstrao Uma Bicicleta

Observe a figura a seguir:

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Outro Exemplo


de Abstrao Uma Bicicleta

Quando vemos esta figura, o que vem em


nossa mente?

Muitos de ns responderia que esta figura se


refere a uma bicicleta, mas algum poderia
ver nesta figura uma motocicleta.

A questo que podemos analisar : por que a


reposta dada geralmente bicicleta?

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Outro Exemplo


de Abstrao Uma Bicicleta

Podemos dizer que esta resposta mais


comum porque as caractersticas bsicas de
uma bicicleta so vistas nessa figura, como
rodas, guidon, capacidade para se mover etc.

A partir dessas descries (classe) so


geradas verdadeiras bicicletas (objetos) que
poderemos utilizar, que tero determinada cor
e
tamanho
(atributos)
para
essas
caractersticas que enumeramos.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Abstrao


Concluses

Em modelagem orientada a objetos, uma classe


um grupo de objetos com propriedades
semelhantes, o mesmo comportamento, os mesmos
relacionamentos com outros objetos e a mesma
semntica.

Ou seja, uma classe nada mais do que uma


abstrao, ela no existe propriamente, sendo
apenas uma definio.

Os objetos, por sua vez, so a instanciao de uma


classe. Eles existem de fato e podem ser
manipulados.

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Mensagem

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Mensagem

uma chamada a um objeto para invocar


um de seus mtodos, ativando um
comportamento descrito por sua classe.

Ou seja, mensagens so requisies para


que um objeto execute uma de suas aes.

Os objetos interagem atravs de mensagens.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Exemplo de


Envio de Mensagem em Java

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Mensagem

Quando um objeto criado, o acesso as


suas caractersticas feito atravs de
mensagens.

Para cada mensagem recebida pelo objeto,


existe um mtodo associado para respond-la.

Quando a mensagem estiver se referenciando


a um atributo, o valor deste deve ser devolvido,
e no caso de uma operao, o procedimento
desta executado

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Interface

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Interface

o contato entre a classe e o mundo


externo.

Para uma interface so declarados


somente o nome do mtodo e seus
parmetros.

Esta especificao de parmetros feita


atravs de seus tipos.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Exemplo do


uso de interface, mensagem e abstrao

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Interface


Concluso

Objetos possuem uma interface:

Ao interagir com um objeto, levamos em conta a


interface (o servio) e no a implementao, e
chamamos a isso de abstrao;

por meio da interface, possvel utiliz-lo e no


preciso saber dos detalhes de sua implementao;

o tipo (classe) de um objeto determina sua


interface; e

o tipo determina ainda quais mensagens lhe


podem ser enviadas.

www.helioandrade.eng.br

Conceitos Fundamentais
de OO
Encapsulamento

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Encapsulamento

a ocultao dos detalhes da


implementao dos objetos dentro
dos prprios objetos.

A POO encapsula dados (atributos) e


mtodos (comportamentos) em objetos;

Os dados e mtodos de um objeto esto


intimamente amarrados entre si;

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Encapsulamento

Os objetos tm a propriedade de ocultar


informaes.

Embora os objetos possam saber se


comunicar uns com os outros por meio de
interfaces bem-definidas, os objetos
normalmente no tm permisso para
conhecer como os outros objetos so
implementados.

www.helioandrade.eng.br

Conceitos Fundamentais de OO: Encapsulamento


Exemplo Prtico

Voc no precisa conhecer os


detalhes dos circuitos de um telefone
para utiliz-lo:

A carcaa do telefone encapsula esses


detalhes, provendo a voc uma interface
mais amigvel (os botes, os sinais de
som etc.).

www.helioandrade.eng.br

FIM
www.helioandrade.eng.br

Potrebbero piacerti anche