Você está na página 1de 19

FCTI – Faculdade de Ciências e Tecnologias de

Informação

Licenciatura em
Desenvolvimento de Softwares
PROGRAMAÇÃO WEB
CAP_05 : PHP OO

30/10/2022 MARIO SITOE/ PW/FCTI/USTM.22B


POO – Programação Orientada a Objectos
A análise e projecto orientados a objectos têm como meta identificar o
melhor conjunto de objectos para descrever um sistema de software. O
funcionamento deste sistema se dá através do relacionamento e troca de
mensagens entre estes objectos.

30/10/2022 MARIO SITOE/ PW/FCTI/USTM.22B


POO
Implementa-se um conjunto de classes que definem os objectos presentes no
sistema de software.

Cada classe determina o comportamento (definido nos métodos) e estados


possíveis (atributos) de seus objectos, assim como o relacionamento com outros
objectos.

Com POO podemos quebrar problemas em pedaços menores que serão


comparativamente mais fáceis de entender.
Caracteristicas
 Reusabilidade - Não repita seu código, mas ao contrário reutilize-o.

 Extensível - Podemos criar novos objectos a partir dos existentes, que herdam
todas as suas características e adicionar novas.

 Manutenibilidade - São fáceis de manter devido a que seus objectos/partes são


pequenos e inclusive permitem facilidade para juntar.

 Eficiência - O conceito de orientação a objectos é actualmente associado a uma


melhor eficiência devido as suas características.
Classe
 É uma estrutura que define um tipo de dados, podendo conter atributos (variáveis) e também
funções (métodos) para manipular esses atributos.

<?php
class Pessoa { $Jorge = new Pessoa();
public $nome;//Atributo $Jorge ->nome = “Jorge Antonio”;
echo $Jorge ->falar();
Public function falar() { //metodo ?>
Return “O meu nome é “.$this -> nome;}
}
Exercício
 Pense em uma classe conta bancaria,

 Apresente suas propriedade (atributos)

 Suas funcionalidade(metodos);
Objectos
 É uma estrutura dinâmica originada com base em uma classe. Após a utilização de uma classe para
criar diversas estruturas iguais a ela, que interagem no Sistema e possuem dados nela armazenados,
dizemos que estamos criando objectos, ou mesmo instanciando objectos de uma classe.

 Diz-se que o objecto é uma instância de uma classe, porque o objecto existe durante um dado
instante de tempo – da sua criação até a sua destruição.

 Para instanciar um objecto de uma determinada classe, procedemos para a declaração de uma
variável qualquer(nosso objecto em questão) e lhe atribuímos o operador “new” seguido do nome
da classe que desejamos instanciar.
Getters e Setters
Os métodos getters e setters são métodos para acessar e modificar
informações de classes que possuem encapsulamento.

30/10/2022 MARIO SITOE/ PW/FCTI/USTM.22B


Getters e Setters
<?php
class Pessoa {
public $nome;
$Jorge = new Pessoa();
private $idade;
$Jorge ->nome = “Jorge Antonio”;
$jJorge -> idade = 18: Retorná erro.
Public function falar() {
($idade: private);
Return “O meu nome é .$this -> nome
echo $Jorge ->falar();
tenho $this ->idade anos”;
?>
} : Retorná erro.
}
<?php
class Pessoa { Public function setIdade ($idade) {
public $nome;
$this ->idade = $idade;
private $idade;
}
}
Public function falar() {
return "O meu nome é {$this ->nome} tenho {$this -
>getIdade()} anos";} $Jorge = new Pessoa();
$Jorge ->nome = "Jorge Antonio";
Public function getIdade (){ $Jorge ->setIdade(18);
Return $this -> idade; echo $Jorge ->falar();
}
?>
Métodos Mágicos: __construct(), toString,
get, set, invoke (), clone()

30/10/2022 MARIO SITOE/ PW/FCTI/USTM.22B


Construtor
 Um construtor é um método especial utilizado para definir o comportamento inicial de um
objecto, ou seja, o comportamento no momento de sua criação.

 O método construtor é executado automaticamente no momento em que instanciamos um


objecto por meio do operador new.

 Para definir um método construtor em uma determinada classe basta declarar o método
__construct().
<?php
Public function setIdade ($idade) {
$this ->idade = $idade;
class pessoa { }
public $nome; public function getContact(){
private $idade; return $this->contacto;
Private $contacto; }
public function __construct($contacto){
Public function falar() {
$this->contacto = $contacto;
}
}
return [$this ->getIdade(),$this->getContact()];
$Jorge = new pessoa("848286");

} $Jorge ->setIdade(18);
echo $Jorge ->nome = " <b>Nome:</b> Mario Sitoe
public function getIdade (){ <br> <b>Idade:</b> ";
return $this -> idade; echo implode ("<br> <b>Contacto:</b>", $Jorge -
}
>falar());
?>
Destrutor
 Um destrutor ou finalizador, é um método especial executado automaticamente quando o objecto
é desalocado da memória, quando atribuímos o valor NULL ao objecto, quando utilizamos a
função unset() sobre o mesmo ou, em última instância, quando o programa é finalizado. O
método destrutor pode ser utilizado para finalizar conexões, apagar arquivos temporários criados
durante o ciclo de vida do objecto, dente outras circunstancias.

 Para definir um método destrutor em uma determinada classe basta declarer o método
__destruct().
Destrutor
<?php

class Endereco{

private $logradouro; var_dump("DESTRUIR");


private $numero;
}
private $cidade;
public function __toString()
public function __construct($a, $b, $c)
}
{
$meuEndereco = new Endereco("Rua da Malhangalene", "1025", "Maputo");
$this->logradouro = $a;
var_dump($meuEndereco)
$this->numero = $b;
unset($meuEndereco)
$this->cidade = $c;
?>
}

public function __destruct(); ?>


Encapsulamento
O encapsulamento constitui um mecanismo que prove protecção de acesso aos membros internos de
um objecto.

 Existem certas propriedades de uma classe que devem ser tratadas exclusivamente por métodos
dela mesma, que são implementações projectadas para manipular essas propriedades da forma
correcta.

 As propriedades nunca devem ser acessadas directamente de for a do escopo de uma classe, pois
dessa forma a classe não fornece mais garantias sobre os atributos que contém, perdendo, assim, a
responsabilidade sobre eles
Encapsulamento
Para atingir o encapsulamento, uma das formas é definindo a visibilidade das propriedades e dos métodos de um
objeto. A visibilidade define a forma como essas propriedade devem ser acessadas. Existem três formas de
acesso:
Herança
 A utilização da OO e do encapsulamento do Código em classes nos orienta em direcção a uma
maior organização, mas um dos maiores benefícios que encontramos na utilização desse
paradigma é o reuso.

 A possibilidade de reutilizar partes de Código já definidas é o que nos dá maior agilidade no dia-a-
dia, além de eliminar a necessidade de eventuais duplicações ou reescritas de código
Herança
<?php
public function validar():bool{
class Documento{ $numeroNUIT = $this->getNumero();
private $numero; //validação do NUIT
public function getNumero(){ return true;
return $this->numero; }

} }

public function setNumero($n){ $doc = new Proforma();


$doc->setNumero("1122334");
$this->numero = $n;
var_dump($doc->validar());
}
echo "<br/>";
}
echo $doc->getNumero();
class Proforma extends Documento{
?>

Você também pode gostar