1 / 13

Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1

Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1. Augusto Sampaio e Paulo Borba Departamento de Informática Universidade Federal de Pernambuco. Explorando Conceitos. Encapsulamento Módulos, pacotes Information hiding Mecanismos de visibilidade Tipos abstratos

leanne
Download Presentation

Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Paradigmas de Linguagens de ProgramaçãoLinguagem Orientada a Objetos 1 Augusto Sampaio e Paulo Borba Departamento de Informática Universidade Federal de Pernambuco

  2. Explorando Conceitos • Encapsulamento • Módulos, pacotes • Information hiding • Mecanismos de visibilidade • Tipos abstratos • Objetos e classes • Pacotes e classes parametrizadas

  3. Pacotes • Grupo de declarações (variáveis, constantes, tipos, procedimentos, funções, classes, subpacotes) • Agrupamento de conceitos fortemente relacionados • Facilita entendimento, reuso e manutenção • Encapsulamento

  4. Pacotes com Informações Escondidas • Pacotes com facilidades para exportar e esconder declarações: • Essenciais versus Auxiliares • O que? versus Como? • Independência de detalhes de implementação • Facilita reuso e manutenção • Information hiding • Tipos abstratos, objetos e classes

  5. Tipos Abstratos • Pacotes definindo tipos e escondendo a representação de seus elementos • Estruturação: dados versus funções • Tipo definido por operações, não valores • Independência da representação dos elementos. • Facilita reuso e manutenção

  6. package directory_type is type Dir is limited private procedure insert (dir : in out Dir; name : in Name; number: in Number); procedure lookup (...); private type DirNode; type Dir is access DirNode; type DirNode is record ... end record; end Package body directory_type is procedure insert ( ); -- codigo para insert procedure lookup (...); -- codigo para lookup end directory_type; use directory_type; homedir : Dir; workdir: Dir; ... insert (workdir, me, 6041); insert (homedir, me, 8715); lookup (workdir, me, mynumber, ok) Tipos Abstratos (exemplo em Ada)

  7. Objetos (forma primitiva) • Pacotes definindo variáveis escondidas e exportando operações de acesso às mesmas • Estruturação: dados versus funções • Independência da representação das variáveis • Controla como e em que ordem as variáveis podem ser acessadas • Facilita reuso e manutenção

  8. Objetos (forma primitiva) • Similar a Tipo abstrato + Variável deste tipo, com certas restrições: • um dos argumentos de uma operação do tipo é a variável utilizada para armazenar o resultado de tal operação • Nessa forma, objetos são cidadãos de segunda classe: não podem ser argumentos ou resultados de operações, etc • Não há herança ou dynamic binding

  9. package directory_object is procedure insert (name : in Name; number: in Number); procedure lookup (...); end directory_object; package body directory_object is type DirNode; type DirPtr is access DirNode; type DirNode is record ... end record; root : DirPtr procedure insert ( ); -- codigo para insert procedure lookup (...); -- codigo para lookup begin ...; -- inicializa diretorio end directory_object; use directory_object; directory_object.insert (me, 6041); directory_object.lookup (me, mynumber, ok) Objeto (exemplo em Ada)

  10. Classes de objetos • Em Ada, usando um generic package generic package directory_class is -- como na def de directory_object ... end directory_object; package body directory_object ... package homedir is new directory_class; package workdir is new directory_class; workdir.insert (me, 6041); homedir.insert (me, 6041); workdir.lookup (me, mynumber, ok);

  11. Pacotes Parametrizados • Pacotes são abstrações de declarações • Abstrações podem ser parametrizadas • Parâmetros: valores, tipos, pacotes, etc. • O mesmo conceito pode ser aplicado para classes (templates de C++, generics de Java)

  12. Leitura • Programming Language Concepts and Paradigms • Capítulo 6

  13. Exercícios e Projetos • Estenda a Linguagem Orientada a Objetos 1 com os seguintes recursos: • Subtipos e herança múltipla de código • Expressão new para criação de objetos • Classes parametrizadas, como templates em C++ • Pacotes como em Java • Tipos abstratos

More Related