Buscar

Tipos de dados abstratos e encapsulamento em programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

5185/31 e 6888/1– Paradigma de Programação Imperativa 
e Orientada a Objetos 
Profa. Valéria 
6ª Lista de Exercícios 
Cap. 11 (Sebesta): Tipos de dados abstratos e encapsulamento 
1. Quais são os dois tipos de abstrações em linguagens de programação? 
2. Defina tipo abstrato de dados (TAD). 
3. Quais são os requisitos de projeto de uma LP para que ela suporte TADs? 
4. Qual a diferença fundamental entre um pacote Ada e uma classe C++? 
5. Onde os objetos em C++ são alocados? E os objetos Java? 
6. Qual o propósito de um construtor em C++? 
7. Quais os tipos legais de retorno de um construtor em Java? 
8. Em que diferentes locais a definição de uma função membro em C++ pode aparecer? 
9. Como os objetos de classe em C++ são criados? E em Java? 
10. Por que Java não tem destrutores? 
11. Em C++, o que é uma função amiga? E uma classe amiga? 
12. Java não tem funções nem classes amigas. Como resolver o problema quando uma classe precisa 
ter acesso aos dados de outra (sem uso de herança)? 
13. Cite pelo menos uma razão para se definir os atributos de uma classe como privados em vez de 
públicos. 
14. Explique o funcionamento dos modificadores de acesso private, protected e public em Java. 
15. Escreva o código em C++ de uma classe genérica (template) que implemente um tipo fila capaz de 
ser instanciada para qualquer tipo primitivo. A classe deve ter dois construtores: um sem 
parâmetro que cria uma fila de tamanho máximo 50, e um que recebe um int como parâmetro 
que determina o tamanho máximo da fila. Além dos construtores, a classe deve ter os métodos 
por_na_fila() e tirar_da_fila(), que devem obedecer à política de inserção e remoção em 
filas. 
16. Escreva a mesma classe genérica do exercício 15 em Java. 
17. O que é um espaço de nomes (namespace) em C++ e qual o seu propósito? 
18. O que é um pacote Java e qual o seu propósito?

Outros materiais