---
# System prepended metadata

title: Programação Orientada a Objetos

---

# Programação Orientada a Objetos

POO é um paradigma da programação, ou seja, é a forma como o código é estruturado e modelado. Nele as propriedades e comportamentos são agrupados em objetos individuais. 

> Em resumo, conseguimos modelar entidades do mundo real como objetos que possuem informações (atributos) e realizam certas funções (métodos).

Vamos imaginar uma pessoa, ela possui 3 atributos (propriedades): nome, idade e endereço.Essa pessoa tem comportamentos, ou seja, realiza funções, que denominamos de métodos. 

Neste caso, o objeto é a pessoa que tem nome, idade e endereço já definidos. É o que chamamos de instanciar um objeto, passar os dados para ele.

A classe em si define como são os métodos. Por exemplo, para o objeto que citamos acima, a classe terá as funções 'andar' e 'correr', mas não terá nenhum dado, como o nome.

Trazendo agora um exemplo voltado mais para robótica. Vamos imaginar uma classe chamada LerSensor. Para simplificar o entendimento, ela terá apenas um método, que é a função de lerValor que o sensor está retornando. 

Nosso robô tem 4 sensores, 2 ultrassônicos e 2 de borda. 

Criamos então 4 objetos, chamados: sensorUltEsq, sensorUltDir, sensorBordaEsq e sensorBordaDir. Cada objeto tem seus atributos, ou características, que são seu tipo e a porta/ pino que estão conectados. 

Mesmo usando o mesmo método da mesma classe, cada um vai retornar um valor, ou seja, vai se comportar diferente, isso acontece porque seus atributos não são os mesmos.


