SlideShare a Scribd company logo
1 of 51
Download to read offline
Facilitador: Renan Gurgel
   Introduzida a partir do PHP3
   Fortalecida com a versão do PHP4
   Com o PHP5 fica mais robusta e com os
    principais conceitos da OO.
   Base da OO
   “O projeto da casa” (projeto do objeto)
   Template de objeto
   Estrutura estática utilizada para descrever
    objetos mediante atributos e métodos
   Uma classe por arquivo

   Padrões de nomeclatura:
     Padrao_Zend_ou_Pear
     PadraoCamelCase
   “A casa em si”
   Contém informações
   Sua estrutura é dinâmica, ou seja seus atributos
    podem mudar de valor durante a execução do
    programa
   Pode-se declarar diversos objetos de uma
    mesma classe
   Através do operador NEW
   Declarados na classe
   Usado nos objetos
   Propriedades dos objetos
No PHP 4
era assim...
No PHP 5 é
  assim:
   Métodos mágicos
   Inseridos a partir do PHP5
   Sempre começam com _ _
   14 no PHP 5.3
   Os 2 principais são:
     __construct()
     __destruct()
   Todos os métodos mágicos em:
     http://www.php.net/manual/pt_BR/language.oop5.magic.php
   Executado na instância do objeto
   Não pode retornar nada
   Pode sofrer sobrecarga
   Pode receber argumentos
   Acionado quando não existe mais referências
    para o objeto ou quando chega ao fim do script
   Pode ser útil em:
     Banco de dados
     Logs
   Variável especial $this
   Automaticamente definida
   Referência ao próprio objeto
   Acessando atributos
     $this->nomeDoAtributo (ex: $this->cpf )
   Acessando métodos
     $this->nomeDoMetodo() (ex: $this->getCpf() )
Vamos
trabalhar
um pouco
   né?
Testem...

     $renan = new Pessoa();
   $renan->setNome('Renan');
echo $renan->getNome()."<br />";
   A partir do PHP5
   Public
   Private
   Protected
   Esqueça o var
   O encapsulamento é a chave da OO
   Membros declarados assim só podem ser
    acessados dentro da classe em que foram
    declarados
   Não pode ser acessado a partir de uma classe
    descendente
   Não pode ser acessado a partir do programa que
    faz uso dessa classe
   Membros declarados como protected podem ser
    acessados dentro da classe
   Podem ser acessados em classes descendentes
   Não pode ser acessado a partir do programa que
    faz uso dessa classe
   Membros declarados como public podem ser
    acessados livremente na classe em que foram
    declarados
   Podem ser acessados em classes descendentes
   Pode ser acessado a partir do programa que faz
    uso dessa classe
Se nenhum desses
  for declarado o
 public é definido
    por padrão
   Para continuar o suporte ao encapsulamento
   Usado para configurações de
    Banco de dados e nomes de
    usuários
   Palavra chave const
   Acesso :: (operador de resolução de escopo)
   É um filho poder obter algumas características
    do pai
   Há casos em que é necessário ter objetos
    idênticos com algumas funcionalidades a mais ou
    então com as mesmas funcionalidades, mas com
    comportamentos diferentes
Ambos são
 veículos!
Podemos dizer que
 eles pertencem a
   classe veiculo
Para dizer que
uma classe herda
de outra usamos
 a palavra chave
    EXTENDS
EX:
   Polymorphos (Grego) – Múltiplas formas
   Várias classes podem possuir a mesma estrutura,
    mas comportamento diferentes
   Ao utilizar herança podemos não só aproveitar os
    métodos da classe pai, como também fazer com
    que algumas de suas características sejam
    alteradas
Desculpe,
ainda não
entendi...
Imagine que um
 banco possua 2
tipos de cheques
CHEQUE COMUM




     X
CHEQUE ESPECIAL
   Ambos possuem a mesma estrutura
   O que diferencia um do outro é a forma de
    cobrança de juros
   O cheque comum cobra 25%
   ENTÃO...
   No cheque especial os juros cobrados são de 10%
    e não 25%
   Vamos aproveitar a mesma estrutura apenas
    redefinindo o método calculaJuros
   Self refere-se a classe atual e é normalmente
    usado para acessar:
     Métodos
     Constantes
   Parent:
     Refere-se a classe pai
     Normalmente usado para chamar o construtor ou
      métodos da classe pai
Vamos a
  um
exemplo
   Usado para quando você não quer que a sua
    classe/método possa se estender mais
   Basta utilizar a palavra chave final
   Exemplos:
Orientação a objetos   php
Orientação a objetos   php

More Related Content

What's hot

02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Poo1   aula 2 - java - apresentação do netbeans e 1º programaPoo1   aula 2 - java - apresentação do netbeans e 1º programa
Poo1 aula 2 - java - apresentação do netbeans e 1º programaDenis Sobrenome
 
Curso de Java - Antonio Alves - Aula 03
Curso de Java - Antonio Alves - Aula 03Curso de Java - Antonio Alves - Aula 03
Curso de Java - Antonio Alves - Aula 03Antonio Alves
 
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Poo1   aula 3 - java - comentários instruções e blocos-palavras chavePoo1   aula 3 - java - comentários instruções e blocos-palavras chave
Poo1 aula 3 - java - comentários instruções e blocos-palavras chaveDenis Sobrenome
 
Clean code - Mantenha seu código limpo
Clean code - Mantenha seu código limpoClean code - Mantenha seu código limpo
Clean code - Mantenha seu código limpoTiago Bencardino
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraDextra
 
Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)Waldyr Felix
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHPAugusto Pascutti
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7David Willian
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesFAFICA
 

What's hot (20)

02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Poo1   aula 2 - java - apresentação do netbeans e 1º programaPoo1   aula 2 - java - apresentação do netbeans e 1º programa
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
 
Curso de Java - Antonio Alves - Aula 03
Curso de Java - Antonio Alves - Aula 03Curso de Java - Antonio Alves - Aula 03
Curso de Java - Antonio Alves - Aula 03
 
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Poo1   aula 3 - java - comentários instruções e blocos-palavras chavePoo1   aula 3 - java - comentários instruções e blocos-palavras chave
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
 
Clean code - Mantenha seu código limpo
Clean code - Mantenha seu código limpoClean code - Mantenha seu código limpo
Clean code - Mantenha seu código limpo
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails Dextra
 
Clean code
Clean codeClean code
Clean code
 
Javascript OO
Javascript OOJavascript OO
Javascript OO
 
Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)
 
Java 04
Java 04Java 04
Java 04
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
PHP Básico - Parte 5
PHP Básico - Parte 5PHP Básico - Parte 5
PHP Básico - Parte 5
 
Algoritmos Aula 03
Algoritmos Aula 03Algoritmos Aula 03
Algoritmos Aula 03
 
Aula Herança
Aula HerançaAula Herança
Aula Herança
 

Similar to Orientação a objetos php

Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Ryan Padilha
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaWanderlei Silva do Carmo
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01joaocarlobarros
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2Thyago Maia
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04Antonio Alves
 
Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 

Similar to Orientação a objetos php (20)

Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
Aula 1 5
Aula 1 5Aula 1 5
Aula 1 5
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Atividade 3
Atividade 3Atividade 3
Atividade 3
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
3- POO
3- POO3- POO
3- POO
 
Poo
PooPoo
Poo
 
Herança
HerançaHerança
Herança
 
Java7
Java7Java7
Java7
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 

More from secomp2011

Dar caos a ordem
Dar caos a ordem Dar caos a ordem
Dar caos a ordem secomp2011
 
Importancia dos testes automatizados
Importancia dos testes automatizadosImportancia dos testes automatizados
Importancia dos testes automatizadossecomp2011
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao phpsecomp2011
 
Arquitetura web e o php
Arquitetura web e o phpArquitetura web e o php
Arquitetura web e o phpsecomp2011
 
Desenvolvimento Ágil Usando SCRUM
Desenvolvimento Ágil Usando SCRUMDesenvolvimento Ágil Usando SCRUM
Desenvolvimento Ágil Usando SCRUMsecomp2011
 

More from secomp2011 (8)

Bd
BdBd
Bd
 
Html 20.10
Html   20.10Html   20.10
Html 20.10
 
Dar caos a ordem
Dar caos a ordem Dar caos a ordem
Dar caos a ordem
 
Importancia dos testes automatizados
Importancia dos testes automatizadosImportancia dos testes automatizados
Importancia dos testes automatizados
 
Php básico
Php básicoPhp básico
Php básico
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao php
 
Arquitetura web e o php
Arquitetura web e o phpArquitetura web e o php
Arquitetura web e o php
 
Desenvolvimento Ágil Usando SCRUM
Desenvolvimento Ágil Usando SCRUMDesenvolvimento Ágil Usando SCRUM
Desenvolvimento Ágil Usando SCRUM
 

Orientação a objetos php

  • 2. Introduzida a partir do PHP3  Fortalecida com a versão do PHP4  Com o PHP5 fica mais robusta e com os principais conceitos da OO.
  • 3. Base da OO  “O projeto da casa” (projeto do objeto)  Template de objeto  Estrutura estática utilizada para descrever objetos mediante atributos e métodos
  • 4.
  • 5.
  • 6.
  • 7. Uma classe por arquivo  Padrões de nomeclatura:  Padrao_Zend_ou_Pear  PadraoCamelCase
  • 8. “A casa em si”  Contém informações  Sua estrutura é dinâmica, ou seja seus atributos podem mudar de valor durante a execução do programa  Pode-se declarar diversos objetos de uma mesma classe
  • 9.
  • 10. Através do operador NEW
  • 11. Declarados na classe  Usado nos objetos  Propriedades dos objetos
  • 12. No PHP 4 era assim...
  • 13. No PHP 5 é assim:
  • 14. Métodos mágicos  Inseridos a partir do PHP5  Sempre começam com _ _  14 no PHP 5.3  Os 2 principais são:  __construct()  __destruct()  Todos os métodos mágicos em:  http://www.php.net/manual/pt_BR/language.oop5.magic.php
  • 15. Executado na instância do objeto  Não pode retornar nada  Pode sofrer sobrecarga  Pode receber argumentos
  • 16. Acionado quando não existe mais referências para o objeto ou quando chega ao fim do script  Pode ser útil em:  Banco de dados  Logs
  • 17. Variável especial $this  Automaticamente definida  Referência ao próprio objeto  Acessando atributos  $this->nomeDoAtributo (ex: $this->cpf )  Acessando métodos  $this->nomeDoMetodo() (ex: $this->getCpf() )
  • 19. Testem... $renan = new Pessoa(); $renan->setNome('Renan'); echo $renan->getNome()."<br />";
  • 20. A partir do PHP5  Public  Private  Protected
  • 21. Esqueça o var  O encapsulamento é a chave da OO
  • 22. Membros declarados assim só podem ser acessados dentro da classe em que foram declarados  Não pode ser acessado a partir de uma classe descendente  Não pode ser acessado a partir do programa que faz uso dessa classe
  • 23. Membros declarados como protected podem ser acessados dentro da classe  Podem ser acessados em classes descendentes  Não pode ser acessado a partir do programa que faz uso dessa classe
  • 24. Membros declarados como public podem ser acessados livremente na classe em que foram declarados  Podem ser acessados em classes descendentes  Pode ser acessado a partir do programa que faz uso dessa classe
  • 25. Se nenhum desses for declarado o public é definido por padrão
  • 26. Para continuar o suporte ao encapsulamento  Usado para configurações de Banco de dados e nomes de usuários  Palavra chave const  Acesso :: (operador de resolução de escopo)
  • 27. É um filho poder obter algumas características do pai  Há casos em que é necessário ter objetos idênticos com algumas funcionalidades a mais ou então com as mesmas funcionalidades, mas com comportamentos diferentes
  • 28.
  • 30. Podemos dizer que eles pertencem a classe veiculo
  • 31. Para dizer que uma classe herda de outra usamos a palavra chave EXTENDS
  • 32. EX:
  • 33.
  • 34. Polymorphos (Grego) – Múltiplas formas  Várias classes podem possuir a mesma estrutura, mas comportamento diferentes  Ao utilizar herança podemos não só aproveitar os métodos da classe pai, como também fazer com que algumas de suas características sejam alteradas
  • 36. Imagine que um banco possua 2 tipos de cheques
  • 37. CHEQUE COMUM X CHEQUE ESPECIAL
  • 38. Ambos possuem a mesma estrutura  O que diferencia um do outro é a forma de cobrança de juros  O cheque comum cobra 25%  ENTÃO...
  • 39.
  • 40.
  • 41. No cheque especial os juros cobrados são de 10% e não 25%  Vamos aproveitar a mesma estrutura apenas redefinindo o método calculaJuros
  • 42.
  • 43.
  • 44.
  • 45. Self refere-se a classe atual e é normalmente usado para acessar:  Métodos  Constantes
  • 46. Parent:  Refere-se a classe pai  Normalmente usado para chamar o construtor ou métodos da classe pai
  • 47. Vamos a um exemplo
  • 48.
  • 49. Usado para quando você não quer que a sua classe/método possa se estender mais  Basta utilizar a palavra chave final  Exemplos: