Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming



Documentos relacionados
Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

JSP - ORIENTADO A OBJETOS

Técnicas de Programação II

Programação por Objectos. Java

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Programação por Objectos. Java

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

PHP INTRODUÇÃO CLASSES E OBJETOS

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Linguagem de Programação III

Java 2 Standard Edition Como criar classes e objetos

ProgramaTchê programatche.net Programação OO com PHP

Análise e Projeto de Sistemas

Orientação a Objetos

Computação II Orientação a Objetos

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Parte I. Orientação a objetos no PHP. Contato: <lara.popov@ifsc.edu.br> Site:

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Orientação a Objetos com Java

Herança. Alberto Costa Neto DComp - UFS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

FBV - Linguagem de Programação II. Um pouco sobre Java

Análise de Programação

Prof. Jhonatan Fernando

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br

Padrão Básico de Projeto: Interfaces e Polimorfismo

Reuso com Herança a e Composiçã

sobre rogério gonçalves gerente de projetos > digitale agência digital rogerio@digitale.com.br h7p:// h7p://leveme.

Análise e Projeto Orientados por Objetos

UML Aspectos de projetos em Diagramas de classes

Programação de Computadores - I. Profª Beatriz Profº Israel

Orientação à Objetos. Aécio Costa

Programação Orientada a Objetos em Java. Herança

Profº. Enrique Pimentel Leite de Oliveira

LINGUAGEM DE PROGRAMAÇÃO WEB

Padrão Básico de Projeto: Herança versus Composição

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Python Intermediário. terça-feira, 4 de agosto de 15

Implementando uma Classe e Criando Objetos a partir dela

2 echo "PHP e outros.";

Módulo 07 Características Avançadas de Classes

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof. Marcelo da Silveira Siedler siedler@gmail.com

POO Programação Orientada a Objetos. Classes em Java

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Conceitos de OO AUTOLOAD. <?php function autoload($class_name) { require_once $class_name. '.php'; } $obj = new MyClass1(); $obj2 = new MyClass2();?

Introdução a Java. Hélder Nunes

Factory Method. Edeyson Andrade Gomes

PHP: Programando com Orientação a Objetos

Programação Orientada a Objetos em Java

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

Programação com Acesso a BD. Programação com OO Acesso em Java

OPERADORES E ESTRUTURAS DE CONTROLE

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Capítulo 4. Packages e interfaces

Desenvolvimento de Aplicações para Internet Aula 8

Computação II Orientação a Objetos

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Módulo 06 Desenho de Classes

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Capítulo 8. Introdução UML

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

NOVIDADES DO JAVA PARA PROGRAMADORES C

Desenvolvendo plugins WordPress usando Orientação a Objetos

Capítulo 3. Programação por objectos em Java

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Roteiro do Programa e Entrada/Saída

3.1 Definições Uma classe é a descrição de um tipo de objeto.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

2 Diagrama de Caso de Uso

Programação de Computadores - I. Profª Beatriz Profº Israel

3 Classes e instanciação de objectos (em Java)

APOSTILA PHP. Parte 2

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

Java. Marcio de Carvalho Victorino

Padrões de Projeto. Singleton

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Polimorfismo. Prof. Leonardo Barreto Campos 1

Aula 3 Objeto atual com referencia THIS e Classes com Herança

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Programação Orientada a Objetos em java. Polimorfismo

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Programação para Android. Aula 06: Activity, menus e action bar

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Programação Orientada a Objetos (DPADF 0063)

Linguagem de Programação III Herança

Noções sobre Objetos e Classes

Herança. Algoritmos e Programação II. Aula 5 Herança

Programação Orientada a Objetos

Desenvolvimento OO com Java Orientação a objetos básica

Transcrição:

Curso de PHP FATEC - Jundiaí A programação orientada a objetos (object-oriented oriented programming OOP) é um conjunto de técnicas t para organizar o código c em torno de entidades ou objetos representados por seu código. c Esse tipo de organização pode ser uma maneira bastante esclarecedora de pensar sobre problemas de programação, pois ela conduz a uma maneira muito natural de modelar situações do mundo real. Um benefício extra da OOP é a herança a de classes. Uma vez que você define uma classe, pode definir novas subclasses herdadas da d classe original, de modo que a subclasse tenha os mesmos tipos de d dados e comportamentos, exceto quando você especificar o contrário. rio.

Antes de entrarmos no OOP, vamos tentar abranger as terminologias usadas dentro do PHP. Classe: Uma classe é uma coleção de atributos e métodos. m Classes são tipos, isto é, rascunhos para a criação de objetos. Objeto: é uma instância de uma classe. Um objeto é uma construção feita a partir de uma classe. Variável membro: é uma variável vel identificada que pertence a uma classe particular. Em PHP chamamos de atributos. Função membro: é uma função específica a uma classe, também m são conhecidas como método. m Subclasse: é uma classe que herda, ou estende, uma classe previamente definida. Superclasse: é uma classe que é herdada ou estendida. Classes e objetos Quando usar classes Classes em PHP Hoje em dia, aplicações profissionais são estruturadas em classes, que representam alguma coisa (entidade) que a aplicação tem que manipular. Classes definem os dados (variáveis) veis) e a funcionalidade (funções) de cada uma dessas entidades. Objetos são variáveis veis de uma classe específica que agrupam todas as variáveis veis correspondentes a uma instância de uma entidade.

Exemplos de: Classes Curso Carro Objetos Curso sobre "PHP" Fiat Marea A classe Curso define variáveis veis como: Título Sala Duração O Curso sobre PHP tem os seguintes valores para estas variáveis: veis: Nome: Linguagem de Programação PHP Sala: 211 Duração: 01:00hr Funcionalidade da Classe A classe Curso define uma função para inscrever uma pessoa; A classe Curso define uma função para dizer se ainda háh vagas disponíveis; A classe Curso define uma função para listar todos os inscritos; A classe Curso define uma função para alterar dados da pessoa inscrita; Porque Usar Classes? Classes podem ser reutilizadas em vários v programas; As classes agrupam todos os dados e funções relacionados a uma entidade, tornando mais fácil f modificar ou manter os programas que utilizam esta entidade.

Classes em PHP Podem derivar de outras classes (Herança); a); Suportam construtores (funções com o nome da mesmo classe); Não tem restrições de visibilidade todos os atributos e métodos m são públicos; p Declaradas com o comando class; Instanciadas com o comando new; Acessamos variáveis veis e funções da classe com o operador ->; São auto-referenci referenciáveis pela variável vel $this; Uma classe é um conjunto de variáveis veis e funções relacionadas a essas variáveis. veis. Uma vantagem da utilização de programação orientada a objetos é poder usufruir do recurso de encapsulamento de informação. Com o encapsulamento o usuário de uma classe não precisa saber como ela é implementada, bastando para a utilização conhecer a interface, ou seja, as funções disponíveis. Uma classe é um tipo, e portanto não pode ser atribuída a uma variável. vel. Para definir uma classe, deve-se utilizar a seguinte sintaxe: Class nome_classe [extends Classe_Pai] [atributos] [funções] Uma classe é utilizada para descrever um objeto. Um objeto poderá utilizar todas as variáveis veis e funções existentes em sua classe.

Atributos Atributos são definidos da seguinte maneira: var $teste = meu teste ; As definições de atributo não podem ser inicializadas com um valor não- estático, tico, ou seja, devemos configurar um valor inicial da variável vel para uma string, um inteiro, um número n de ponto flutuante ou um array, mas não para um objeto. Um atributo pode ser de qualquer tipo do PHP. Podemos declarar o mesmo atributo quantas vezes quisermos, mas apenas o último a ser inicializado tem efeito. Atributo declarado em uma classe pode ser inicializado ou não. Se um atributo receber uma atribuição de valor quando for declarado em um classe, ele é inicializado. Funções As funções definidas dentro de uma classe, são definidas da mesma forma com se estivessem fora da classe. Para acessar um atributo do objeto, utilizamos a sintaxe $this$ this->variável. vel. Não utilize a forma $this$ this->$variável, vel, pois ela não funciona. A forma da $this->$variável vel funcionará apenas se a $variável vel for uma string contendo o nome do atributo que você deseja utilizar. Isso também m funciona para as funções. var $atribuição; $nome_do_atributo = atribuição ; echo $this$ this->$ >$nome_do_atributo; function função1()... $nome_da_função = função1 ; Echo $this$ this->$ >$nome_da_função;

Construtores Um construtor é uma função especializada definida em uma classe. Tem o mesmo nome da classe e pode receber argumentos. Cada classe pode ter apenas um construtor. Construtores são chamados automaticamente quando uma instância da d classe um objeto é criada. Eles são úteis para inicializar os atributos de um objeto com valores de inicialização razoáveis. <?php class teste var $curso; function teste echo passando por aqui...<br br> ;?> Construtores Um construtor é uma função definida na classe que é automaticamente chamada no momento em que a classe é instanciada (através s do operador new). O construtor deve ter o mesmo nome que a classe a que pertence. ence. 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 vel $saldo com o valor 0. 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. Vale observar que para classes derivadas, o construtor da classe pai não é automaticamente herdado quando o construtor da classe derivada é chamado.

Construtores <?php class minhaclasse var $var1; // não tem valor inicializado... var $var2 = "xyz" xyz"; var $var3 = 100; // constructor function minhaclasse() $this->var1 = "foo" foo"; $this->var2 = "bar"; return true; $teste = new minhaclasse(); $var_classe = get_class_vars(get_class get_class($teste)); foreach ($var_classe as $nome => $valor) echo "$nome : $valor<br br>";?> Resultado: // Antes PHP 4.2.0 var2 : xyz var3 : 100 // Depois PHP 4.2.0 var1 : var2 : xyz var3 : 100 Herança Uma classe no PHP pode ser derivada de outra classe. A classe derivada herda todas as funções e atributos da classe da qual foi derivada, sem precisar declará-los los novamente. class super function super_echo() echo Superclasse< Superclasse<br> ; class sub extends super function sub_echo() echo Subclasse< Subclasse<br> ; $obj = new sub(); // instancia um objeto $obj -> sub_echo(); // chama a função da classe $obj -> super_echo(); // chama função herdada

Herança Uma classe do PHP sós pode herdar de uma outra classe, mas esta superclasse também m pode herdar de outra superclasse. Classes em PHP podem ter apenas um pai, mas também m podem ter um avô. class super function super_echo() echo Superclasse< Superclasse<br> ; class sub extends super function sub_echo() class sub1 extends sub Avô echo Subclasse< Subclasse<br> ; function sub1_echo() echo Subclasse 1<br br> ; Pai Herança - Anulação Quando uma subclasse tem uma função com o mesmo nome da função de uma superclasse, a subclasse anula a função da superclasse. class super function teste() echo Mostra Superclasse<br br> ; class sub extends super function teste() echo Mostra Subclasse<br br> ;

<?php class Pessoa var $nome; var $sobrenome; function imprime_nome() echo $this$ this->nome. $this$ this->sobrenome. "<br br>"; function muda_nome($ ($novo_nome)) $this->nome = $novo_nome$ novo_nome; $this->imprime_nome(); $p = new Pessoa; $p->nome = "Regina"; $p->sobrenome = " Duarte"; $p->imprime_nome imprime_nome(); $p->muda_nome muda_nome("gabriela");?> <?php class CarrinhoDeCompras var $itens; function adiciona_item ($artnr, $num) $this->itens[$artnr] = $num; function remove_item ($artnr, $num) if ($this->itens[$artnr] > $num) $this->itens[$artnr] -= $num; return true; else return false; $carrinho = new CarrinhoDeCompras; $carrinho->adiciona_item("banana", 12);?>

Exercício cio em sala de aula: classe.php Termino da aula