OOP (in portuguese)
Upcoming SlideShare
Loading in...5
×
 

OOP (in portuguese)

on

  • 10,504 views

Object Oriented Programming in PHP5

Object Oriented Programming in PHP5

Statistics

Views

Total Views
10,504
Views on SlideShare
10,392
Embed Views
112

Actions

Likes
13
Downloads
521
Comments
2

7 Embeds 112

http://phpsummerschool.blogs.sapo.pt 91
http://www.slideshare.net 13
http://static.slideshare.net 3
http://www.linkedin.com 2
http://s3.amazonaws.com 1
https://s3.amazonaws.com 1
http://test.idoc.vn 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

OOP (in portuguese) OOP (in portuguese) Presentation Transcript

  • OOP em PHP PHP Summer School - 18 de Julho de 2007 Bruno Pedro <bpedro@computer.org>
  • PHP Summer School Conteúdo • Conceitos de OOP • Design Patterns • Frameworks • Exercícios • Resumo OOP em PHP 2
  • PHP Summer School Classe • Descrição de um conjunto de objectos semelhantes • Identificador de objectos que partilham os mesmos atributos sobre os quais podem ser realizadas as mesmas operações in Ramos, P., (2006).“Desenhar Bases de Dados com UML”. Edições Sílabo OOP em PHP 3
  • PHP Summer School Classe • Atributos comuns a um grupo de objectos Porta tipo de fechadura altura cor largura estado tipo de puxador fonte: http://tinyurl.com/2yp9e7 OOP em PHP 4
  • PHP Summer School Classe • Notação UML nome da classe Porta altura largura cor atributos tipo de fechadura tipo de puxador estado OOP em PHP 5
  • PHP Summer School Atributos • Podem ser públicos, privados ou protegidos • Podem ter valores pré-definidos Porta atributo público valor pré-definido +altura = 200 +largura = 150 +cor = 'azul' atributo privado -tipo de fechadura +tipo de puxador +estado OOP em PHP 6
  • PHP Summer School Classe em PHP início de script PHP definição da classe atributos fim de script PHP OOP em PHP 7
  • PHP Summer School Classe • Operações realizáveis por ou sobre um grupo de objectos Porta encosta abre fecha bate tranca destranca fonte: http://tinyurl.com/2lgamj OOP em PHP 8
  • PHP Summer School Classe • Notação UML nome da classe Porta altura largura cor atributos tipo de fechadura tipo de puxador estado abre() fecha() operações ou métodos tranca() destranca() encosta() bate() OOP em PHP 9
  • PHP Summer School Métodos • Podem ser públicos, privados ou protegidos • Podem ter parâmetros e devolver resultados Porta altura largura cor tipo de fechadura tipo de puxador estado método público +abre() +fecha() +tranca() método privado parâmetro -destranca(chave) +encosta() +bate() OOP em PHP 10
  • PHP Summer School Classe em PHP nome da classe atributos atributo privado métodos OOP em PHP 11
  • PHP Summer School Classe em PHP métodos método privado OOP em PHP 12
  • PHP Summer School Objecto • Instanciação da classe • Define uma entidade com características e comportamentos próprios OOP em PHP 13
  • PHP Summer School Objecto em PHP definição da classe instanciação OOP em PHP 14
  • PHP Summer School Constructor • Método especial • É executado quando o objecto é instanciado constructor OOP em PHP 15
  • PHP Summer School Constructor (cont.) parâmetro de entrada lógica gravação do estado instanciação com parâmetro OOP em PHP 16
  • PHP Summer School Herança • Especialização de uma classe de objectos OOP em PHP 17
  • PHP Summer School Herança • Notação UML Porta PortaDeCarro PortaDeElevador PortaDeComboio OOP em PHP 18
  • PHP Summer School Herança em PHP classe base herança método só disponível na classe herdada OOP em PHP 19
  • PHP Summer School Interface • Não implementa métodos • Define métodos que serão utilizados em implementações • Obriga classes herdadas a seguirem a definição OOP em PHP 20
  • PHP Summer School Interface em PHP definição de interface implementação OOP em PHP 21
  • PHP Summer School Classe abstracta • Não pode ser instanciada • Serve para ser herdada por outras classes • Contém código que poderá ser reutilizado • Código poderá ser sobreposto pela classe herdada OOP em PHP 22
  • PHP Summer School Classe abstracta em PHP definição da classe abstracta sobreposição de um método OOP em PHP 23
  • PHP Summer School Sobrecarga (Overloading) • De atributos e métodos • Executado sempre que um atributo ou método não existem • Possibilidade de execução de código arbitrário • Possibilidade de criar default methods OOP em PHP 24
  • PHP Summer School Sobrecarga de atributos void __set ( string $name, mixed $value ) mixed __get ( string $name ) bool __isset ( string $name ) void __unset ( string $name ) OOP em PHP 25
  • PHP Summer School Sobrecarga de atributos array de atributos métodos de sobrecarga código de teste OOP em PHP 26
  • PHP Summer School Sobrecarga de métodos mixed __call ( string $name, array $arguments ) método de sobrecarga código de teste OOP em PHP 27
  • PHP Summer School Associação Porta Fechadura • Associa vários objectos • Permite referenciar objectos a partir de outros OOP em PHP 28
  • PHP Summer School Associação em PHP classe a ser associada associação OOP em PHP 29
  • PHP Summer School Iteração • Percorre todos os atributos públicos de um objecto • Utiliza statements básicos de PHP • Permite alterar o comportamento da iteração através do Interface Iterator OOP em PHP 30
  • PHP Summer School Iteração em PHP atributos escreve nome e valor dos atributos públicos OOP em PHP 31
  • PHP Summer School Design Patterns • Singleton • Factory Method OOP em PHP 32
  • PHP Summer School Singleton • Garante que só existe uma única instância de uma classe • A instanciação faz-se de um modo diferente • O objecto instanciado tem todas as características de um objecto normal OOP em PHP 33
  • PHP Summer School Singleton atributo estático que guardará o objecto Porta ... -instance = null ... o constructor é privado -__construct() +getInstance() : Porta devolve sempre a mesma instância do objecto OOP em PHP 34
  • PHP Summer School Singleton atributo estático que guardará o objecto o constructor é privado devolve sempre a mesma instância do objecto OOP em PHP 35
  • PHP Summer School Factory Method • Gere a instanciação de objectos • O programador não precisa saber qual a classe que deve instanciar • Produz objectos de acordo com parâmetros de entrada OOP em PHP 36
  • PHP Summer School Factory Method • Notação UML PortaDeCasa Porta devolve PortaDeElevador instância de +factory() uma das classes PortaDeComboio OOP em PHP 37
  • PHP Summer School Factory Method verifica se a classe existe e devolve uma instância OOP em PHP 38
  • PHP Summer School Frameworks • Conjuntos de classes • Oferecem funcionalidades importantes • autenticação • acesso a bases de dados • cache • Implementam Design Patterns OOP em PHP 39
  • PHP Summer School Frameworks • PEAR - http://pear.php.net/ • Zend Framework - http://framework.zend.com/ • Symfony - http://www.symfony-project.com/ • CakePHP - http://www.cakephp.org/ OOP em PHP 40
  • PHP Summer School Exercício 1 • Implementação de uma Calculadora • operações aceitam 2 operandos: (x,y) • últimos valores (x,y) são guardados em memória • últimos valores podem ser obtidos através de método específico OOP em PHP 41
  • PHP Summer School UML Calculadora -x últimos valores utilizados -y +soma(x, y) operações +multiplica(x, y) +ultimosValores() obtenção dos últimos valores OOP em PHP 42
  • PHP Summer School Implementação OOP em PHP 43
  • PHP Summer School Exercício 2 • Estender a Calculadora • permitir N operações • iniciar a calculadora indicando quais as operações pretendidas OOP em PHP 44
  • PHP Summer School UML Calculadora <<interface>> 0..1 -x Operacao * -y +gravaValores(x, y) +calcula(x, y) +ultimosValores() Soma Multiplicacao +calcula(x, y) +calcula(x, y) OOP em PHP 45
  • PHP Summer School Implementação interface implementação de duas operações OOP em PHP 46
  • PHP Summer School Implementação associação a N operações instanciação das operações instanciação da (...) calculadora OOP em PHP 47
  • PHP Summer School Implementação sobrecarga de métodos invocação da operação pretendida OOP em PHP 48
  • PHP Summer School Resumo • Classe e Objecto • Atributos e Métodos • Herança, interface e classe abstracta • Sobrecarga, associação e iteração • Singleton e Factory Method OOP em PHP 49
  • PHP Summer School Questões? OOP em PHP 50
  • PHP Summer School Mais informação • O meu blog: http://unfoldingtheweb.com/ • PHP Manual: http://www.php.net/ • UML: http://tinyurl.com/yohpad • Gamma, E., (1995). Design Patterns. Boston: Addison-Wesley. OOP em PHP 51