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

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

Conceitos de Orientação a Objetos zConceito de tipo zTipos Abstratos de Dados zMódulos/Pacotes zEncapsulamento.

Apresentações semelhantes


Apresentação em tema: "Conceitos de Orientação a Objetos zConceito de tipo zTipos Abstratos de Dados zMódulos/Pacotes zEncapsulamento."— Transcrição da apresentação:

1 Conceitos de Orientação a Objetos zConceito de tipo zTipos Abstratos de Dados zMódulos/Pacotes zEncapsulamento

2 Variáveis X Objetos Variável R: record Variável P: objeto record

3 Variáveis X Objetos objeto d1 objeto d2 pd1 pd2

4 Conceito de tipo zTipo é uma especificação de um conjunto de valores que podem ser associados com uma variável, junto com as operações que podem ser legalmente usadas para criar, fazer acesso e modificar tais valores. zEsse conjunto de operações é chamado de interface pública do tipo. zTipo Boolean, valores true e false, operações AND, OR e NOT

5 Conceito de tipo zEm OO, tipo é uma coleção de objetos com a mesma interface pública. zTipo é essencialmente a descrição de interface. zUma classe especifica uma particular implementação de um tipo. zJava separa explicitamente a definição de tipos da sua implementação. zOutras linguagens, C++ e Eiffel, não separam.

6 tipagem estática X tipagem dinâmica zVerificação de tipos decide se uma determinada operação é válida ou não sobre um objeto, e se ela levará a uma inconsistência de tipos. zLinguagens estaticamente tipadas são aquelas onde o tipo de uma variável que aponta para um objeto é definido em tempo de compilação. zLinguagens dinamicamente tipadas são aquelas onde o tipo de uma variável referente a um objeto é conhecido em tempo de compilação mas pode ser mudado dinamicamente em tempo de execução.

7 Tipos abstratos de dados zOcultamento da informação é uma prática pela qual o projetista se restringe à interface pública de um tipo para propósitos de inspeção ou modificação. zUm tipo abstrato de dados é um tipo acrescido com a noção de ocultamento da informação.

8 Tipos Abstratos de Dados EspecificaçãoImplementação Sintaxe (assinatura) Semântica (equaçõs algébricas) Representação (estrutura de dados) Algoritmos

9 Módulos/Pacotes zUm conjunto de classes relacionadas podem ser agrupadas em módulos, chamados de pacotes. zMódulos definem restrições de acesso de seu conteúdo para clientes fora do módulo. zTudo que pode ser acessado publicamente está declarado na sua interface pública. zO conceito de módulo é muito útil para o ocultamento de detalhes de implementação.

10 Módulos/Pacotes zMódulos implementam o conceito de tipos abstratos de dados. zEles consistem em duas partes: uma parte de especificação (definição do módulo) e outra de implementação (corpo do módulo) zEm Java, módulos podem ser definidos usando-se a palavra reservada package.

11 Encapsulamento zEncapsulamento é uma técnica para minimizar as interdependências entre módulos através de interfaces externas restritas. zUm módulo está encapsulado se os clientes fazem acesso ao módulo somente através de sua interface externa. zEncapsulamento garante aos projetistas que mudanças podem ser feitas de modo seguro, facilitando a manutenção e evolução do software

12 Encapsulamento zA definição de uma classe pode ser vista como espécie de módulo cuja interface externa consiste de um conjunto de operações. zUma classe tem os seguintes tipos de clientes: lClientes por instanciação - são os que criam instâncias da classe e manipulam essas instâncias. lClientes por herança - são as subclasses que herdam os métodos e estrutura da classe. lClientes internos ao módulo - são as classes que estão dentro do mesmo módulo/pacote. lClientes externos ao módulo - são as classes clientes que estão fora do módulo/pacote.

13 Encapsulamento zVisibilidade de atributos e operações: lPública - clientes de qualquer tipo podem fazer acesso, manipular e invocar diretamente atributos e métodos declarados como public. lPrivada - clientes de qualquer tipo não podem fazer acesso, manipular ou invocar atributos e métodos declarados como private. lVisível pela subclasse - somente os clientes por herança têm acesso a atributos e métodos declarados como protected. lAcesso ao módulo/pacote - um método privado pode ser acessível pelas classes internas ao pacote, enquanto que as classes externas têm acesso apenas aos métodos exportados pelo pacote.


Carregar ppt "Conceitos de Orientação a Objetos zConceito de tipo zTipos Abstratos de Dados zMódulos/Pacotes zEncapsulamento."

Apresentações semelhantes


Anúncios Google