Demostração básica sobre Encapsulamento utilizando PHP OO

O Encapsulamento é um recurso de proteção de acesso a propriedades de uma classe.

Public -> qualquer um pode acessar
Private -> apenas acesso interno
Protected -> sub-classes podem acessar

 

http://php.net/manual/pt_BR/language.oop5.php

Exemplo

Classe Agenda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Agenda
{
    private $evento;
    private $data;
    private $descricao;
 
		public function setEvento( $evento ) {
			$this->evento = $evento;
		}
		public function getEvento() {
			return $this->evento;
		}
 
		public function setData( $data ) {
			$this->data = $data;
		}
		public function getData() {
			return $this->data;
		}
 
		public function setDescricao( $escricao ) {
			$this->escricao = $escricao;
		}
		public function getDescricao() {
			return $this->escricao;
		}
}

testanto a classe Agenda

1
2
3
4
5
6
7
$agenda = new Agenda();
$agenda->setEvento("Festa dos 100 dias");
$agenda->setData("14/03/2012");
$agenda->setDescricao("A festa mais esperado do ano!!!");
 
 
print_r($agenda);

Exemplo passado pelo prof. Edson

Classe Eletrodomestico.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Eletrodomestico {
 
    private boolean ligado;
    private int voltagem;
    private int consumo;
 
    public Eletrodomestico(){
 
    }
 
    public Eletrodomestico(boolean ligado, int voltagem, int consumo){
        this.voltagem = voltagem;
        this.ligado = ligado;
        this.consumo = consumo;
    }
 
    public int getConsumo() {
        return consumo;
    }
 
    public void setConsumo(int consumo) {
        this.consumo = consumo;
    }
 
    public boolean isLigado() {
        return ligado;
    }
 
    public void setLigado(boolean ligado) {
        this.ligado = ligado;
    }
 
    public int getVoltagem() {
        return voltagem;
    }
 
    public void setVoltagem(int voltagem) {
        this.voltagem = voltagem;
    }
 
}

Classe Tv.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class Tv extends Eletrodomestico {
 
    private int canal;
    private int volume;
    private int tamanho;
 
    public Tv(int voltagem, int consumo, int canal, int volume, int tamanho){
        super(false, voltagem, consumo);
        this.canal = canal;
        this.volume = volume;
        this.tamanho = tamanho;
    }
 
    public int getCanal() {
        return canal;
    }
 
    public void setCanal(int canal) {
        this.canal = canal;
    }
 
    public int getTamanho() {
        return tamanho;
    }
 
    public void setTamanho(int tamanho) {
        this.tamanho = tamanho;
    }
 
    public int getVolume() {
        return volume;
    }
 
    public void setVolume(int volume) {
        this.volume = volume;
    }
 
}

Exemplo

Classe Pessoa – Pessoa.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
 
namespace heranca.model
{
    public class Pessoa
    {
        private int _codigo; //var privada
 
        public int Codigo //encapsulamento
        {
            get { return _codigo; }
            set { _codigo = value; }
        }
 
        private string _endereco;
 
        public string Endereco
        {
            get { return _endereco; }
            set { _telefone = value; }
        }
 
        private string _telefone;
 
        public string Telefone
        {
            get { return _telefone; }
            set { _telefone = value; }
        }
 
        public bool ValidaDados()
        {
            return true;
        }
 
    }
}

Classe PessoaFisica – PessoaFisica.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
 
namespace heranca.model
{
    public class PessoaFisica : Pessoa
    {
        private string _cPF;
 
        public string CPF
        {
            get { return _cPF; }
            set { _cPF = value; }
        }
 
        private string _nome;
 
        public string Nome
        {
            get { return _nome; }
            set { _nome = value; }
        }
 
 
    }
}

Veja como é dificil fazer a herença, basta apenas ClasseD : ClasseA

1
public class PessoaFisica : Pessoa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class relogio
{
 
private int hora;
private int minuto;
private int segundo;
 
        public void sethora(int h)
           {
               if(h >= 0 && h <=23)
               hora=h;
               else
               hora=0;
            }
 
 
 
}