Skip to content

Commit 2aecf55

Browse files
authored
Merge branch 'master' into feature/setters
2 parents 808c9ca + 27c5aaf commit 2aecf55

File tree

5 files changed

+59
-3
lines changed

5 files changed

+59
-3
lines changed

4-Intermediário/4-Modificadores-de-acesso.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,3 +114,4 @@ $filho = new Filho();
114114
$filho->mostrarCpfPai(); //Erro fatal
115115
```
116116

117+
Ir para: [4.5 Getters](5-Getters.md)

4-Intermediário/5-Getters.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# 4.5 - Métodos Getters
2+
3+
## O que são?
4+
Os métodos getters servem para pegar a referência de um valor (geralmente de uma propriedade).
5+
6+
## Por que usar?
7+
Como vimos anteriormente em [4.4 - Modificadores de Acesso](4-Modificadores-de-acesso.md), temos os modificadores de acesso, e nem sempre queremos deixar
8+
as nossas propriedades e métodos públicos, mas se deixarmos privados como vamos acessar seu valor? podemos usar um getter. Veja o exemplo abaixo.
9+
10+
```php
11+
class exemplo
12+
{
13+
private $propriedadePrivada = "Esta propriedade não pode ser alterada nem lida diretamente";
14+
public $propriedadePublica = "Esta propriedade pode ser alterada e lida diretamente";
15+
16+
17+
//Esse método retorna o valor da $propriedadePrivada
18+
public function getterParaAPropriedadePrivada()
19+
{
20+
return $this->propriedadePrivada;
21+
}
22+
}
23+
```
24+
No exemplo acima nós criamos duas propriedades, uma privada e uma pública. A propriedade pública pode ser lida e ter seu valor alterado, já a propriedade
25+
privada pode ser lida usando o método ```getterParaAPropriedadePrivada()```, porém não pode ser alterada.
26+
27+
## Como usar?
28+
Podemos usar uma palavra reservada do php ```this``` para referênciar uma propriedade da nossa classe, Veja o exemplo abaixo.
29+
30+
<img src="../images/ExemploGetter.png">
31+
32+
Podemos criar uma função que retorna a referência desejada usando a palavra ```this```.
33+
34+
## Getters em métodos estáticos
35+
Ok criamos getters para as nossas propriedades, Porém esses getters só funcionam em métodos não estáticos, pois a palavra ```this``` não se aplica
36+
em métodos estáticos, para isso temos a palavra ```self```.
37+
38+
<img src="../images/ExemploGetterEstatic.png">
39+
40+
Em essência nós usamos a palavra ```this``` para acessar o estado interno de um objeto, e a palavra ```self``` para acessar membros de uma definição de classe.
41+
42+
```php
43+
class Exemplo
44+
{
45+
private static $propriedadePrivada = "Esta propriedade não pode ser alterada nem lida diretamente";
46+
public static $propriedadePublica = "Esta propriedade pode ser alterada e lida diretamente";
47+
48+
49+
//Esse método retorna o valor da $propriedadePrivada
50+
public static function getterParaAPropriedadePrivada()
51+
{
52+
return self::$propriedadePrivada;
53+
}
54+
}
55+
```

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@
5353
2. [Construtores e Destrutores](/4-Intermediário/2-Construtores-e-destrutores.md)
5454
3. [Herança](/4-Intermediário/3-Herança.md)
5555
4. [Modificadores de Acesso](/4-Intermediário/4-Modificadores-de-acesso.md)
56-
5. [Getters (Em construção)]()
56+
5. [Getters](/4-Intermediário/5-Getters.md)
5757
6. [Setters](/4-Intermediário/6-Setters.md)
58-
7. [Polimorfismo (Em construção)]()
59-
8. [Interfaces (Em construção)]()
58+
8. [Polimorfismo (Em construção)]()
59+
9. [Interfaces (Em construção)]()
6060

6161
### Módulo de funções
6262

images/ExemploGetter.png

26.2 KB
Loading

images/ExemploGetterEstatic.png

27.7 KB
Loading

0 commit comments

Comments
 (0)