SlideShare a Scribd company logo
1 of 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!

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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 to 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 to 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
 

More from Leonardo Soares

More from 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
 

Recently uploaded

apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
rosenilrucks
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
edelon1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
LeloIurk1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
LeloIurk1
 

Recently uploaded (20)

praticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médiopraticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médio
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
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
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 

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

Editor's Notes

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