Você está na página 1de 3

POO (Programação Orientada a Objetos) seus 4 pilares

fundamentais que são:

1 - Abstração
Abstração significa "esconder" partes da implementação do objeto expondo apenas
uma interface simples para seu uso.
Resultado: redução da complexidade + redução do impacto das mudanças;
2 - Encapsulamento
Encapsulamento se refere à construção do objeto de modo a proteger o acesso
direto a seus dados internos. Ao encapsularmos um objeto estamos agrupando
propriedades e métodos que estão diretamente relacionados dentro de um mesmo
objeto, permitindo que essas propriedades sejam acessadas apenas através de
métodos públicos.
Resultado: redução da complexidade + aumento da reusabilidade;
3 - Herança
A Herança é uma forma de eliminar repetição de código onde, como o próprio nome
sugere, um objeto pode herdar características (ou seja, propriedades e métodos) de
outra classe, sem a necessidade de se reescrever essas mesmas características.
Resultado: eliminação de repetição de código;
4 - Polimorfismo
Poli significa muitas e Morphos significa forma, então Polimorfismo significa muitas
formas. Em POO Polimorfismo é caracterizado quando duas ou mais classes
possuem métodos com o mesmo nome, mas podendo ter implementações
diferentes.
Resultados: remoção de código desnecessários;
A realização da herança múltipla, em que uma subclasse pode herdar de mais de
uma superclasse direta não é permitida, sendo possível usar alguns benefícios da
herança múltipla. A subclasse herdar métodos que não precisa ou que não deveria
ter é um dos grandes problemas com a herança.
Subscrever(overrride) um método para a adéqua-lo pode ser uma solução para a
classe.
Como podemos estruturar esses dados?
A estrutura de dados é uma maneira de armazenar e organizar dados de forma
eficiente, de modo que as operações necessárias neles possam ser realizadas com
eficiência em relação ao tempo e também à memória. Simplesmente, a Estrutura de
Dados é usada para reduzir a complexidade (principalmente a complexidade de
tempo) do código.
As estruturas de dados podem ser de dois tipos:
1. Estrutura de dados estáticos;
2. Estrutura de dados dinâmica;
1-1 Estrutura de dados estáticos
Na estrutura de dados estática, o tamanho da estrutura é fixo. O conteúdo da
estrutura de dados pode ser modificado, mas sem alterar o espaço de memória
alocado para ele.
2-2 Estrutura de Dados Dinâmica
Na estrutura de dados Dinâmica, o tamanho da estrutura não é fixo e pode ser
modificado durante as operações realizadas nela. Estruturas de dados dinâmicas
são projetadas para facilitar a mudança de estruturas de dados em tempo de
execução.
Exemplo de estruturas de dados dinâmicas: lista vinculada
Estrutura de dados estáticos e estrutura de dados dinâmicos A estrutura de dados
estáticos tem tamanho fixo de memória, enquanto na Estrutura de dados dinâmicos,
o tamanho pode ser atualizado aleatoriamente durante o tempo de execução, o que
pode ser considerado eficiente em relação à complexidade da memória do código.
Estrutura de dados estáticos fornece acesso mais fácil aos elementos com relação à
estrutura de dados dinâmica. Ao contrário das estruturas de dados estáticas, as
estruturas de dados dinâmicas são flexíveis.
Na programação competitiva, as restrições no limite de memória não são muito altas
e não podemos exceder o limite de memória. Dado o valor mais alto das restrições,
não podemos alocar uma estrutura de dados estáticos desse tamanho, portanto, as
Estruturas de Dados Dinâmicas podem ser úteis.
Entre as principais estruturas de dados avançadas temos: pilhas, filas, listas e
árvores. Estas estruturas armazenam dados e são manipuladas por funções básicas
do tipo: cria, insere, elimina, consulta e altera.
Estas estruturas podem ser implementadas tanto da forma estática quanto da forma
dinâmica.

Você também pode gostar