Logótipo

Caffeine Algorithm


Uma organização de desenvolvimento que ama cafeína e algoritmos.




Programação Orientada a Objetos

O tópico de hoje é sobre o paradigma chamado de programação orientada a objetos.

O que é a programação orientada a objetos?

A programação orientada a objetos é um paradigma amplamente utilizado hoje em dia e é baseado na composição entre as diferentes unidades de software de nome objetos e implementa um conjunto de classes que definem esses mesmos no sistema.

Cada classe determina o comportamento (métodos) e os estados possíveis (atributos) dos objetos, bem como a relação com outros objetos.

Conceitos essenciais

  • Classe: representa um conjunto de objetos e define o comportamento desses mesmos através dos seus métodos e os estados que são capazes de manter através dos seus atributos;
  • Subclasse: uma nova classe que herda as características de uma outra classe (ou mais classes se possível);
  • Objeto: uma instância de uma classe que é capaz de armazenar estados por meio dos seus atributos e responder a mensagens enviadas para ele, bem como relacionar e enviar mensagens para outros objetos;
  • Atributo: a característica de um objeto e a estrutura de dados que irá representar a classe;
  • Método: define a “habilidade” de um objeto particular;
  • Mensagem: é o processo de chamada a um objeto para invocar um dos seus métodos e permitindo assim um comportamento descrito pela sua classe;
  • Herança: mecanismo pelo qual uma classe (subclasse) pode estender outra classe (superclasse) para tirar proveito do seu comportamento (métodos) e dos seus possíveis estados (atributos);
  • Encapsulamento: é a separação dos aspetos internos e externos de um objeto e este mecanismo é usado para evitar o acesso direto ao estado de um objeto (atributo);
  • Abstração: a capacidade de se concentrar nos aspetos essenciais de qualquer contexto ignorando características secundárias ou acidentais;
  • Polimorfismo: é o princípio pelo qual duas ou mais classes derivadas da mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura), contudo, diferentes comportamentos;

Linguagens de programação orientadas a objetos

C++, C#, VB.NET, Java, Objective-C, Python, Ruby, …

Tem um bom fim de semana.

Happy coding!