orientação a objetos v2
DESCRIPTION
Uma breve evolução dos paradigmas de programação até a Orientação a Objetos, assim como apresentação de alguns recursos da mesma dentro do contexto de programação. Códigos Utilizados: https://github.com/augustohp/palestra-orientacao-objetos Avaliações: - VII Congresso Uniararas: https://joind.in/6692TRANSCRIPT
![Page 1: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/1.jpg)
ORIENTAÇÃO A OBJETOS...
1Thursday, June 14, 2012
![Page 2: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/2.jpg)
ORIENTAÇÃO A OBJETOSSIM, MAIS UMA PALESTRA DE
2Thursday, June 14, 2012
![Page 3: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/3.jpg)
ORIENTAÇÃO A OBJETOSSIM, MAIS UMA PALESTRA DE
@AUGUSTOHP@ALGANET
3Thursday, June 14, 2012
![Page 4: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/4.jpg)
AGENDA
4Thursday, June 14, 2012
![Page 5: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/5.jpg)
AGENDA
CONCEITOS
4Thursday, June 14, 2012
![Page 6: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/6.jpg)
AGENDA
CONCEITOS
PARADIGMAS DE PROGRAMAÇÃO
4Thursday, June 14, 2012
![Page 7: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/7.jpg)
CONCEITOS
5Thursday, June 14, 2012
![Page 8: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/8.jpg)
ESTADO
6Thursday, June 14, 2012
![Page 9: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/9.jpg)
ESTADOhardware na maioria das vezes nem sabe o estado
7Thursday, June 14, 2012
![Page 10: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/10.jpg)
ESTADOhardware na maioria das vezes nem sabe o estado
BRINCADEIRA
8Thursday, June 14, 2012
![Page 11: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/11.jpg)
ESTADO
9Thursday, June 14, 2012
![Page 12: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/12.jpg)
TIPAGEM
10Thursday, June 14, 2012
![Page 13: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/13.jpg)
TIPAGEM
11Thursday, June 14, 2012
![Page 14: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/14.jpg)
REUSO
12Thursday, June 14, 2012
![Page 15: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/15.jpg)
REUSO
13Thursday, June 14, 2012
![Page 16: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/16.jpg)
FIBONACCI
14Thursday, June 14, 2012
![Page 17: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/17.jpg)
SEQUÊNCIA DE FIBONACCI
15Thursday, June 14, 2012
![Page 18: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/18.jpg)
SEQUÊNCIA DE FIBONACCIHTTPS://EN.WIKIPEDIA.ORG/WIKI/FIBONACCI_NUMBER
16Thursday, June 14, 2012
![Page 19: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/19.jpg)
PARADIGMAS DE PROGRAMAÇÃO
17Thursday, June 14, 2012
![Page 20: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/20.jpg)
ASSEMBLY
18Thursday, June 14, 2012
![Page 21: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/21.jpg)
.datafibonacci DWORD 100 dup (0).codemov edx,offset fibonaccimov eax,1mov ebx,1mov ecx,49@@:mov DWORD PTR [edx],eaxmov DWORD PTR [edx+4],ebxadd eax,ebxadd ebx,eaxadd edx,8sub ecx,1jnz @B
HTTP://WWW.CODECODEX.COM/WIKI/FIBONACCI_SEQUENCE#80386.2B_ASSEMBLY
19Thursday, June 14, 2012
![Page 22: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/22.jpg)
.datafibonacci DWORD 100 dup (0).codemov edx,offset fibonaccimov eax,1mov ebx,1mov ecx,49@@:mov DWORD PTR [edx],eaxmov DWORD PTR [edx+4],ebxadd eax,ebxadd ebx,eaxadd edx,8sub ecx,1jnz @B
HTTP://WWW.CODECODEX.COM/WIKI/FIBONACCI_SEQUENCE#80386.2B_ASSEMBLY
20Thursday, June 14, 2012
![Page 23: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/23.jpg)
.datafibonacci DWORD 100 dup (0).codemov edx,offset fibonaccimov eax,1mov ebx,1mov ecx,49@@:mov DWORD PTR [edx],eaxmov DWORD PTR [edx+4],ebxadd eax,ebxadd ebx,eaxadd edx,8sub ecx,1jnz @B
HTTP://WWW.CODECODEX.COM/WIKI/FIBONACCI_SEQUENCE#80386.2B_ASSEMBLY
21Thursday, June 14, 2012
![Page 24: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/24.jpg)
.datafibonacci DWORD 100 dup (0).codemov edx,offset fibonaccimov eax,1mov ebx,1mov ecx,49@@:mov DWORD PTR [edx],eaxmov DWORD PTR [edx+4],ebxadd eax,ebxadd ebx,eaxadd edx,8sub ecx,1jnz @B
HTTP://WWW.CODECODEX.COM/WIKI/FIBONACCI_SEQUENCE#80386.2B_ASSEMBLY
22Thursday, June 14, 2012
![Page 25: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/25.jpg)
.386.model Flatpublic Fibonacciinclude iosmacros.inc ; inclui macros de output para tela
.codeFibonacci proc
MOV EAX, [ESP+4] CMP EAX, 1 JA Recurse MOV EAX, 1 ; retorna o valor de eax JMP exit
Recurse: PUSH EBX ; preserva o valor de ebx DEC EAX PUSH EAX CALL Fibonacci MOV EBX, EAX ; ebx preservado, seguro de usar DEC [ESP] ; decrementa o valor no stack CALL Fibonacci ADD EAX, EBX ; retorna o valor em eax ADD ESP, 4 ; remove o valor do stack POP EBX ; restaura o valor antigo de ebxexit:retFibonacci endp HTTP://STACKOVERFLOW.COM/QUESTIONS/5616684/RECURSIVE-FIBONACCI-IN-ASSEMBLY
23Thursday, June 14, 2012
![Page 26: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/26.jpg)
PROCEDURAL
24Thursday, June 14, 2012
![Page 27: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/27.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
25Thursday, June 14, 2012
![Page 28: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/28.jpg)
1235813213455891442333776109871597258441816765
26Thursday, June 14, 2012
![Page 29: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/29.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
27Thursday, June 14, 2012
![Page 30: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/30.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
28Thursday, June 14, 2012
![Page 31: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/31.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
29Thursday, June 14, 2012
![Page 32: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/32.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
30Thursday, June 14, 2012
![Page 33: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/33.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
31Thursday, June 14, 2012
![Page 34: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/34.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
32Thursday, June 14, 2012
![Page 35: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/35.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
33Thursday, June 14, 2012
![Page 36: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/36.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
34Thursday, June 14, 2012
![Page 37: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/37.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
35Thursday, June 14, 2012
![Page 38: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/38.jpg)
1 <?php 2 $past = 0; 3 $current = 1; 4 $limit = 20; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 }
HTTP://WWW.DREAMINCODE.NET/CODE/SNIPPET920.HTM
36Thursday, June 14, 2012
![Page 39: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/39.jpg)
1 <?php 2 function fibonacci($limit) { 3 $past = 0; 4 $current = 1; 5 for($i=1; $i<$limit; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 echo $final . PHP_EOL; 10 } 11 } 12 fibonacci(20);
37Thursday, June 14, 2012
![Page 40: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/40.jpg)
1 <?php 2 function fibonacci($iteration) { 3 $past = 0; 4 $current = 1; 5 for($i=1; $i<$iteration; $i++) { 6 $final = $past + $current; 7 $past = $current; 8 $current = $final; 9 } 10 return $current; 11 } 12 echo fibonacci(20) . PHP_EOL; // 6765
38Thursday, June 14, 2012
![Page 41: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/41.jpg)
1 <?php 2 require 'fibonacci-func-return.php'; 3 4 for ($i=1; $i<=20; $i++) 5 echo fibonacci($i) . PHP_EOL;
39Thursday, June 14, 2012
![Page 42: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/42.jpg)
ORIENTADO A OBJETOS
40Thursday, June 14, 2012
![Page 43: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/43.jpg)
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
41Thursday, June 14, 2012
![Page 44: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/44.jpg)
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
INSTÂNCIA
42Thursday, June 14, 2012
![Page 45: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/45.jpg)
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
CLASSE
43Thursday, June 14, 2012
![Page 46: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/46.jpg)
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
44Thursday, June 14, 2012
![Page 47: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/47.jpg)
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
45Thursday, June 14, 2012
![Page 48: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/48.jpg)
1 <?php 2 require 'Fibonacci.php'; 3 4 $iterator = new Fibonacci(20); 5 while ($iterator->valid()) { 6 echo $iterator->current() . PHP_EOL; 7 $iterator->next(); 8 }
46Thursday, June 14, 2012
![Page 49: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/49.jpg)
1 <?php 2 class Fibonacci 3 { 4 // Conteúdo da classe 5 }
47Thursday, June 14, 2012
![Page 50: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/50.jpg)
1 <?php 2 class Fibonacci 3 { 4 /** 5 * Número anterior, o primeiro na sequência é o 0 (zero). 6 * 7 * @var integer 8 */ 9 protected $previous = 0; 10 /** 11 * Número atual, o segundo na sequência é o 1 (um). 12 * 13 * @var integer 14 */ 15 protected $current = 1; 16 /** 17 * Número da iteração. 18 * 19 * @var integer 20 */ 21 protected $iteration = 0; 22 /** 23 * Qual o limite de iterações a executar. 24 * 25 * @var integer 26 */ 27 protected $limit; 28 }
48Thursday, June 14, 2012
![Page 51: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/51.jpg)
1 <?php 2 class Fibonacci 3 { 4 // ... (Proriedades) 5 6 /** 7 * Construtor. 8 * 9 * @example $i = new Fibonacci(25); 10 * @param integer $n=25 Limite de iterações 11 */ 12 public function __construct($n=25) 13 { 14 $this->limit = $n; 15 } 16 17 // ... (outros métodos) 18 }
49Thursday, June 14, 2012
![Page 52: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/52.jpg)
1 <?php 2 class Fibonacci 3 { 4 // ... (Construtor e Propriedades) 5 6 /** 7 * Retorna o elemento atual da sequência. 8 * 9 * @return integer 10 */ 11 public function current() 12 { 13 return $this->current; 14 } 15 16 // ... (outros métodos) 17 }
50Thursday, June 14, 2012
![Page 53: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/53.jpg)
HTTP://GIT.IO/HAPPYPANDA
51Thursday, June 14, 2012
![Page 54: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/54.jpg)
1 <?php 2 class Fibonacci 3 { 4 // ... 5 6 /** 7 * Retorna o número da iteração atual. 8 * 9 * @return integer 10 */ 11 public function key() 12 { 13 return $this->iteration; 14 } 15 16 // ... (outros métodos) 17 }
52Thursday, June 14, 2012
![Page 55: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/55.jpg)
1 <?php 2 class Fibonacci 3 { 4 // ... 5 6 /** 7 * Vai para próxima iteração. 8 * 9 * @return void 10 */ 11 public function next() 12 { 13 $final = $this->current + $this->previous; 14 $this->previous = $this->current; 15 $this->current = $final; 16 $this->iteration++; 17 } 18 19 // ... (outros métodos) 20 }
53Thursday, June 14, 2012
![Page 56: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/56.jpg)
1 <?php 2 class Fibonacci 3 { 4 // ... 5 6 /** 7 * Volta para primeira iteração. 8 * 9 * @return void 10 */ 11 public function rewind() 12 { 13 $this->previous = $this->iteration = 0; 14 $this->current = 1; 15 } 16 17 // ... (outros métodos) 18 }
54Thursday, June 14, 2012
![Page 57: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/57.jpg)
1 <?php 2 class Fibonacci 3 { 4 // ... 5 6 /** 7 * Retorna se existe uma próxima iteração válida. 8 * Caso não existe, executa Fibonacci::rewind(). 9 * 10 * @see Fibanacci::rewind() 11 * @return boolean 12 */ 13 public function valid() 14 { 15 if ($this->iteration < $this->limit) 16 return true; 17 18 $this->rewind(); 19 return false; 20 } 21 }
55Thursday, June 14, 2012
![Page 58: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/58.jpg)
DESIGN PATTERNS
56Thursday, June 14, 2012
![Page 59: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/59.jpg)
1 <?php 2 class FibonacciIterator implements Iterator 3 { 4 // ... 5 }
57Thursday, June 14, 2012
![Page 60: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/60.jpg)
1 <?php 2 require 'FibonacciIterator.php'; 3 4 foreach ($iterator as $i) 5 echo $i . PHP_EOL;
HTTP://PHP.NET/ITERATOR
58Thursday, June 14, 2012
![Page 61: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/61.jpg)
COMPOSIÇÃO >
GENERALIZAÇÃO
59Thursday, June 14, 2012
![Page 62: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/62.jpg)
AGENDA
60Thursday, June 14, 2012
![Page 63: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/63.jpg)
AGENDA
CONCEITOS
60Thursday, June 14, 2012
![Page 64: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/64.jpg)
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
60Thursday, June 14, 2012
![Page 65: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/65.jpg)
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
60Thursday, June 14, 2012
![Page 66: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/66.jpg)
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
60Thursday, June 14, 2012
![Page 67: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/67.jpg)
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
60Thursday, June 14, 2012
![Page 68: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/68.jpg)
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
PROCEDURAL
60Thursday, June 14, 2012
![Page 69: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/69.jpg)
AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
PROCEDURAL
ORIENTAÇÃO A OBJETOS
60Thursday, June 14, 2012
![Page 70: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/70.jpg)
PERGUNTAS?
61Thursday, June 14, 2012
![Page 71: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/71.jpg)
OBRIGADO!
62Thursday, June 14, 2012
![Page 72: Orientação a objetos v2](https://reader035.vdocuments.site/reader035/viewer/2022062308/5597049e1a28ab624f8b4805/html5/thumbnails/72.jpg)
RECADOS DA PARÓQUIA
HTTP://WWW.THEDEVELOPERSCONFERENCE.COM.BR
4 a 8 julho
63Thursday, June 14, 2012