freeCodeCamp/guide/portuguese/design-patterns/object-oriented-programming/index.md

2.2 KiB
Raw Blame History

title localeTitle
Object Oriented Programming (OOP) Programação Orientada a Objetos (OOP)

Esboço

  • Por que orientado a objeto (doravante abreviado como OO)?
  • Conceitos OO
  • Qual o proximo?

Porquê OO?

Nesse paradigma, entidades são representadas como dados do mundo real. Por exemplo, queremos representar um cachorro. No paradigma OO, nós simplesmente criamos uma classe chamada "dog", e damos a ela atributos (cor, idade, sexo, etc) e comportamento (latir, correr, comer, etc). Comportamento é alterado através de "métodos" (funções em palavras simples) que fazem alterações nos atributos.

Conceitos OO

O que torna a programação OO poderosa é sua capacidade de fazer o seguinte:

  • Herança
  • Polimorfismo
  • Encapsulamento
  • Abstração

Na programação procedural, simplesmente criamos variáveis e as modificamos quando necessário. No entanto, na programação OO, podemos literalmente simular objetos do mundo real. O encapsulamento é conseguido através da criação de uma classe específica para uma entidade, por exemplo, cão. Objetos dessa classe são criados, e nada mais são do que instâncias da classe. Cada objeto possui seus próprios valores de atributo.

Outro conceito extremamente útil é o da herança. A ideia é que uma classe possa herdar atributos e comportamentos de uma classe base. Por exemplo, ao criar um jogo, temos um jogador e um inimigo. Podemos criar uma classe base chamada pessoa e dar a ela atributos como nome, idade, sexo, etc. O comportamento da pessoa pode ser caminhar e pular. Um jogador e um inimigo podem então herdar essas "qualidades" da pessoa e podem ter qualidades adicionais como matar, pontuar, comer, etc.

Isso ajuda a reutilizar o código e tornar a estrutura do rcode muito mais limpa. A ocultação de dados é outro recurso interessante. Em OO, temos a noção de atributos privados e públicos. Atributos privados podem ser acessados e modificados somente por métodos dessa classe em particular, enquanto dados públicos podem ser modificados de qualquer lugar no programa (dentro do escopo obviamente).

Qual o proximo?

Escolha uma linguagem OO e construa um jogo básico baseado em terminal para ilustrar esses conceitos.