Prévia do material em texto
ATIVIDADE 3 - PROGRAMAÇÃO DE SOLUÇÕES COMPUTACIONAIS Texto 1 Ao criar uma classe, em vez de escrever variáveis de instância e métodos completamente novos, o programador pode indicar que a nova classe deve herdar as variáveis de classe, propriedades e métodos de outra classe. A classe anteriormente definida é chamada de classe base, e a nova classe é referida como classe derivada. (Outras linguagens de programação, como Java, se referem à classe base como superclasse e à classe derivada como subclasse). Uma vez criada, cada classe derivada pode se tornar a classe base de futuras classes derivadas. Uma classe derivada, na qual variáveis de classe, propriedades e métodos exclusivos são normalmente adicionados, é frequentemente maior do que sua classe base. Portando, uma classe derivada é mais específica do que sua classe base e representa um grupo mais especializado de objetos. Normalmente, a classe derivada contém os comportamentos de sua classe base e comportamentos adicionais. A classe base direta é a classe base a partir da qual a classe derivada herda explicitamente. Uma classe base indireta é herdada de dois ou mais níveis acima na hierarquia de classes. No caso de herança simples, uma classe é derivada de uma única classe base. DEITEL, Harvey M.; DEITEL, Paul J. C#: como programar. 1. ed. Pearson, São Paulo. 2003. p. 294. Texto 2 Em Ciência da Computação, é fundamental o trabalho com conjunto de dados, que podem representar coleções de: números, dados de um funcionário, dados de um produto, entre outros. Esses conjuntos são aqui chamados de conjuntos dinâmicos, pois os algoritmos que os manipulam fazem com que eles cresçam, encolham ou sofram alterações ao longo do tempo. Assim, as principais operações sobre os conjuntos dinâmicos são: inserir um elemento, excluir outro, buscá-lo, encontrar o maior, o menor, contar os elementos, alterá-los, buscar o elemento sucessos e o predecessor. Uma estrutura de dados do tipo lista representa um conjunto de dados organizados em ordem linear. Quando a estrutura lista é representada por um arranjo, ou seja, é feita a utilização de vetores na representação, tem-se o uso de endereços contíguos de memória do computador e a ordem linear é determinada pelos índices do vetor, o que em algumas situações exige um maior esforço computacional. Tal representação denomina-se lista estática. Quando a estrutura lista é representada por elementos que, além de conter o dado, possuem também um ponteiro para o próximo elemento, ou seja, elementos encadeados, tem-se a representação denominada lista dinâmica. Toda lista dinâmica tem pelo menos um ponteiro para o início. ASCENCIO, Ana F. G. Estrutura de Dados: algoritmos, análise da complexidade e implementações em Java e C/C". 1. ed. Pearson, São Paulo. 2010. p. 105. Defina o que é herança no contexto de programação orientada a objetos e por qual motivo é um dos pilares desse paradigma de programação, argumentando as vantagens de sua utilização. Depois, defina o que são listas e a diferença entre listas estáticas e dinâmicas, para, finalmente, relacionar a utilização de herança e implementação de soluções computacionais no contexto de programação orientada a objetos, elencando qual a sua relação com o uso de estruturas de dados, argumentando a relação de listas com classes e, possivelmente, também com herança. RESPOSTA: A herança na programação orientada à objetos é definida pela necessidade de facilitar a leitura do código. Durante a construção de um código, sabemos que quanto mais limpo e simples ele for, melhor, contanto é claro que ele execute a ação desejada; neste contexto existe a ferramenta chamada herança. Com este recurso, podemos montar estruturas hierárquicas que são compostas por superclasses e subclasses. Portanto as vantagens do uso da herança derivam do fato de que ela deixa o código mais siscinto e estatize algumas características que serão usadas nas subclasses. Quanto às listas, podemos dizer que elas são um arranjo de elementos (dados) dispostos em ordem vetorial. Dispomos de dois tipos de listas, estáticas e dinâmicas; as estáticas obedecem a ordem subsequênte de termos, o que dificulta o acesso por muitas vezes, enquanto que as listas dinâmicas podem ser acessadas de acordo com algum referencial definido como início. As classes por sua vez são classificações criadas para agrupar características em comum, servem para caracterizar grupos dentro do código. Como conclusão, podemos perceber as classes se parecem com a noção de herança, já que amabas deixam o código mais resumido e remetem á características pré-definidas e agrupamentos de elementos, variáveis e outros recursos dentro do código. Junto a isso, as listas representam a necessidade de que termos sejam organizados dentro do código, e aqui podemos dar enfoque às listas dinâmicas, que como a herança e as classes, possui a função de simplificar o código e otimizar tarefas, além de conferir um entendimento lógico similar ao raciocínio humano.