A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1 Augusto Sampaio e Paulo Borba Departamento de Informática Universidade Federal."— Transcrição da apresentação:

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

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 Tipos Abstratos (exemplo em Ada) 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)

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 Objeto (exemplo em Ada) 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)

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


Carregar ppt "Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1 Augusto Sampaio e Paulo Borba Departamento de Informática Universidade Federal."

Apresentações semelhantes


Anúncios Google