• Nenhum resultado encontrado

} } function funcao1 ($parâmetro) { /* === corpo da função === */ var $variavel2; class Nome_da_classe { var $variavel1; Para definir uma classe, deve-se utilizar a seguinte sintaxe:

N/A
N/A
Protected

Academic year: 2021

Share "} } function funcao1 ($parâmetro) { /* === corpo da função === */ var $variavel2; class Nome_da_classe { var $variavel1; Para definir uma classe, deve-se utilizar a seguinte sintaxe:"

Copied!
12
0
0

Texto

(1)

(2)

Para definir uma classe, deve-se utilizar a seguinte sintaxe:

class Nome_da_classe { var $variavel1;

var $variavel2;

function funcao1 ($parâmetro) {

/* === corpo da função === */

} }

(3)

$variável = new $Nome_da_classe;

Para utilizar as funções definidas na classe, deve ser utilizado o operador “->”, como no exemplo:

$variável->funcao1();

(4)

class Conta { var $saldo;

function saldo() {

return $this->saldo;

}

function credito($valor) {

$this->saldo += $valor;

} }

$minhaconta = new Conta;

$minhaconta->saldo(); // a variável interna não foi inicializada, e não //contém valor algum

$minhaconta->credito(50);

$minhaconta->saldo(); // retorna 50

(5)

Em PHP não é permitido utilizar herança múltipla, ou seja, uma classe pode ser extensão de apenas uma outra.

Para criar uma classe extendida, ou derivada de outra, deve ser utilizada a palavra reservada extends, como pode ser visto no exemplo seguinte:

class Novaconta extends conta { var $numero;

function numero() {

return $this->numero;

} }

A classe acima é derivada da classe Conta, tendo as mesmas funções e variáveis, com a adição da variável $numero e a função numero().

(6)

Mantem-se as mesmas regras da OO quanto a public, private, protected

class Suporte {

public $titulo; // acessível a todos

protected $numero; // acessível somente em sua classe e subclasses private $preco; //acessível somente em sua classe

function Suporte($tit,$num,$preco){

$this->titulo = $tit;

$this->numero = $num;

$this->preco = $precio;

}

public function dar_preco_sem_imposto{

return $this->preco;

} public function dar_preco_com_imposto{

return $this->preco * 1.16;

}

(7)

class Conta { var $saldo;

function Conta () { $this.saldo = 0;

}

function saldo() {

return $this->saldo;

} function credito($valor) {

$this->saldo += $valor;

} }

Podemos perceber que a classe Conta agora possui um construtor, que inicializa a variável $saldo com o valor 0.

(8)

Um construtor pode conter argumentos, que são opcionais, o que torna esta ferramenta mais poderosa.

No exemplo acima, o construtor da classe conta pode receber como argumento um valor, que seria o valor inicial da conta.

function Conta ($saldoinicial) { $this.saldo = $saldoinicial;

}

$minhaconta = new Conta(100);

(9)

Vale observar que para classes derivadas, o construtor da classe pai não é automaticamente herdado quando o construtor da classe derivada é chamado.

class Novaconta extends conta { var $numero;

function Conta ($saldoinicial, $novonumero) { parent::Conta($saldoinicial);

$this->$numero = $novonumero }

}

$minhaconta = new Conta(100, “309-8”);

(10)

Técnica muito comum em herança de classes.

class Suporte { public $titulo;

protected $numero;

private $preco;

function Suporte($tit,$num,$preco){

$this->titulo = $tit;

$this->numero = $num;

$this->preco = $precio;

}

public function dar_preco_sem_imposto{

return $this->preco;

}

public function dar_preco_com_imposto{

return $this->preco * 1.16;

}

public function imprime_caracteristicas{

echo $this->titulo;

echo "<br>" . $this->preco . " (imposto nao incluido)";

} }

(11)

class DVD extends Suporte{

private $duracao;

function Suporte($tit,$num,$preco,$duracao){ // sobrescrita de construtor

parent::Suporte($tit,$num,$preco);

$this->duracao = $duracao;

}

public function imprime_caracteristicas(){

echo "Filme em VHS:<br>";

parent::imprime_caracteristicas(); // quando se deseja chamar a superclasse

echo "<br>Duracao: " . $this->duracao;

} }

(12)

Fazer o exercício nº 7 da lista

Exercicios_PHP.pdf disponível no site da disciplina

(www.professorgiuliano.vai.la >> CES - LabWeb)

Referências

Documentos relacionados

O proprietário acredita que para cada aumento de R$ 100,00 no aluguel, ele deve perder 5 inquilinos?. Qual seria o valor do aluguel mensal que maximizaria a receita do

Para saber como o amostrador Headspace 7697A da Agilent pode ajudar a alcançar os resultados esperados, visite www.agilent.com/chem/7697A Abund.. Nenhum outro software

Considerando a formação da equipe de trabalho, o tempo de realização previsto no projeto de extensão e a especificidade das necessidades dos catadores, algumas

A justificativa do presente trabalho se dá devido à importância do cuidado da enfermagem na assistência do pré-natal, que para autores como Duarte e Almeida

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - Câmpus Presidente Epitácio Rua José Ramos Junior, 27-50 - Jardim Tropical - Presidente Epitácio - SP - Brasil -

A Departamento Municipal de Trânsito da Prefeitura Municipal de PAULO AFONSO e Autoridade de Trânsito deste Município, com fulcro no artigo 281 e 282 do Código de Trânsito

[r]

● Podemos declarar uma classe “Retângulo” em Python da seguinte maneira:!.