SlideShare a Scribd company logo
1 of 43
PHP: Programando com
Orientação a Objetos
Pablo Dall'Oglio
Adianti Solutions
www.adianti.com.br

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Roteiro

Conceitos de Orientação a Objetos;
Classes, objetos, propriedades, métodos;
Métodos construtores e destrutores;
Associação, agregação, composição e herança;
Encapsulamento e polimorfismo;
Exemplos práticos.

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Introdução – Programação Estruturada

Vamos entender como surgiu a Orientação a Objetos;
Como era a programação antes da O.O. ?
O paradigma que reinava era a programação estruturada;
A programação estruturada introduziu conceitos
importantes na engenharia de software em sua época;
É baseada fortemente na modularização;
A idéia da modularização é dividir o programa em
unidades menores conhecidas por procedimentos ou
funções, que são construídas para desempenhar uma
tarefa específica;
E

Processo

S

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Introdução – Programação Estruturada

Na programação estruturada, as unidades do código
(funções) se interligam por meio de três mecanismos
básicos: seqüência, decisão e iteração, como ilustrado na
figura a seguir:

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Introdução – Programação Estruturada

As funções ou procedimentos e podem ser executados
várias vezes;
As funções podem receber parâmetros fazendo com que o
resultado do seu processamento interno varie de acordo
com os argumentos (parâmetros) de entrada;
É possível executar uma função sob diversas circunstâncias
diferentes;
Estes itens configuram um importante conceito da
engenharia de software: o REUSO;
Além disto, uma boa modularização deve ter alta coesão e
baixo acoplamento;

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Análise Estruturada

Análise Estruturada: Em primeiro lugar se pensa nos dados e
nas estruturas que irão armazená-los (E.R.).

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Análise orientada a objetos

Análise O.O.: Em primeiro lugar se pensa nos conceitos, seus
atributos, seu comportamento e nos seus relacionamentos.

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Análise orientada a objetos

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Objetos

O sistema é organizado através de um conjunto de objetos;
Uma entidade que possui atributos, comportamento e se
relaciona com outros objetos por meio de mensagens;
Um objeto pode ser algo concreto (pessoa, bicicleta, um
pedido) ou abstrato (uma botão, uma janela, um arquivo);
O objeto possui responsabilidade sobre si (encapsulamento);
Os objetos propiciam maior compreensão do mundo real;
A orientação a objetos leva à um baixo grau de acoplamento;
Algumas linguagens Orientadas a Objetos:
Smaltalk;
C++;
Java;
PHP;
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Objetos

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Classes

A classe é uma estrutura estática utilizada para descrever
(moldar) objetos;
A classe é um modelo (template) para criação de objetos;
Podem ser classes: entidades do negócio da aplicação
(pessoa, conta, cliente), entidades de interface (janela,
botão, painel, frame, barra), dentre outras (conexão com
BD, um arquivo XML, um Web Service);
Um grupos de objetos é descrito por uma classe;
Um objeto é uma instância de uma classe.
Exemplo:
Classe: Fatura / Objeto: Fatura no. 5470
Classe: Pessoa / Objeto: João, Maria, etc...
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Propriedades

Propriedades são Atributos, características de um objeto;
Os atributos definem a identidade de um objeto;
Exemplo: Nós, seres humanos, somos definidos pelo conjunto
de nossos atributos: físicos (algura, cor da pele, algura, cor do
cabelo), psicológicos (personalidade, humor, empatia), de
trabalho (capacidade, especialização, criatividade), de estudo
(nível de escolaridade), dentre outros.

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Métodos

Os métodos são operações que definem o comportamento
de um objeto;
Os métodos definem como o objeto irá se relacionar com o
mundo externo;
É por meio de um método, que solicitamos que um objeto
faça algo.

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Definindo uma classe
<?php
class Pessoa
{
// define os atributos
public $Codigo;
public $Nome;
public $Altura;
public $Idade;

Atributos

// define os métodos
function setNome($nome)
{
$this->Nome = $nome;
}
function Crescer($centimetros)
{
$this->Altura += $centimetros;
}

}
?>

function Envelhecer($anos)
{
$this->Idade += $anos;
}

Métodos

Métodos

Métodos

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Instanciando Objetos
<?php
// inclui a classe
include 'pessoa.class.php';
// instancia o objeto
$maria = new Pessoa;

Instanciando o objeto

// define aributos
$maria->Altura = 1.7;
$maria->Idade = 28;
// executa métodos
$maria->setNome('Maria da Silva');
output
$maria->Crescer(0.1);
object(Pessoa)#1 (4) {
$maria->Envelhecer(1);
["Codigo"]=> NULL
// imprime o objeto
var_dump($maria);
?>

}

["Nome"]=>
string(14) "Maria da Silva"
["Altura"]=> float(1,8)
["Idade"]=> int(29)

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Instanciando Objetos
<?php
// instancia um objeto (janela)
$janela = new GtkWindow;
// define o tamanho da janela
$janela->set_size_request(300,200);
// instancia um rótulo de texto
$label = new GtkLabel('Olá Mundo');
// adiciona o rótulo à janela
$janela->add($label);
// exibe a janela
$janela->show_all();
// controle Gtk
Gtk::Main();
?>

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Construtores e destrutores

Um construtor é um método especial utilizado para definir
o comportamento inicial de um objeto, ou seja, o
comportamento no momento de sua criação;
O método construtor é executado automaticamente no
momento em que instanciamos um objeto por meio do
operador new;
Um método destrutor ou finalizador é um método especial
executado automaticamente quando o objeto é desalocado
da memória, quando atribuímos o valor NULL ao objeto,
quando utilizamos a função unset() sobre o mesmo ou, em
última instância, quando o programa é finalizado;
O método destrutor pode ser utilizado para finalizar
conexões, apagar arquivos temporários criados durante o
ciclo de vida do objeto, dentre outros.
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Construtores e destrutores
<?php
class Pessoa
{
public $Codigo;
public $Nome;
// método construtor
function __construct($codigo, $nome)
{
$this->Codigo = $codigo;
$this->Nome
= $nome;
}

}

// método destrutor
function __destruct()
{
echo "desalocando {$this->Nome}n";
}

output
object(Pessoa)#1 (2) {
["Codigo"]=> int(27)
["Nome"]=>
string(14) "Maria da Silva"
}
object(Pessoa)#2 (2) {
["Codigo"]=> int(28)
["Nome"]=>
string(14) "Joana Maranhão"
}
desalocando Maria da Silva
desalocando Joana Maranhão

$maria = new Pessoa(27, 'Maria da Silva');
$joana = new Pessoa(28, 'Joana Maranhão');
var_dump($maria, $joana);
unset($maria);
Método destrutor
unset($joana);
?>

Método construtor

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Encapsulamento

As classes são orientadas ao assunto, ou seja, cada classe
é responsável por um assunto diferente e é responsável
sobre o mesmo, ou seja, deve proteger o seu acesso;
A proteção ao acesso ao seu conteúdo se dá por meio de
mecanismos como o de encapsulamento;
O encapsulamento visa separar os aspectos externos de
um objeto dos detalhes internos daquele objeto.
É uma forma de proteger certos atributos, evitando que os
mesmos contenham valores inconsistentes ou sejam
manipuladas indevidamente;
Exemplo: Datas, Valores Numéricos;

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Estrutura de um Objeto

dados
mensagem

funções
(métodos)
que manipulam
os dados

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Encapsulamento
<?php
class Pessoa
{
private $Codigo;
public $Nome;
private $Altura;
function __construct($codigo)
{
$this->Codigo = $codigo;
}

}

function setAltura($altura)
{
$this->Altura = $altura;
}

output
Fatal error: Cannot access private
property Pessoa::$Altura in
exemplo.php on line 25

Tipos de visibilidade
PRIVATE :: SOMENTE PRÓPRIA CLASSE
PROTECTED :: CLASSE E DESCENDENTES
PUBLIC :: DE QUALQUER PONTO

$maria = new Pessoa(27);
$maria->Nome = 'Maria da Silva';
$maria->setAltura(1.7);
$joana = new Pessoa(28);
$joana->Nome = 'Joana Maranhão';
$joana->Altura = 1.8;
?>

Acesso não permitido

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Associações

Associação é a relação mais comum entre dois objetos;
Na associação, um objeto possui uma referência à outro
objeto, podendo visualizar seus atributos ou mesmo
acionar uma de suas funcionalidades (métodos);
A forma mais comum de implementar uma associação é
ter um objeto como atributo de outro;
No exemplo a seguir, criamos um objeto do tipo Produto
e outro do tipo Fornecedor;
Um dos atributos do produto é o fornecedor;
Leia-se um objeto – está relacionado com – outro
objeto;

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Associações

Exemplo em diagrama UML

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Associações
<?php
class Produto
{
    public $Codigo;
    public $Descricao;
    public $Preco;
    public $Fornecedor;

<?php
class Fornecedor
{
    public $Nome;
    public $Telefone;
    public $Endereco;
}
?>

// exibe os dados do produto    
    function ExibeDados()
    {
        echo 'Codigo: '    . $this->Codigo . "<br>n";
        echo 'Descricao: ' . $this->Descricao . "<br>n";
        echo 'Preço: '     . $this->Preco . "<br>n";
        echo 'Fornecedor:' . $this->Fornecedor->Nome . "<br>n";
    }

}
?>

// atribui um fornecedor ao produto
function setFornecedor(Fornecedor $fornecedor)
{
$this->Fornecedor = $fornecedor;
Associação interna
}

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Associações
<?php
include_once 'classes/Produto.class.php';
include_once 'classes/Fornecedor.class.php';
$macarrao = new Produto;
$macarrao->Codigo 
= 7;
$macarrao->Descricao  = 'Macarrão instantâneo';
$macarrao->Preco 
= 1.29;
Codigo: 7
$macarrao->Quantidade = 10;
$isabela = new Fornecedor;
$isabela->Nome 
= 'Massas Isabela';
$isabela->Telefone = '(51) 1234-5678';
$isabela->Endereco = 'Rua das Massas';
// associacao
$macarrao->setFornecedor($isabela);

output

Descricao: Macarrão instantâneo
Preço: 1,29
Fornecedor:Massas Isabela

Método de associação

// exibe as informacoes
$macarrao->ExibeDados();
?>

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Agregação

A agregação é o tipo de relação entre objetos conhecida
como todo/parte;
Na agregação, um objeto agrega outro objeto, ou seja,
referencia objeto(s) externo dentro de si;
O objeto-pai poderá agregar uma ou muitas instâncias de
um outro objeto e poderá utilizar funcionalidades do
objeto agregado;
A forma mais simples de implementar agregações é
utilizando arrays;
Criamos um array como atributo do objeto, sendo que o
papel deste array é armazenar inúmeras instâncias de um
outro objeto;
Leia-se um objeto – contém – instâncias de outros
objetos.
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Agregação

Exemplo em diagrama UML

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Agregação
<?php
class CestaDeCompras
{
    private $Produtos;  // colecao de objetos (array)
    function AdicionarItem(Produto $produto)
    {
Método de agregação
        $this->Produtos[] = $produto;
    }
    function ExibeLista()
    {
        foreach ($this->Produtos as $produto)
        {
            echo $produto->Descricao . "<br>n";
        }
    }
    function CalculaTotal()
    {
        $total = 0;
        foreach ($this->Produtos as $produto)
        {
            $total += $produto->Preco;
        }
        return $total;
    }
}
?>
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Agregação
<?php
class Produto
{
    public  $Codigo;
    public  $Descricao;
    public  $Preco;
}

output
Chocolate Sensação
Picanha Bovina
Total : 19,2

$chocolate = new Produto;
$chocolate->Codigo=4;
$chocolate->Descricao = 'Chocolate Sensação';
$chocolate->Preco = 1.2;
$picanha = new Produto;
$picanha->Codigo=7;
$picanha->Descricao = 'Picanha Bovina';
$picanha->Preco = 18;
$cesta = new CestaDeCompras;
$cesta->AdicionarItem($chocolate);
$cesta->AdicionarItem($picanha);

Chamada à agregação

$cesta->ExibeLista();
echo 'Total : ';
echo $cesta->CalculaTotal();
?>
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Composição

Composição também é uma relação todo/parte;
A diferença em relação à agregação é que, na
composição, o objeto-pai ou “todo” é responsável
pela criação e destruição de suas partes;
O objeto-pai realmente “possui” a(s) instância(s) de
suas partes. Diferentemente da agregação, na qual o
“todo” e as “partes” são independentes;
Na agregação, ao destruirmos o objeto “todo” as
“partes” permanecem na memória, por terem sido
criadas fora do escopo da classe “todo”. Já na
composição, quando o objeto “todo” é destruído,
suas “partes” também são;
Leia-se um objeto – é composto de – outros objetos;
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Composição

Exemplo em diagrama UML

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Composição
<?php
class Fornecedor
{
public $Codigo;
public $RazaoSocial;
public $Contatos;

<?php
class Contato
{
public $Nome;
public $Telefone;
public $Email;
}
?>

function addContato($nome, $telefone, $email)
{
$contato = new Contato;
$contato->Nome
= $nome;
$contato->Telefone = $telefone;
Método de composição
$contato->Email
= $email;
$this->Contatos[] = $contato;
}

}
?>

function ImprimeContatos()
{
foreach ($this->Contatos as $contato)
{
var_dump($contato);
}
}

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Composição
<?php
include_once 'classes/Fornecedor.class.php';
include_once 'classes/Contato.class.php';
// instancia novo fornecedor
$fornecedor = new Fornecedor;
$fornecedor->Codigo
= 10;
$fornecedor->RazaoSocial = 'Produtos Bom Gosto S.A.';
// atribui informações de contato
$fornecedor->addContato('Mauro', '51 1234-5677', 'mauro@bomgosto.com.br');
$fornecedor->addContato('Maria', '51 1234-5678', 'maria@bomgosto.com.br');
$fornecedor->addContato('Joana', '51 1234-5679', 'joana@bomgosto.com.br');
// debug
var_dump($fornecedor);
?>

output
Fornecedor Object
(
[Codigo] => 10
[RazaoSocial] => Produtos Bom Gosto S.A.
[Contatos] => Array
[0] => Contato Object
[Nome] => Mauro
[Telefone] => 51 1234-5677
[Email] => mauro@bomgosto.com.br
[1] => Contato Object ...

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Herança

Um dos maiores benefícios na utilização da orientação a
objetos é o reuso;
A possibilidade de reutilizar partes de código nos dá maior
agilidade no dia-a-dia, além de eliminar a necessidade de
eventuais duplicações ou reescritas de código;
Uma herança é um tipo de relacionamento que permite
especializar uma classe, criar versões refinadas dela;
Na herança, as classes são organizadas em hierarquias;
A herança é uma forma de reutilizar componentes de
software aperfeiçoando-os ou adicionando características
específicas;

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Hierarquia de Classes
Super classe

Sub classes

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Hierarquia de Classes

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Herança

A herança permite o compartilhamento de atributos e
métodos entre as classes de uma hierarquia;
Cada subclasse herda todas as propriedades (atributos
e métodos) de suas ancestrais;
Uma subclasse pode estender ou redefinir a estrutura
e/ou o comportamento de sua super classe;
Leia-se um objeto – é tipo de – outro objeto;
É um poderoso instrumento de reusabilidade, pois:
permite que atributos e operações comuns à
hierarquia sejam especificados apenas uma vez;
Permite que novas classes sejam criadas contendo
apenas a diferença entre ela e a classe-pai.
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Herança
<?php
abstract class Conta
{
    private  $Agencia;
    private  $Numero;
    protected $Saldo;
    
    function __construct($agencia, $numero, $saldo)
    {
        $this->Agencia  = $agencia;
        $this->Numero   = $numero;
        $this->Saldo    = $saldo;
    }

Uma classe abstrata
não pode ser instanciada
diretamente.

    function Depositar($valor)
    {
        $this->Saldo += $valor;
    }
    function getSaldo()
    {
        return $this->Saldo;
    }
}
?>
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Herança
<?php
final class ContaCorrente extends Conta
{
    public $Limite;
    
    function Retirar($valor)
    {
        if ($this->Saldo + $this->Limite > $valor)
        {
            $this->Saldo -= $valor;
        }
    }
}
final class ContaPoupanca extends Conta
{
    function Retirar($valor)
    {
        if ($this->Saldo > $valor)
        {
            $this->Saldo -= $valor;
        }
    }
}
?>

Uma classe final não
pode ser extendida.

Classe filha

Classe filha

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Herança
<?php
include_once 'classes/Conta.class.php';
include_once 'classes/ContaPoupanca.class.php';
include_once 'classes/ContaCorrente.class.php';
$conta1 = new ContaPoupanca('1', '123', 100);
$conta2 = new ContaCorrente('2', '456', 200);
$conta2->Limite = 500;
echo 'saldo conta1: '. $conta1->getSaldo(); // exibir 100
echo 'saldo conta2: '. $conta2->getSaldo(); // exibir 200

output
saldo
saldo
saldo
saldo
saldo
saldo

conta1:
conta2:
conta1:
conta2:
conta1:
conta2:

$conta1->Depositar(300);
$conta2->Depositar(500);
echo 'saldo conta1: '. $conta1->getSaldo();  // exibir 400
echo 'saldo conta2: '. $conta2->getSaldo();  // exibir 700
$conta1->Retirar(500);   // saldo maximo e 400, nao deve permitir
$conta2->Retirar(1199);  // 200+500+500(limite) saldo = 1200 (permitir)
echo 'saldo conta1: '. $conta1->getSaldo();  // exibir 400
echo 'saldo conta2: '. $conta2->getSaldo();  // exibir -499
?>
Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo

100
200
400
700
400
-499
O que é um sistema O.O. ?

Um sistema OO é modelado, implementado e
efetivamente funciona como um conjunto de objetos
que interagem entre si.

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo
Leitura Recomendada :-)

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo

42
Obrigado!

E-Mail
pablo@php.net
pablo@dalloglio.net

URL
http://www.adianti.com.br
http://www.pablo.blog.br

Pablo Dall'Oglio [pablo@php.net]
Introdução à Orientação a Objetos :: com exemplos do livro PHP – Programando com Orientação a Objetos
www.adianti.com.br/phpoo

43

More Related Content

What's hot

Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
Nécio de Lima Veras
 
Segurança de máq. e equip. de trabalho
Segurança de máq. e equip. de trabalhoSegurança de máq. e equip. de trabalho
Segurança de máq. e equip. de trabalho
Lucas Gimenes
 
Animais pecolhentos
Animais pecolhentosAnimais pecolhentos
Animais pecolhentos
Luis Araujo
 

What's hot (20)

Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Programa de ergonomia proergo
Programa de ergonomia   proergoPrograma de ergonomia   proergo
Programa de ergonomia proergo
 
Relatório de Visita Técnica: Centro Histórico de Curitiba
Relatório de Visita Técnica: Centro Histórico de CuritibaRelatório de Visita Técnica: Centro Histórico de Curitiba
Relatório de Visita Técnica: Centro Histórico de Curitiba
 
Banco de Dados Orientado a Objetos
Banco de Dados Orientado a ObjetosBanco de Dados Orientado a Objetos
Banco de Dados Orientado a Objetos
 
Caderno de Atividades Gestão de Processos e Qualidade
Caderno de Atividades Gestão de Processos e QualidadeCaderno de Atividades Gestão de Processos e Qualidade
Caderno de Atividades Gestão de Processos e Qualidade
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Segurança de máq. e equip. de trabalho
Segurança de máq. e equip. de trabalhoSegurança de máq. e equip. de trabalho
Segurança de máq. e equip. de trabalho
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 
Epc
EpcEpc
Epc
 
Animais pecolhentos
Animais pecolhentosAnimais pecolhentos
Animais pecolhentos
 
Ergonomia
ErgonomiaErgonomia
Ergonomia
 
Epi epc
Epi epcEpi epc
Epi epc
 
NR 6
NR 6NR 6
NR 6
 
Planejamento Mensal dos Diálogos Diários de Segurança - DDS
Planejamento Mensal dos Diálogos Diários de Segurança - DDSPlanejamento Mensal dos Diálogos Diários de Segurança - DDS
Planejamento Mensal dos Diálogos Diários de Segurança - DDS
 
Modelo E-R
Modelo E-RModelo E-R
Modelo E-R
 

Viewers also liked

As novidades do PHP5 (2005)
As novidades do PHP5 (2005)As novidades do PHP5 (2005)
As novidades do PHP5 (2005)
Pablo Dall'Oglio
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
Pablo Dall'Oglio
 
Criando relatórios com PHP - PHP Conference Brasil 2013
Criando relatórios com PHP - PHP Conference Brasil 2013Criando relatórios com PHP - PHP Conference Brasil 2013
Criando relatórios com PHP - PHP Conference Brasil 2013
Pablo Dall'Oglio
 
Criando aplicações com PHP-GTK
Criando aplicações com PHP-GTKCriando aplicações com PHP-GTK
Criando aplicações com PHP-GTK
Pablo Dall'Oglio
 
Experiencias de um desenvolvedor de software livre (2005)
Experiencias de um desenvolvedor de software livre (2005)Experiencias de um desenvolvedor de software livre (2005)
Experiencias de um desenvolvedor de software livre (2005)
Pablo Dall'Oglio
 
Php do início ao profissional
Php do início ao profissionalPhp do início ao profissional
Php do início ao profissional
André Pfeiffer
 

Viewers also liked (20)

As novidades do PHP5 (2005)
As novidades do PHP5 (2005)As novidades do PHP5 (2005)
As novidades do PHP5 (2005)
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Implementando enterprise patterns com PHP
Implementando enterprise patterns com PHPImplementando enterprise patterns com PHP
Implementando enterprise patterns com PHP
 
Criando relatórios com PHP - PHP Conference Brasil 2013
Criando relatórios com PHP - PHP Conference Brasil 2013Criando relatórios com PHP - PHP Conference Brasil 2013
Criando relatórios com PHP - PHP Conference Brasil 2013
 
Criando aplicações com PHP-GTK
Criando aplicações com PHP-GTKCriando aplicações com PHP-GTK
Criando aplicações com PHP-GTK
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHP
 
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksDo Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
 
Design Patterns com PHP
Design Patterns com PHPDesign Patterns com PHP
Design Patterns com PHP
 
Experiencias de um desenvolvedor de software livre (2005)
Experiencias de um desenvolvedor de software livre (2005)Experiencias de um desenvolvedor de software livre (2005)
Experiencias de um desenvolvedor de software livre (2005)
 
Php do início ao profissional
Php do início ao profissionalPhp do início ao profissional
Php do início ao profissional
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – Frameworks
 
Phpmanual
PhpmanualPhpmanual
Phpmanual
 
Programando para web com php my sql - fed cox junior
Programando para web com php my sql - fed cox juniorProgramando para web com php my sql - fed cox junior
Programando para web com php my sql - fed cox junior
 
MySQL sobreviverá à nuvem?
MySQL sobreviverá à nuvem?MySQL sobreviverá à nuvem?
MySQL sobreviverá à nuvem?
 
Introdução a Frameworks
Introdução a FrameworksIntrodução a Frameworks
Introdução a Frameworks
 
Programção PHP
Programção PHPProgramção PHP
Programção PHP
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
 
Curso de PHP - Arrays
Curso de PHP - ArraysCurso de PHP - Arrays
Curso de PHP - Arrays
 

Similar to PHP: Programando com orientação a Objetos

Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
joaocarlobarros
 
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosDesenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Vitor Silva
 

Similar to PHP: Programando com orientação a Objetos (20)

(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn(Re)pensando a OOP - Flisol Gyn
(Re)pensando a OOP - Flisol Gyn
 
(Re)pensando a OOP - PHPDay Curitiba 2013
(Re)pensando a OOP - PHPDay Curitiba 2013(Re)pensando a OOP - PHPDay Curitiba 2013
(Re)pensando a OOP - PHPDay Curitiba 2013
 
Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 
Java7
Java7Java7
Java7
 
PHP Orientado a Objetos
PHP Orientado a ObjetosPHP Orientado a Objetos
PHP Orientado a Objetos
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosDesenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a Objectos
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e Python
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 

PHP: Programando com orientação a Objetos