SlideShare una empresa de Scribd logo
1 de 18
Orientação a objetos com PHP
         Prof. Leonardo Soares




          Campus Garanhuns
Softwares orientado a objetos


Orientação a objetos é um paradigma computacional que
propõe uma metodologia para construção de software
A base deste paradigma está em associar o domínio do
problema do software à objetos que se relacionam, similar a
nossa realide
PHP desde a versão 5 oferece suporte completo a orientação a
objetos
Suporte do PHP a O.O.


Classes e objetos
Métodos, controle de visibilidade
Herança, interfaces, classes e métodos abstratos
Ponteiro this
Dentre outros recursos específicos do PHP
Declaração de classes


Classes são a base para orientação a objetos, elas representam
algum domínio do problema de nosso software
Assim como no Java e em outras linguagens a declaração de uma
classe começa pela palavra class
Em geral criamos um arquivo .php para cade classe
Exercício


Vamos transformar em orientado a objetos nosso
sistema de cadastro de cursos
Declarem uma classe para representar um curso da
escola
Construtores e destrutores

São um tipo especial de “métodos” que são invocados quando
um objeto é instanciado ou deletado
Os utilizamos para iniciar recursos e atributos (construtor) e
liberar recursos quando não mais necessários (destrutor)
Para construtores utilizamos a sintaxe __construct e __destruct
Antes do PHP5 havia a possibilidade de utilizar construtores com
o mesmo nome da classe, porém isto está deprecated
Exercício


Implementem o construtor para a nossa classe Curso
Atributos de classes


Atributos são usados para definir a estrutura de uma classe
Valores para estes atributos definem estados para um objeto
Estes atributos podem ser inicializados com um valor pré-
definido
Caso observem a declaração de variáveis precedida pela palavra
var, não se assustem equivale a declaração public e está em
desuso
O construtor da classe também pode ser usado para inicializar
os valores destes atributos
Exercício


Adicionem os atributos/propriedades nome e carga
horária à nossa classe Curso
Ponteiro $this


Quando precisamos acessar atributos ou métodos de nossas
classes, o fazemos através de uma “pseudo-variável”
denominada $this
Para quem vem de Java ou C++, já ouviu falar do ponteiro this
Seu uso em PHP é obrigatório!
Declaração de métodos


Métodos são ações ou operações que uma classe pode
realizar
Sua declaração é similar aos das funções que já vimos, exceto
pela possibilidade de utilizar controles de visibilidade
Exercício


Implementem os métodos gets e setters para a nossa
classe
Herança


Herança permite que relações de similaridade que existe em nosso
cotidiano posssam ser representadas na orientação a objetos
PHP permite o uso de heranças de maneira similar ao Java, onde
declaramos uma classe pai, em seguida a classe filha e utilizamos o
operador extends para fazer a herança entre elas
O acesso a métodos da classe pai é feito através da palavra
reservada parent::
Autoloading de classes


Como dito anteriormente, em geral, criamos um arquivo .php
para cada classe. Qual o problema com isto?
PHP oferece uma forma de evitar a necessidade de múltiplos
includes em uma página, e o chama de Autoloading de classes
O autoloading é realizado através de uma função denominada
__autoload(nome_classe)  Problema!!!
Operador de resolução de escopo ::


O acesso a determinadas propriedades e métodos é feito de forma
diferente dependendo de como eles tenham sido declarados
Para acesso a métodos declarados em classes pai vimos que
utilizamos o operador parent::
Para o acesso a atributos constantes utilizamos a sintaxe
Classe::atributo
Para o acesso a atributos estáticos utilizamso o operador self::
sucedido do nome da variável com $
Classes abstratas


Classes abstratas não podem ser instanciadas e métodos
abstratos não possuem implementação
O uso de classes abstratas possibilita um “contrato” entre essas
classes e as classes que irão estendê-las
A declaração de classes abstratas e métodos abstratos é feita
através da palavra reservada abstract
Interfaces


Também são usadas como forma de estabelecer um
contrato
Diferem de classes abstratas por alguns aspectos:
  Não podem implementar métodos
  Não possuem atritubos
  Possibilitam uma “alternativa” a impossibilidade de
  herança multipla
Para utilizá-las é usado a palavra reservada
implements
Muito obrigado!

Más contenido relacionado

La actualidad más candente

Orientação a objetos php
Orientação a objetos   phpOrientação a objetos   php
Orientação a objetos php
secomp2011
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
Evandro Agnes
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
Regis Magalhães
 
UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoUFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
Anderson Ledo
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita Polimorfismo
Regis Magalhães
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
jmtofoli
 

La actualidad más candente (20)

Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
Aula 1 6
Aula 1 6Aula 1 6
Aula 1 6
 
Orientação a objetos php
Orientação a objetos   phpOrientação a objetos   php
Orientação a objetos php
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Java Básico
Java BásicoJava Básico
Java Básico
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoUFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita Polimorfismo
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Introdução à Metaprogramação com Java Reflection API
Introdução à Metaprogramação com Java Reflection APIIntrodução à Metaprogramação com Java Reflection API
Introdução à Metaprogramação com Java Reflection API
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Classes abstratas e interfaces
Classes abstratas e interfacesClasses abstratas e interfaces
Classes abstratas e interfaces
 

Destacado

2014 - Desenvolvimento Web - 03 CSS
2014 - Desenvolvimento Web - 03 CSS2014 - Desenvolvimento Web - 03 CSS
2014 - Desenvolvimento Web - 03 CSS
Willian Magalhães
 
Web Design - teoria básica das cores
Web Design - teoria básica das coresWeb Design - teoria básica das cores
Web Design - teoria básica das cores
Lucas Gheller
 
2014 - Desenvolvimento Web - 01 Introdução
2014 - Desenvolvimento Web - 01 Introdução2014 - Desenvolvimento Web - 01 Introdução
2014 - Desenvolvimento Web - 01 Introdução
Willian Magalhães
 
2014 - Desenvolvimento Web - 02 HTML
2014 - Desenvolvimento Web - 02 HTML2014 - Desenvolvimento Web - 02 HTML
2014 - Desenvolvimento Web - 02 HTML
Willian Magalhães
 
PHP: Programando com orientação a Objetos
PHP: Programando com orientação a ObjetosPHP: Programando com orientação a Objetos
PHP: Programando com orientação a Objetos
Pablo Dall'Oglio
 
2014 - Multimídia e Internet - 04 Imagem Digital - Bitmaps
2014 - Multimídia e Internet - 04 Imagem Digital - Bitmaps2014 - Multimídia e Internet - 04 Imagem Digital - Bitmaps
2014 - Multimídia e Internet - 04 Imagem Digital - Bitmaps
Willian Magalhães
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
Augusto Pascutti
 

Destacado (20)

Minicurso - Web sites dinâmicos: PHP com orientação a objetos
Minicurso - Web sites dinâmicos: PHP com orientação a objetosMinicurso - Web sites dinâmicos: PHP com orientação a objetos
Minicurso - Web sites dinâmicos: PHP com orientação a objetos
 
Poster Of Former Movies - Unforgettable films and musics
Poster Of Former Movies - Unforgettable  films  and musicsPoster Of Former Movies - Unforgettable  films  and musics
Poster Of Former Movies - Unforgettable films and musics
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
2014 - Desenvolvimento Web - 03 CSS
2014 - Desenvolvimento Web - 03 CSS2014 - Desenvolvimento Web - 03 CSS
2014 - Desenvolvimento Web - 03 CSS
 
Curso Desenvolvimento WEB com PHP - HTML
Curso Desenvolvimento WEB com PHP - HTMLCurso Desenvolvimento WEB com PHP - HTML
Curso Desenvolvimento WEB com PHP - HTML
 
Web Design - teoria básica das cores
Web Design - teoria básica das coresWeb Design - teoria básica das cores
Web Design - teoria básica das cores
 
Orientação a objetos v2
Orientação a objetos v2Orientação a objetos v2
Orientação a objetos v2
 
Caderno de Orientação a Objetos - Secretaria de Educação
Caderno de Orientação a Objetos - Secretaria de EducaçãoCaderno de Orientação a Objetos - Secretaria de Educação
Caderno de Orientação a Objetos - Secretaria de Educação
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
 
2014 - Desenvolvimento Web - 01 Introdução
2014 - Desenvolvimento Web - 01 Introdução2014 - Desenvolvimento Web - 01 Introdução
2014 - Desenvolvimento Web - 01 Introdução
 
2014 - Desenvolvimento Web - 02 HTML
2014 - Desenvolvimento Web - 02 HTML2014 - Desenvolvimento Web - 02 HTML
2014 - Desenvolvimento Web - 02 HTML
 
Desenvolvimento orientado a objetos com adianti framework
Desenvolvimento orientado a objetos com adianti frameworkDesenvolvimento orientado a objetos com adianti framework
Desenvolvimento orientado a objetos com adianti framework
 
PHP: Programando com orientação a Objetos
PHP: Programando com orientação a ObjetosPHP: Programando com orientação a Objetos
PHP: Programando com orientação a Objetos
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a ObjetosProgramação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
 
Paradigmas de Linguagens de Programação: Conceitos de PHP
Paradigmas de Linguagens de Programação: Conceitos de PHPParadigmas de Linguagens de Programação: Conceitos de PHP
Paradigmas de Linguagens de Programação: Conceitos de PHP
 
2014 - Multimídia e Internet - 04 Imagem Digital - Bitmaps
2014 - Multimídia e Internet - 04 Imagem Digital - Bitmaps2014 - Multimídia e Internet - 04 Imagem Digital - Bitmaps
2014 - Multimídia e Internet - 04 Imagem Digital - Bitmaps
 
Curso Desenvolvimento WEB com PHP - HTML
Curso Desenvolvimento WEB com PHP - HTMLCurso Desenvolvimento WEB com PHP - HTML
Curso Desenvolvimento WEB com PHP - HTML
 
Curso Photoshop 2009 - Aula 05
Curso Photoshop 2009 - Aula 05Curso Photoshop 2009 - Aula 05
Curso Photoshop 2009 - Aula 05
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 

Similar a Orientação a objetos com PHP

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
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
Regis Magalhães
 

Similar a Orientação a objetos com PHP (20)

Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Herança.pptx
Herança.pptxHerança.pptx
Herança.pptx
 
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)
 
Introdução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPIntrodução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHP
 
Classes objetos
Classes objetosClasses objetos
Classes objetos
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Java7
Java7Java7
Java7
 
Aprendendo C# do zero
Aprendendo C# do zeroAprendendo C# do zero
Aprendendo C# do zero
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
3- POO
3- POO3- POO
3- POO
 
Poo
PooPoo
Poo
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 

Más de Leonardo Soares

Más de Leonardo Soares (20)

Introdução a linguagem de programação Lua
Introdução a linguagem de programação LuaIntrodução a linguagem de programação Lua
Introdução a linguagem de programação Lua
 
Depuração de software
Depuração de softwareDepuração de software
Depuração de software
 
Introdução ao HTML4 e HTML5
Introdução ao HTML4 e HTML5Introdução ao HTML4 e HTML5
Introdução ao HTML4 e HTML5
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnit
 
Grupo de processos de planejamento - Parte 02
Grupo de processos de planejamento - Parte 02Grupo de processos de planejamento - Parte 02
Grupo de processos de planejamento - Parte 02
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchIntrodução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
 
Técnicas de modelagem de testes
Técnicas de modelagem de testesTécnicas de modelagem de testes
Técnicas de modelagem de testes
 
Grupo de processos de planejamento - Parte 01
Grupo de processos de planejamento - Parte 01Grupo de processos de planejamento - Parte 01
Grupo de processos de planejamento - Parte 01
 
Introdução a testes unitários
Introdução a testes unitáriosIntrodução a testes unitários
Introdução a testes unitários
 
Grupos de processos de planejamento
Grupos de processos de planejamentoGrupos de processos de planejamento
Grupos de processos de planejamento
 
Gestão de projetos com PMBoK
Gestão de projetos com PMBoKGestão de projetos com PMBoK
Gestão de projetos com PMBoK
 
Grupos de processos de iniciação - PMBoK
Grupos de processos de iniciação - PMBoKGrupos de processos de iniciação - PMBoK
Grupos de processos de iniciação - PMBoK
 
Introdução a testes de software
Introdução a testes de softwareIntrodução a testes de software
Introdução a testes de software
 
Introdução a gestão de projetos com PMBoK
Introdução a gestão de projetos com PMBoKIntrodução a gestão de projetos com PMBoK
Introdução a gestão de projetos com PMBoK
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHP
 
Introdução ao CSS
Introdução ao CSSIntrodução ao CSS
Introdução ao CSS
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTML
 
Criação de formulários e tabelas com HTML
Criação de formulários e tabelas com HTMLCriação de formulários e tabelas com HTML
Criação de formulários e tabelas com HTML
 
Uso de imagens e links com HTML
Uso de imagens e links com HTMLUso de imagens e links com HTML
Uso de imagens e links com HTML
 

Último

Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
RogrioGonalves41
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
lenapinto
 

Último (20)

Poesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPoesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 

Orientação a objetos com PHP

  • 1. Orientação a objetos com PHP Prof. Leonardo Soares Campus Garanhuns
  • 2. Softwares orientado a objetos Orientação a objetos é um paradigma computacional que propõe uma metodologia para construção de software A base deste paradigma está em associar o domínio do problema do software à objetos que se relacionam, similar a nossa realide PHP desde a versão 5 oferece suporte completo a orientação a objetos
  • 3. Suporte do PHP a O.O. Classes e objetos Métodos, controle de visibilidade Herança, interfaces, classes e métodos abstratos Ponteiro this Dentre outros recursos específicos do PHP
  • 4. Declaração de classes Classes são a base para orientação a objetos, elas representam algum domínio do problema de nosso software Assim como no Java e em outras linguagens a declaração de uma classe começa pela palavra class Em geral criamos um arquivo .php para cade classe
  • 5. Exercício Vamos transformar em orientado a objetos nosso sistema de cadastro de cursos Declarem uma classe para representar um curso da escola
  • 6. Construtores e destrutores São um tipo especial de “métodos” que são invocados quando um objeto é instanciado ou deletado Os utilizamos para iniciar recursos e atributos (construtor) e liberar recursos quando não mais necessários (destrutor) Para construtores utilizamos a sintaxe __construct e __destruct Antes do PHP5 havia a possibilidade de utilizar construtores com o mesmo nome da classe, porém isto está deprecated
  • 7. Exercício Implementem o construtor para a nossa classe Curso
  • 8. Atributos de classes Atributos são usados para definir a estrutura de uma classe Valores para estes atributos definem estados para um objeto Estes atributos podem ser inicializados com um valor pré- definido Caso observem a declaração de variáveis precedida pela palavra var, não se assustem equivale a declaração public e está em desuso O construtor da classe também pode ser usado para inicializar os valores destes atributos
  • 9. Exercício Adicionem os atributos/propriedades nome e carga horária à nossa classe Curso
  • 10. Ponteiro $this Quando precisamos acessar atributos ou métodos de nossas classes, o fazemos através de uma “pseudo-variável” denominada $this Para quem vem de Java ou C++, já ouviu falar do ponteiro this Seu uso em PHP é obrigatório!
  • 11. Declaração de métodos Métodos são ações ou operações que uma classe pode realizar Sua declaração é similar aos das funções que já vimos, exceto pela possibilidade de utilizar controles de visibilidade
  • 12. Exercício Implementem os métodos gets e setters para a nossa classe
  • 13. Herança Herança permite que relações de similaridade que existe em nosso cotidiano posssam ser representadas na orientação a objetos PHP permite o uso de heranças de maneira similar ao Java, onde declaramos uma classe pai, em seguida a classe filha e utilizamos o operador extends para fazer a herança entre elas O acesso a métodos da classe pai é feito através da palavra reservada parent::
  • 14. Autoloading de classes Como dito anteriormente, em geral, criamos um arquivo .php para cada classe. Qual o problema com isto? PHP oferece uma forma de evitar a necessidade de múltiplos includes em uma página, e o chama de Autoloading de classes O autoloading é realizado através de uma função denominada __autoload(nome_classe) Problema!!!
  • 15. Operador de resolução de escopo :: O acesso a determinadas propriedades e métodos é feito de forma diferente dependendo de como eles tenham sido declarados Para acesso a métodos declarados em classes pai vimos que utilizamos o operador parent:: Para o acesso a atributos constantes utilizamos a sintaxe Classe::atributo Para o acesso a atributos estáticos utilizamso o operador self:: sucedido do nome da variável com $
  • 16. Classes abstratas Classes abstratas não podem ser instanciadas e métodos abstratos não possuem implementação O uso de classes abstratas possibilita um “contrato” entre essas classes e as classes que irão estendê-las A declaração de classes abstratas e métodos abstratos é feita através da palavra reservada abstract
  • 17. Interfaces Também são usadas como forma de estabelecer um contrato Diferem de classes abstratas por alguns aspectos: Não podem implementar métodos Não possuem atritubos Possibilitam uma “alternativa” a impossibilidade de herança multipla Para utilizá-las é usado a palavra reservada implements

Notas del editor

  1. A definição de se construtoressãométodosounãovariam entre autores
  2. Éobrigatórioque a classepaisejadeclaradaouincluida antes da classefilho