Baixe o app para aproveitar ainda mais
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?
Compartilhar