Vamos falar sobre:
- Definindo POO;
- Métodos (Construtores e Destrutores);
- Sobrecarga;
- Herança;
- Encapsulamento;
- Polimorfismo;
- Classes Abstratas;
- Interfaces.
Tipos de Padrões:
O que são padrões ? São formas padronizadas de resolver problemas comuns, através de ocorrências frequêntes em POO. O livro “Design Patterns” Gof: Gang of Four. É uma referência mundial no assunto.
Exemplo de nomes de padrões:
- Strategy;
- Adapter e Decorator;
- Singleton;
- Método Fábrica;
- Fábrica Abstrata;
- Protótipo;
- Estado;
- MVC.
Definindo POO
Na programação tem paradigmas, que são formas particulares de raciocinar para criar um algoritmo. Esses modelos influenciam no processo de desenvolvimento de software, irei citar os dois mais utilizados, são eles:
Paradigma estruturado
Os problemas são feitos a partir de modularização compostas por procedimentos e funções, também conhecidas como sub-rotinas ou subprogramas, feitas por blocos de estruturação que realizam tarefas específicas. São compostas por alguns tipos básicos de estrutura: desvio condicional (if-else), estrutura de decisão (switch case), estruturas de repetição ou laços de repetição (for e while). São subdivididas em pequenas tarefas, tendendo a ficar menores e mais organizadas. São executados linearmente, linha após linha, de cima para baixo. Acredito que é a forma primária quando aprendemos a programar, pois é a maneira mais simples de construir um pequeno programa.
Paradigma orientado a objetos
Nesse caso o problema é visto como uma coleção de objetos que se comunicam por meio de troca de mensagens. Simula objetos da vida real na forma de códigos, esse paradigma tem conceitos chaves: classes e objetos. A classe define os elementos de um conjunto de objetos, tem como particularidades os atributos, que são as características, e os métodos, que são os comportamentos e ações. Ambos fazem parte da Classe, ela é necessária para instanciar o Objeto.
Ademais, a classe é um conceito abstrato, serve como um molde, que se torna concreto e palpável através da criação de um objeto. Esse modelo é menos custoso ao desenvolver milhares de linhas, e de manutenção mais ágil. Existem algumas linguagens de programação que possibilitam o paradigma de POO como: Java, C++, C#, Rust, PHP, TypeScript, JavaScript, Kotlin, Ruby, Smalltalk80 e Python. Poo é utilizado em projeto maiores.
O que é um Objeto?
Objeto
É uma construção de software que encapsulam características e comportamentos. Os objetos permitem que você modele seu software em termos reais e abstrações. Objeto é uma instância de uma classe.
O que é uma classe?
Classe
Uma classe define os atributos e os métodos. Os objetos de certo tipo ou classificação compartilham os mesmos comportamentos e características. As classes atuam de forma muito parecida com um cortador de molde ou biscoito, no sentido de que você usa uma classe para criar ou instanciar objetos.
Atributos (dados)
São as características de uma classe, visíveis externamente. A cor dos olhos e a cor dos cabelos são exemplos de atributos. Se temos uma calculadora: os botões, a cor da calculado e o tamanho, também pode ser um exemplo. Os atributos são coleções de dados e são análogos a substantivos.
Método (comportamentos)
É uma ação executada por um objeto, quando passada uma mensagem ou em resposta a uma mudança de estado: é algo que um objeto faz. São análogas a verbos. Um objeto pode exercer o comportamento de outro, executando uma operação sobre esse objeto. Você pode ver os termos: chamada de método, chamada de função ou passar uma mensagem, em vez de executar uma operação. O que é importante é que cada uma dessas ações omite o comportamento de um objeto.