Entendendo Programação Orientada a Objetos

3.15k views1939 WordsCopy TextShare
Code By Duda
A Programação Orientada a Objetos (#POO) é importante porque oferece uma maneira eficiente e organiz...
Video Transcript:
Hoje a gente vai explorar um dos conceitos mais fundamentais e poderosos que a gente tem na programação a programação orientada a objetos também conhecida como Poo Oi gente para quem não me conhece meu nome é Eduardo Sou formada em engenharia de software e Trabalho há mais de 4 anos no mercado como desenvolvedora e no vídeo de hoje é o primeiro vídeo aí dessa sequência que a gente vai ter falando sobre programação orientada a objetos aqui a gente vai cobrir alguns tópicos essenciais alguns conceitos básicos para que você entenda de fato o que é a programação
orientada objetos e qual que é a sua principal diferença em relação a outros paradigmas de programação mas antes de mais nada vamos entender o que de fato é a programação orientada a objetos bom ap nada mais é do que uma forma de escrever programas de computador onde a gente pensa como quase tudo como objetos esses objetos eles podem ser qualquer coisa desde um carro uma pessoa uma conta bancária e assim por diante cada objeto vai conter ali atributos e métodos dois conceitos que a gente vai falar daqui a pouquinho do vídeo e eles trabalham juntos
como peças de quebra-cabeça para realizar tarefas e também resolver problemas então ao invés de escrever um grande bloco de código com várias instruções a gente divide o programa em partes menores que são mais gerenciáveis mais fáceis de ler e também de modificar e como Eu mencionei a programação orientada a objetos ela é um paradigma de programação além dela a gente tem um outro paradigma bastante famoso que é a programação procedural e qual que é a principal diferença entre essas duas a chave tá na forma que a gente organiza e estrutura o nosso código na programação
procedural o foco tá nas funções ou procedimentos que manipulam os dados então o código ele é organizado como uma série de procedimentos que são chamados sequencialmente para realizar uma tarefa por outro lado na programação orientada a objetos o foco de fato está nos objetos que combinam dados e comportamentos relacionados em uma única entidade o código ele é organizado basicamente em classes que são como modelos de criação pros nossos objetos e aí aqui a gente precisa passar por um dicionário básico da programação orientada a objetos para que a gente Entenda os próximos conceitos que vão vir
o primeiro ponto aqui fundamental no nosso dicionário é a ideia de classe como eu já mencionei a classe ela nada mais é do que um molde onde a gente vai criar os nossos objetos ela vai definir tanto os atributos quanto os métodos que os objetos vão poder ter então por exemplo nesse caso aqui a gente tem o carro sendo a nossa classe o segundo ponto é objeto o objeto na programação é uma Instância de classe Ou seja a gente tem a classe ela é um molde e a partir dela a gente cria vários objetos esses
objetos na programação a gente chama que eles são instanciados da classe então se a classe for carro a gente pode ter um objeto por exemplo como meu carro ou carro do vizinho e assim por diante E lembra que eu falei que a classe ela define atributos e métodos a gente vai entrar nesses dois conceitos também os atributos eles são as características ou propriedades que o objeto pode ter no exemplo do meu carro como sendo o objeto ele pode ter atributos como cor marca modelo e assim por diante já os métodos eles são as ações que
aquele objeto pode realizar então no caso do objeto meu carro ele pode realizar ações como ligar desligar acelerar frear e assim por diante com essas quatro palavrinhas em mente a gente pode começar a entrar nos princípios que regem a programação orientada a objetos o primeiro deles é a abstração a abstração nada mais é que a simplificação de um conceito complexo focando apenas nos aspectos essenciais para um determinado contexto quando a gente pensa em um carro geralmente a gente pensa em algumas características essenciais como por exemplo a cor marca modelo velocidade capacidade de combustível Essas são
algumas características essenciais que definem um carro e um contexto geral no entanto a gente sabe também que um carro não é apenas essas características eles na verdade ele é muito mais complexo que isso ele tem uma infinidade de detalhes internos que são complexos como o funcionamento do motor a mecânica das rodas e assim por diante mas na maioria dos casos quando a gente tá falando de carro esses detalhes internos não são relevantes pro contexto E aí por isso a gente Abstrai algumas informações e é isso que se trata a abstração E aí a gente parte
para três princípios que são amplamente falados na programação orientada a objetos herança polimorfismo e e encapsulamento e aqui é importante da gente mencionar uma curiosidade antes de existir a orientação a objetos já existiam formas de fazer essas três coisas existia forma de fazer herança encapsulamento e polimorfismo no nosso código por exemplo na linguagem C A gente conseguia simular isso muito bem apesar de ser uma linguagem que utiliza do paradigma procedural Porém na orientação a objetos ela torna o mascaramento da estrutura de dados significativamente mais efici ente então existem formas de fazer que não envolvem a
programação orientada a objetos e podem ser utilizadas inclusive em linguagens que não são orientado a objetos mas a orientação objetos ela Traz essa facilidade essa simplicidade na hora da gente conseguir mascarar as nossas estruturas de dados E aí que a gente vai entrar nesses três conceitos começando com o encapsulamento o encapsulamento é como uma caixa mágica que guarda alguns detalhes importantes do nosso objeto longe do mundo exterior isso significa que os dados de um objeto e os métodos que os manipulam são protegidos dentro dessa caixa e só podem ser acessados ou alterados através de métodos
específicos e é crucial na po porque ajuda a garantir que os objetos funcionem corretamente e também de forma segura evitando que os dados sejam modificados de maneira inesperada e também mantendo a integridade do nosso objeto Então vamos imaginar um objeto simples como um cofrinho que vai guardar moedas a gente quer garantir que ninguém possa pegar ou adicionar moedas diretamente no nosso cofrinho mas apenas por meio de métodos específicos sem o encapsulamento a gente teria um código mais ou menos como esse que tá aparecendo aí na tela para vocês se a gente pegar bem aqui nesse
exemplo sem o encapsulamento a gente tem os métodos moeda e moedas e com o tracinho de igual ali que permitem o acesso direto e a modificação da variável @ moedas de fora da classe isso viola o princípio do encapsulamento porque nesse caso ele vai expor os dados internos do objeto que pode levar a erros e também torna muito mais difícil de controlar o estado do nosso objeto já com o encapsulamento a gente tem um código um pouco mais bonitinho nesse exemplo aqui a variável @ moedas ela tá encapsulada dentro da classe cofrinho e nesse caso
ela só pode ser acessada e só pode ser modificada através do método ali adicionar moeda então isso protege os dados do cofrinho garantindo que a sua integridade seja mantida o próximo princípio que a gente tem é o de herança na programação orientada objetos assim como na vida real a herança é quando você erda características da sua família assim como você pode ter o cabelo castanho porque a sua mãe tem também uma classe ela pode herdar atributos e métodos de outra classe então quando uma classe ela herda de outra isso significa que ela vai receber todos
os atributos e métodos que existem na classe pai e a gente a também chama essa classe Pie na programação de superclasse o grande trunfo da herança é que a gente não precisa reescrever o mesmo código várias vezes em vez disso a gente só adiciona novos comportamentos à classe filha caso necessário Então a gente vai utilizar aqui nesse caso um exemplo bastante simples Digamos que a gente tem uma classe que chama animal que basicamente vai definir atributos e métodos que são comuns a todos os animais e em seguida a gente vai criar uma classe chamada cachorro
essa classe ela vai herdar os atributos e métodos da classe animal então isso significa que a classe cachorro ela vai ter todos os atributos e métodos da classe animal e também vai poder ter outros atributos que cabem só a classe cachorro então no caso nosso exemplo aqui a gente tem a classe animal ali definida na primeira linha de código e a gente tem também os métodos que são comuns a todos os animais como no caso comer e dormir quando a gente cria a classe cachorro nota que a gente tem um símbolozinho de menor e animal
logo em seguida isso significa dentro do código que a gente tá falando olha a classe cachorra ela vai herdar da classe animal então a classe cachorro ela ainda vai conseguir comer e dormir porque foram comportamentos herdados da classe animal mas ela também vai ter comportamentos exclusivos da classe cachorro que no caso latir a gente pode ter vários animais mas não necessariamente todos eles vão latir por isso que ela fica na classe ali dentro de cachorro e nosso terceiro primiro ponto aqui é o do polimorfismo o polimorfismo ele permite com que diferentes objetos respondam a uma
mesma mensagem só que cada um de uma certa maneira a nível de código isso basicamente significa que várias classes podem ter um método com o mesmo nome mas cada uma vai implementar esse método de uma forma específica nesse caso a gente pode dizer que as classes estão utilizando do polimorfismo a gente vai continuar usando aqui o exemplo do animal e do cachorro pra gente conseguir ilustrar o polimorfismo então no caso do nosso exemplo a gente tem ali a classe animal e ela tem a definição ali de um método que chama fazer som se a gente
for olhar a gente tem mais uma classe nova que é a classe de gato tanto cachorro quanto gato eles são herdados da classe animal então todos eles vão fazer som só que concorda comigo que um cachorro e um gato eles fazem sons distintos exatamente isso que trata o código aqui a gente pega o método com o mesmo nome que é fazer som no caso mas cada um vai responder de uma forma diferente na classe cachorro o método fazer som vai trazer uma resposta pra gente que o cachorro tá latindo já na classe de gato a
gente tem que o método fazer som o gato ele vai estar miando e não latindo como o caso do cachorro Então a gente tem um único método implementado de formas diferentes isso é o conceito de polimorfismo bom e basicamente era isso que eu tinha para o vídeo de hoje pra gente começar aí com os conceitos básicos da programação orientada a objetos Como eu disse vão sair outros vídeos no canal também pra gente continuar esse assunto mas pro vídeo de hoje eu acho que já deu para entender alguns conceitos bastante importantes que são a base da
programação orientada a objetos como sempre se surgiu alguma dúvida no meio do caminho deixa aqui nos comentários que eu te ajudo e a gente se vê num próximo vídeo Um beijo e até lá [Música] [Música] [Música] l
Copyright © 2024. Made with ♥ in London by YTScribe.com