Vous êtes sur la page 1sur 27

Programao Orientada a

Objetos
Prof. Dr. Nilton Alves Maia

Objetos
Entidades do mundo real...
Toda entidade existente no mundo real pode ser
considerada um objeto;
Exemplos:
Mesa da minha casa, cadeira da cozinha...
Meu cachorro, seu gato, seu papagaio..
Cliente de um banco, caixa eletrnico do banco...
Professor da escola, disciplina do curso...

O que so objetos?
Um objeto uma varivel ... Ele armazena dados.
Um objeto possui ento atributos (dados) e
comportamentos (mtodos ou operaes /funes,
que atuam sobre ele).
Ricardo Scavassa: Cliente

Nome do Objeto

Nome : "Ricardo Scav."


Idade : 22

Atributos

Criar()
Destruir()

Operaes

O que um programa em linguagem OO?


Um programa um conjunto de objetos dizendo
uns para os outros o que fazer atravs do envio
de mensagens.
Pode-se pensar nas mensagens como sendo
chamadas a funes que pertencem a um objeto
em particular.

Classes
Aristteles j identificava a idia de tipos:
Classe das aves e classe dos peixes;
Os objetos, apesar de serem nicos, fazem parte
de uma classe de objetos que possuem
caractersticas comuns

Classes
Objetos com caractersticas similares so agrupados
em classes;

Cada objeto pertence a uma classe que define


suas caractersticas e comportamento.

Classes

Atributos e mtodos
Objetos/classes possuem propriedades associadas;
As propriedades podem ser definidas em duas partes:
Atributos: armazenamento de dados (caractersticas) do objeto
definio, tipo e valor;
Operaes (mtodos): representao do comportamento do
objeto
definio, parmetros, valor de retorno e implementao;

O conjunto de valores dos atributos de um objeto define o


estado de um objeto...

Atributos e mtodos
Classe Vaca:
Atributos: nome, idade, produo mdia de leite...
Mtodos: produzir leite, pastar, ruminar...
Estado do objeto Mimosa (instncia da classe
Vaca):
Mimosa, 5 anos, 50 litros/dia;

Componentes de uma classe

Cliente
Nome : String
Idade : Num

Nome da Classe

Criar()
Destruir()

Operaes

Atributos

Componentes de uma classe

Fornecedor
NomeForn : String
CGC : Num
Criar()
Destruir()

Nome da Classe
Atributos
Operaes

Classes X Objetos
Um objeto uma instncia de uma classe:
Objeto um conceito concreto, enquanto classe um
conceito abstrato;

Ricardo Scavassa: Cliente

Nome do Objeto

Nome : "Ricardo Scav."


Idade : 22

Atributos

Criar()
Destruir()

Operaes

Criao de objetos
Toda classe define um ou mais mtodos para a
criao de novos objetos, normalmente denominados
mtodos construtores da classe.

Toda vez que um novo objeto criado, um construtor


da correspondente classe chamado para execuo.
O mtodo construtor geralmente definido com o
nome da classe:
Ex: Vaca() o mtodo construtor da classe Vaca.
mimosa = new Vaca(); //em Java

Destruio de objetos
Assim como existem mtodos construtores existem
tambm mtodos destrutores.

So utilizados para limpar a memria utilizada na


criao de objetos.
Em Java, no existem mtodos destrutores.
A limpeza da memria feita de maneira automtica e
implcita (Garbage Collector)

Em C++ o mtodo destrutor chamado explicitamente


pelo programador
objeto.free()?

Objetos e interfaces

Encapsulamento
A estratgia utilizada para garantir que determinadas
partes de uma classe no sejam acessveis por seus
clientes denominada controle de acesso.
A interface no apresenta necessariamente todos os
mtodos de um objeto,
mas somente aqueles que podem ser acessados pelo
pblico em geral, os chamados mtodos pblicos.
Existem mtodos internos aos objetos: os mtodos
privados.

Encapsulamento

Encapsulamento

Reutilizando a implementao
Uma vez que uma classe foi criada e testada, ela
pode ser utilizada por outras classes para auxiliar
sua implementao.
Principal vantagem da POO.

A forma mais simples de reutilizao usar um


objeto daquela classe diretamente.
Exemplos:
Janela no Windows;
Matriz em um programa de clculo, etc ...

Reutilizando a implementao atravs da


composio
Exemplos de composio:
Classes roda, motor, lataria, ... e a classe carro;

Reutilizando a implementao
atravs da composio
Como se identifica a composio?
Identifica-se a possibilidade de composio atravs dos
seguintes verbos tpicos: conter, possuir.
Ex: Um carro contm 4 rodas, 1 motor, 1 lataria,

Reutilizando a interface atravs de


herana
Permite modelar uma hierarquia entre classes:
classes mais especializadas (filhas) herdam
propriedades da classe mais geral (classe pai);

Pode-se compartilhar mtodos e atributos entre


diferentes classes e subclasses.
Criar uma nova classe programando somente as
diferenas desta para a classe pai.

Identifica-se a possibilidade de herana atravs da


seguinte expresso tpica: um tipo de.

Reutilizando a interface atravs de


herana
Exemplo:
Ave um tipo de Animal;
Mamfero um tipo de
Animal;
Ave come, dorme, voa e
botaOvo;
Mamfero come, dorme e
mama.
Uma Ave (ou um
Mamfero) podem substituir
Animal pois so tipos de
Animal (tem a mesma
interface!).

Reutilizando os atributos atravs de


herana

Pessoa

PessoaFsica

PessoaJuridica

Pacotes
Classes podem ser logicamente organizadas em grupos
denominados pacotes.
Ex: a classe Aluno, juntamente com a classe Professor,
poderiam ser organizados no pacote Faculdade;

Pacotes so estruturados de forma hierrquica.


Universidade

Faculdade

Aluno e Professor

Programa em Java utilizando Classes e


Objetos

class Retangulo
{
public int bas, alt;
//private int bas, alt;

//Define a classe Retangulo


// Atributos
// Atributos

public void init(int b,int h) // Mtodo para inicializar os dados


{
bas=b;
alt=h;
}
public void printdata()
// Mtodo imprime a rea
{
System.out.println("Base = " + bas + " Altura = "+ alt);
System.out.println("Area = " + (bas*alt));
}
}
public class pretangulo {
public static void main(String args[]) {

Retangulo x = new Retangulo();


Retangulo y = new Retangulo();
x.init(5,3);
x.bas=10;
y.init(10,6);
x.printdata();
y.printdata();
}
}

//Declara dois objetos

// Chama Mtodo que inicializa os atriibutos do objeto x


// Chama Mtodo que inicializa os atriibutos do objeto y
// Chama Mtodo que imprime a rea do retngulo x
// Chama Mtodo que imprime a rea do retngulo y