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

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

Classes e Objetos. Sintaxe de classe em Java

COMPORTAMENTOS - Observações

O PARADIGMA ORIENTADO POR OBJETOS

Programação Orientada a Objetos

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Desenvolvendo Websites com PHP

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Conceitos de Programação Orientada a Objetos

C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

MONTANDO UMA CONSULTA COM FILTROS. Vamos criar uma tela que gere uma relação de dados, escolhendo a ordenação e um filtro.

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

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

Interfaces e Classes Abstratas

Linguagem de Programação I Apresentação da Disciplina

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans.

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno

Unidade: Introdução à POO (Programação Orientada a Objetos)

Linguagem de Programação Introdução a Orientação a Objetos

Modificadores de acesso e atributos de classe

Aula 3 Primeiros programas

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Terceira aula

Aula 05 Classes, Atributos, Métodos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Agenda. O que é um array. Declaração de um array. Instanciação de um array. Acessando os elementos de um array. O tamanho de um array (length)

Linguagem de Programação II Implementação

Prof. Esp. Andrew Rodrigues 1

Capítulo 6: Arquivos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Conceitos de Orientação a Objetos

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Introdução aos Algoritmos

Conceitos de Programação Orientada a Objetos

Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

Declaração de Construtores em Java

AULA 11 PROGRAMAÇÃO ORIENTADA A OBJETOS (INTRODUÇÃO) Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Introdução a Programação Web com PHP

Levantamento, Análise e Gestão Requisitos. Aula 03

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Disciplina de Lógica e Linguagem de Programação Desenvolvido pelo professor Danilo Giacobo Ferramenta Code::Blocks

Programação Orientada a Objetos JAVA - NETBEANS

Programação Orientada a Objetos

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Programação Orientada a Objetos - 3º semestre AULA 01 Prof. André Moraes

Curso de PHP. FATEC - Jundiaí TIPOS DE VARIÁVEIS

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

Programação Orientada a Objetos

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

Estrutura de Dados Funções e Procedimentos

Introdução a Programação Orientada a Objetos

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Técnicas de Programação:

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Engenharia de Software Orientada a objetos. Prof. Rogério Celestino dos Santos

Unidade: sobrecarga, construtores e herança

Fundamentos de Orientação à objetos

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Programação Orientada a Objeto (POO)

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Programação Orientada a Objetos

Programação Orientada a Objetos

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Informática. Professor: Diego Oliveira. Conteúdo 04: Orientação a Objetos

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Uso do SIKULI para automação

Transcrição:

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila. ORIENTAÇÃO A OBJETOS A orientação a objetos representa uma espécie de filosofia voltada para a construção de sistemas. A base principal da programação orientada a objetos é a construção de parte reutilizáveis chamadas classes. Essas classes se interagem entre si através de objetos. A programação orientada a objetos tem como principal objetivo o reaproveitamento de código de programação. Um outro benefício, e também muito importante, é a organização do código do sistema. Para desenvolver um sistema com orientação a objetos é fundamental entender o conceito de classes e objetos. PHP 5 Já sabemos que o PHP é uma linguagem de programação, muito utilizada para o desenvolvimento de aplicativos voltados para web. E sabemos também que o PHP interage com o HTML. O PHP possui a versatilidade de funcionar em um grande número de sistemas operacionais (Windows, Linux, MacOS X) e também na maioria dos servidores web, como por exemplo o apache. Além de tudo isso, é totalmente gratuito e possui uma vasta literatura na internet. A versatilidade e a liberdade que o PHP proporciona, está também na forma de programar. Tanto faz programar de forma estrutural como orientado a objetos. Sendo que, a partir da versão 5 do PHP, muitos problemas de programação orientado a objetos foram corrigidos, problemas estes existentes na versão 4, tornando atrativo desenvolver em PHP orientado a objetos. Um outro atrativo do PHP é o suporte a um grande número de banco de dados, como o mysql, SQLite, PostgreSql, dentre outros. PHP 5 ORIENTADO A OBJETOS O PHP 5, como já foi citado, veio corrigir vários problemas em relação a orientação a objetos, falhas estas existentes na versões 3 e 4. Nas versões mais antigas do PHP, a orientação a objetos era mais uma simulação. O fato do PHP 5 ter suporte a orientação a objetos, a linguagem não obriga a programar orientado a objetos. Mas vale apena utilizar os recursos que foram disponibilizados. UTILIZANDO O PHP 5 ORIENTADO A OBJETOS NA PRÁTICA Classes (Class) Classe é um termo utilizado em linguagens orientado a objetos. No caso, a classe representa um objeto que existe no mundo real. Podemos definir classe também como um conjunto de objetos que compartilham as mesmas operações. A palavra chave utilizada para criar-se uma classe é class e logo em seguida vem o nome da classe. Este nome pode ser qualquer um, desde que não seja uma palavra reservado do PHP. Normalmente, as classes ficam armazenadas em um arquivo à parte do restante do sistema. E o que podem ser classes e métodos de uma classe??? Regras de negócio (pessoa, cliente), interfaces (janelas, botões), mensagens para usuários, dentre outros. Ou seja, pode-se abstrair do mundo real qualquer situação e podemos escrever

uma classe. EXEMPLO: Em um sistema acadêmico, podemos abstrair vários objetos: aluno, curso, disciplina, professor, etc. A partir dai, podemos construir nossas classes. Class Pessoa { ATRIBUTOS MÉTODOS É importante salientar que toda classe deve possuir um nome. No exemplo acima, a classe chama-se Pessoa. ATRIBUTOS (OU PROPRIEDADES) Quando variáveis estão sendo utilizadas em uma classe, as mesmas passam a chamar-se ATRIBUTOS (ou propriedades). Os atributos determinam as características da classe. No exemplo abaixo, $nome é uma propriedade ou atributo. EXEMPLO : (salvar como pessoa.class.php) Class Pessoa { public $nome; Os atributos podem ser definidos com as seguintes visibilidades: pública, protegida ou privada (public, protected ou private). Encapsulamento O encapsulamento é um recurso da orientação a objetos, que provê a proteção de acesso a membros internos de um objeto. Existem alguns casos em que precisamos criar um método em uma classe, e este método só poderá ser executada dentro da própria classe. Para realizar o encapsulamento, temos que definir a visibilidade entre as propriedades e/ou métodos de uma classe. Private Protected Visibilidade Descrição As declarações realizadas com private somente podem ser acessadas dentro da própria classe. Não poderão ser acessados através do programa que faz uso dessa classe e nem de outras classes descendentes. Na UML é representado pelo sinal (-). As declarações realizadas com protected somente podem ser acessadas dentro da própria classe ou a partir de classes

Public Visibilidade Descrição descendentes. Nunca a partir de um programa que utiliza a classe. Na UML é representado pelo sinal (#). Quem tem acesso à classe tem acesso também a qualquer membro com visibilidade public. É acessível dentro da classe, nas classes extendidas e nos programas que estão instanciando a classe. Na UML é representado pelo símbolo (+). MÉTODOS Métodos são funções (functions), e são declaradas dentro de uma classe. Os métodos representam as ações a serem executadas por um determinado objeto, como alterar um valor, executar uma fórmula, etc. Neste caso, podemos considerar que os métodos são as ações da nossa classe, ou seja, o que está disponível para ser executado. Assim como a classe, os métodos precisam de um nome, e seguem as mesmas regras de uma classe. EXEMPLO : O objetivo do método gravar é exibir o nome da pessoa na tela # Declarando uma classe Class Pessoa { # Declarando 1 atributo public $nome; # Declarando um método public function gravar() { echo $this->nome; return Esta pessoa vai andar!!! ; *** salvar o script acima como pessoa.class.php Dados desta classe: O nome deste arquivo será pessoa.class.php. O nome da classe é Pessoa. O nome de um dos métodos é gravar(). DICA: Usualmente inicia-se o nome de uma classe com letra maiuscula. As visibilidades public, private e protected também são utilizadas na criação dos métodos. Pseudo-variável ($this->) A pseudo variável $this faz referência a uma variável ou a um método dentro de uma classe. Em outras palavras, é utilizada quando um método ou uma variável (que na classe é um atributo) é executado dentro do próprio objeto (classe). Pode-se dizer que $this é o chamador do método ou variável. Veja o exemplo acima. Criando uma instância (New) Quando fala-se em instanciar uma classe ou criar uma instância, isso quer dizer que desejamos concretizar esta classe, ou seja, preparar a classe para ser utilizada. Parte-se do princípio que a classe já existe fisicamente, mas para utilizá-la

em um ou mais programas, precisamos criar uma instância. Para criar-se uma instância em um programa, é necessário realizar a include da classe (no caso, o arquivo onde a classe está armazenada) e logo depois atribuir a uma variável, usando a palavra NEW. EXEMPLO: programa para instanciar a(s) classe(s) e o(s) método(s) include "pessoa.class.php"; // include do programa onde está a classe $objeto = new Pessoa; // criando uma instância da classe $objeto->nome = "Meu Nome"; // Atribuindo valor a propriedade da classe $resposta = $objeto->gravar(); // executando um método da classe echo $resposta; *** salvar o script acima como pessoa.php *** Executar 127.0.0.1/pessoa.php *** Nunca faça 127.0.0.1/pessoa.class.php Métodos Construtores Um método construtor são métodos (funções) especiais, que tem como objetivo inicializar um objeto, ou seja, determinar o comportamento inicial deste objeto. Cada vez que um novo objeto é criado, caso seja necessário, podemos utilizar o método construtor para objetivamente construir o objeto. Os métodos construtores não possuem valor de retorno. Geralmente passamos como parâmetros (atributos) para a classe através do método construtor, propriedades (valores, informações) que são fundamentais durante a sua execução. O atributos que são privados ou protegidos, deverão obrigatoriamente ter acesso a classe através do método construtor. Em um método construtor podem ser executados comandos. A utilização de um método construtor não é obrigatória. Observação: os parâmetros recebidos pelo método construtor podem não ser obrigatórios. Sendo assim, podemos atribuir NULL a propriedade. Exemplificando Método Construtor Neste exemplo vamos continuar utilizando a class Pessoa. Vamos acrescentar a esta classe um método construtor e um atributo PRIVATE que será o código da pessoa ($codpessoa). Mesmo em um método construtor, um parâmetro poderá ser considerado nulo (NULL). Neste caso, este atributo não torna-se obrigatório na hora da instância da classe. Regras para criação desta classe:

1. O atributo $codpessoa será private, pois este somente poderá ser passado para a classe através do método construtor ou através de algum método da própria classe. 2. O atributo $nome poderá ser passado tanto fora como na própria classe. EXEMPLO: pessoa.class.php (vamos acrescentar mais dados a classe) class Pessoa { # Declarando atributos private $codpessoa; public $nome; # Método construtor function construct($codpessoa) { $this->codpessoa = $codpessoa; # Método para carregar um objeto, caso o mesmo já exista # Seria por exemplo retorno de um select no bd private function carregar() { $this->codpessoa = 1; $this->nome = 'Meu Nome'; return "$this->codpessoa $this->nome"; # Método para gravar dados de um objeto # Seria por exemplo resultado de um insert no bd public function gravar() { echo $this->codpessoa; echo $this->nome; return "Vai Gravar"; Instância da Classe com o método construtor Vamos instanciar novamente a classe Pessoa, utilizando novamente o programa pessoa.php. Passo 1 : Incluir o arquivo pessoa.class.php (include) Passo 2 : Instanciar a classe, passando o parâmetro para o método construtor, ou não, caso não seja necessário, no caso de uma inclusão por exemplo. Passo 3 : Instanciar o(s) atributo(s) da classe que não estão sendo instanciados pelo método construtor. A partir dai, poderemos visualizar o objeto e fazermos uso dos métodos da classe. include "pessoa.class.php"; # Include da classe

$codpessoa=1; # Valor da variável $codpessoa $objeto = NEW Pessoa($codpessoa); # Instanciando a classe $objeto->nome = "Meu Nome"; # Executando o método gravar() $resposta = $objeto->gravar(); echo $resposta; echo "<hr>"; # Executando o método carregar() $resposta = $objeto->carregar(); echo $resposta; Obs: Troque os valores do atributos para visualizar os dados serem retornados. Note que, ao instanciar a classe, cria-se um objeto. Os atributos deste objeto poderão ser utilizados em todos métodos da sua classe. Caso o objeto não seja criado ao ser instanciado, verifique erros de sintaxe e/ou lógica. EXERCÍCIOS - Escreva uma classe chamada Correntista (corrente.class.php) - Atributos da classe: conta (private), cpf (public), nome (public). - Métodos da classe: mostrar() Regra: exibir na tela todos os atributos da classe Correntista e retornar a mensagem "Conta Aberta". - Escreva um programa chamado corrente.php para : NA AULA - Fazer a include da classe - Instanciar a classe e os respectivos atributos - Executar o método RESOLUÇÃO No assunto classes, estude também Herança, Polimorfismo, Abstratas, Encapsulamento.