Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação I Orientação a Objetos Elton Morais1 2 objeto | s. m. 1ª pess. sing. pres. ind. de objetar ob.je.to |ét| substantivo masculino 1. Tudo o que é exterior ao espírito. 2. Coisa. 3. Assunto, matéria, causa, motivo. 4. Fim, escopo. Objetos O que são objetos? Objetos September 22, 20173 Pedra; Jaca; Casa; Carro. Conta Bancária; Cliente; Fornecedor; Estudante. September 22, 20174 O objetivo da Orientação a Objetos é representar o mais fielmente possível as situações do mundo real nos Sistemas Computacionais. Orientação a Objetos Qual o objetivo? September 22, 20175 A orientação a objetos tem sua origem nos anos 60 na Noruega, com Kristen Nygaard e Ole- Johan Dahl, no Centro Norueguês de Computação. Através da linguagem Simula 67, foram introduzidos os conceitos de classe e herança. Orientação a Objetos História Orientação a Objetos É um modelo de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. September 22, 20176 Abstração Pilar da Orientação a Objetos. September 22, 20177 Abstração Abstração consiste em focalizar nos aspectos essenciais inerentes a uma entidade e ignorar propriedades "acidentais". Em termos de desenvolvimento de sistemas, isto significa concentrar-se no que um objeto é e faz antes de decidir como ele será implementado. September 22, 20178 September 22, 20179 Identidade: deve ser única para cada objeto do sistema. Características: as propriedades do objeto. Ações: são os métodos que objeto irá executar. Abstração Pontos relevantes Encapsulamento Pilar da Orientação a Objetos September 22, 201710 Encapsulamento Consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente os métodos que acessam e alteram estes estados. September 22, 201711 Encapsulamento Representação gráfica de um objeto September 22, 201712 Encapsulamento Exemplo September 22, 201713 Modelo de Objetos Busca capturar a estrutura estática de um sistema mostrando os objetos existentes, seus relacionamentos, e atributos e operações que caracterizam cada classe de objetos. September 22, 201714 Objeto Características e ações. September 22, 201715 September 22, 201716 Um atributo é um valor de dado assumido pelos objetos de uma classe. Diferentes instâncias de objetos podem ter o mesmo valor para um dado atributo. Objeto Atributos e Métodos September 22, 201717 Métodos são procedimentos ou funções que realizam as ações próprias do objeto. É através dos métodos que um objeto se manifesta e interage com outros objetos. Objeto Atributos e Métodos Classes É uma abstração de um grupo de objetos com propriedades (atributos), ações ou comportamentos (métodos) similares, relacionamentos com outros objetos e semântica idênticas. September 22, 201718 Classes September 22, 201719 Uma classe define a estrutura e o comportamento de qualquer objeto da classe, atuando como um padrão para a construção de objetos. Uma pessoa tem um nome e uma idade; estes seriam os atributos comuns da classe. Uma pessoa fala e caminha; estes seriam os métodos comuns da classe. September 22, 201720 Classes Notação UML Classes September 22, 201721 Classes Cães Gatos September 22, 201722 September 22, 201723 Classes Hierarquia de Classes Classes Abstratas É uma classe que representa uma coleção de características presentes em vários tipos de objetos, mas que não existe e não pode existir isoladamente. Por exemplo, podemos criar uma classe abstrata chamada Animal. September 22, 201724 Herança 1. Aquilo que se herda ou que se deve herdar. 2. O que se transmite com o sangue. 3. Legado, domínio. 4. Posse. 5. Hereditariedade. September 22, 201725 Herança Genética September 22, 201726 Herança Constitui um mecanismo de aproveitamento de código. Através da herança os objetos podem compartilhar métodos e atributos. September 22, 201727 Herança A classe pai também é conhecida como superclasse ou ancestral, e classe filho, conhecida também como subclasse ou descendente. September 22, 201728 Herança Exemplo - Notação UML September 22, 201729 Herança Simples September 22, 201730 Herança Simples September 22, 201731 Herança Múltipla September 22, 201732 Polimorfismo O mesmo que polimorfia. [...] que tomam formas muito diversas. September 22, 201733 Polimorfismo Como sabemos, os objetos filhos herdam as características e ações de seus “ancestrais”. Entretanto, em alguns casos, é necessário que as ações para um mesmo método seja diferente. Em outras palavras, o polimorfismo consiste na alteração do funcionamento interno de um método herdado de um objeto pai. September 22, 201734 Polimorfismo Método Ligar(); September 22, 201735 Polimorfismo Método CalculaSalario() - Notação UML. September 22, 201736 September 22, 201737 Na POO o programador é responsável por moldar o mundo dos objetos, e explicar para estes objetos como eles devem interagir entre si. Os objetos "conversam" uns com os outros através do envio de mensagens, e o papel principal do programador é especificar quais serão as mensagens que cada objeto pode receber, e também qual a ação que aquele objeto deve realizar ao receber aquela mensagem em específico. POO Programação Orientada a Objetos Programação Estruturado Tipos de Dados; Variável; Função/Procedime nto; Chamada de função. Orientado a Objetos Classes; Objeto/Instância; Operação/Métod o Serviço; Envio de mensagem. September 22, 201738 Programação Orientada a Objetos Vantagens September 22, 201739 POO - Vantagens Reutilização de código; Leitura e manutenção de código; Criação de bibliotecas. September 22, 201740 September 22, 201741 Ada; C++; Delphi; Java; Python; Visual Basic; e muito mais. Programação Orientada a Objetos Linguagens Orientadas a Objetos Delphi Programação Orientada a Objetos September 22, 201742 Java Exemplo de Classe September 22, 201743 C# Exemplo de Classe September 22, 201744 PHP Exemplo de Classe September 22, 201745 PHP - Exemplo Objeto September 22, 201746 PHP - Exemplo Herança September 22, 201747 Programação Orientada a Objetos Encapsulamento em PHP September 22, 201748 September 22, 201749 private: somente podem ser acessados dentro da própria classe em que foram declarados. Notação UML: (-) PHP Encapsulamento September 22, 201750 protected: podem ser acessados dentro da própria classe em que foram declarados e a partir de classes descendentes. Notação UML: (#) PHP Encapsulamento September 22, 201751 public: podem ser acessados livremente a partir da própria classe em que foram declarados e descendentes. Notação UML: (+) PHP Encapsulamento Associação É a relação mais comum entre dois objetos, de modo que um possui uma referência à posição da memória onde o outro se encontra, podendo visualizar seus atributos ou acionar seus métodos. September 22, 201752 Associação Notação UML - Modelo PHP September 22, 201753 Agregação É a relação entre objetos conhecida como todo/parte. O objeto agrega outro objeto, ou seja, torna um objeto externo parte de si mesmo pela utilização de um dos seus métodos. September 22, 201754 Agregação Notação UML - Modelo PHP September 22, 201755 Composição É uma relação todo/parte, porém o objeto-pai ou "todo" é responsável pela criação e destruição de suas partes. September 22, 201756 Composição Notação UML - Modelo PHP September 22, 201757 Conclusão Com Orientação a Objetos você escreve menos código e mais organizado, além de concentrar as responsabilidades nos pontoscertos, flexibilizando sua aplicação, encapsulando a lógica de negócios. September 22, 201758 Referências Bibliográficas CORREIA, Carlos Henrique; TAFNER, Malcon Anderson. Análise Orientada a Objetos. Florianópolis: Visual Books, 2001. BORATTI, Isaias Camilo. Programação Orientada a Objetos: Usando Delphi. 4. ed. Florianópolis: Visual Books, 2007. DALL'OGLIO, Pablo. PHP: Programando com orientação a objetos. 2. ed. São Paulo: Novatec editora, 2009. September 22, 201759
Compartilhar