uma tromba e seja bem vindo a mais um vídeo e nesse vídeo agora nós vamos ver basicamente passo a passo como funciona orientação a objetos então eu sei que é uma coisa que normalmente as pessoas têm dificuldade em entender e por isso que eu quis fazer este vídeo passo a passo bem prático mesmo daquele jeito que só você gosta de ver né então antes de mais nada deixa logo o seu leque nesse vídeo aí antes de ver ouvir inclusive deixou a equipe e se você não é inscrito no canal ainda vocês têm a obrigação de
se inscrever no canal nesse exato momento beleza antes de qualquer coisa então vamos lá ó orientação a objetos basicamente o que é que é a orientação a objetos como o próprio nome já tenta um pouco explica basicamente é uma forma de você programar que não é mais simples não é muitas vezes melhor não é enfim você não tem que comparar estruturado com orientação a objetos você simplesmente tem que saber que existe a forma estruturada ea forma orientada a objetos de você programa tudo bem então vamos lá em que hoje em dia né a maioria dos
sistemas enfim usam orientação a objetos não que você não possa usar nunca estruturado mas existe o momento para um em um momento para o outro tá bom então vamos lá ó primeira coisa o que é que é orientação a objetos como o próprio nome que eu ia dizendo é o próprio nome já fala ela tenta dar uma forma de programar em que você é orientado a partir de objetos mas aí o que é um objeto se entender primeiro o que é um objeto isso aqui é um exemplo claro do que é um objeto tão isso
aqui é um controle de ar condicionado basicamente né é um objeto e aí vamos entender como ele funciona e depois a gente parte da programação na prática mesmo tá então olha só isso aqui tem os botões por exemplo se eu quiser aumentar a temperatura eu venho aqui e apertou o botão mais se eu quiser diminuir a temperatura eu venho aqui e aperta o botão - e isso pra mim quanto o usuário é só isso que eu tenho que fazer com tudo aqui dentro na verdade minha o projeto não é com que isso aqui foi feito
foi pra quando eu apertar o botão - ele vai fazer algumas aqui dentro na parte elétrica é obviamente vai mandar um sinal para o ar condicionado eo ar condicionado vai diminuir e o próprio condicionado também já vai fazer várias outras outros processos né pra que a temperatura diminua então eu enquanto o usuário enquanto o utilizador do sistema eu simplesmente aperta um botão e aí existe toda uma cadeia de coisas que acontecem por trás então isso aqui é um objecto eu uso o meu objeto e aí dentro do objeto acontecem outras coisas então na programação orientada
a objetos é basicamente isso que você tem que ter em mente criar uma estrutura para que o programador utilize poucas coisas úteis e comandos né e esses comandos internamente eles vão fazer mais coisas e eu vou explicar na prática isso mas você vai agrupar códigos criar grupinhos de códigos basicamente que são os objetos e esses grupinhos vão fazer coisas que para o programador vai ser simples de ser feito mas dentro tem todo um processo que a gente tem que fazer e o que hoje na estruturada você tem que fazer todos esses processos manualmente beleza enquanto
programador claro né não estamos falando de usuário está tão falando de programador mesmo de código então vamos lá saindo da teoria vamo pra tu então vamos aqui para a tela do computador para explicar mais outros conceitos na prata vamos lá ó eu tô aqui na tela do meu computador e vamos começar a ver orientação a objetos e eu vou exemplificar com estruturada depois vai ser ficar com orientação a objetos se você vai entender como é que funciona todo o processo tá bom então vamos lá antes de mais nada você tem que entender que a orientação
a objetos você tem que entender quatro conceitos base basicamente não é que é o conceito de encapsulamento o conceito de abstração é herança e polimorfismo então quando sei quando eu falo esses quatro nomes nécessaire alencar amba que não é difícil sei o que é isso aí enfim a pessoa que criou esses nomes ela tava querendo confundir realmente eu estava querendo prejudicar as pessoas que iriam aprender a orientação a objetos e também pra isso eu vou simplificar cada um desses conceitos com exemplos práticos claro para você entender esses nomes difíceis se transformar em coisas em conceitos
mais fáceis pra você tá bom então nesse vídeo para não ficar um vídeo muito longo neste vídeo a gente vai se focar nos dois primeiros conceitos base que é o conceito de encapsulamento e o conceito de abstração beleza então vamos lá ó quando você trabalha com orientação a objetos e eu vou vir pra cá para o código mesmo a gente vai começar a digitar a fazer alguns exemplos tão bom quando você trabalha com orientação a objetos e aí falando sobre encapsulamento mais especificamente que consiste em basicamente você juntar códigos que pertencem a um grupo em
seu grupo tá então a não quer saber a explicação acadêmica explicação teórica para o que é encapsulamento basicamente significa você pegar códigos que falam de uma coisa que fazem é determinada coisa e você juntar a eles em um determinado grupo vamos ver na prática isso olha só vamos fazer aqui um minisystem minha em que basicamente eu vou definir o salário base de um funcionário eu vou definir quantas horas o nome dele claro né eu vou definir quantas horas ele trabalhou extra por exemplo e vou definir o valor da hora extra dele e aí no final
eu quero saber qual é o salário efetivo dele ou seja vai ser o salário base mas a hora extra é multiplicado claro pelo valor essa hora extra então em uma programação estruturada como é que a gente faria isso vamos lá a gente bota jack nome a fulla e aí a gente põe o salário base mottaki mil reais pra simplificar horas extras horas extras cara trabalhou dez horas extras por exemplo e o valor da hora da hora extra no caso vai ser 20 reais por exemplo tá bom então eu quero saber agora qual é o salário
é efetivo do cara como eu faço isso eu vou utilizar o salário base dele e vou somar à multiplicação entre horas extras vezes o valor da hora então basicamente vou pegar conta de horas extras que o cara fez vamos multiplicar pelo valor da hora para saber quanto de hora extra ele vai ganhar e vou somar isso com um salário base dele basicamente isso né e aí no final eu mostro isso na tela salário o efetivo vamos ver como é que ficou vamos lá atualizei ela 1.200 que seria os mil reais e de hora extra ele
ganhou 200 reais então 1.200 beleza isso daí seria na programação estruturada como é que a gente faz por exemplo a mesma coisa na programação orientada a objetos olha só vai pagar aqui e vou fazer a mesma coisa orientado a objetos para você entender o conceito na prática então ó funcionário nós vamos criar um funcionário então mil funcionário já vou explicar o porquê isto aqui o que é isso aí é uma classe basicamente que é transformado em um objeto e aí vou explicar na prática isso como é que funciona então funcionário funcionário eu vou definir agora
o nome dele então sete nome no caso do nec na fulano funcionário eu vou definir o salário base então sete salário-base mil funcionário eu vou definir agora o valor da hora ea quantas horas na verdade ele trabalhou então sete horas extras 10 os mesmos valores e funcionário 7 valor da hora 20 e no final o que eu quero funcionário jet salário é efetivo então isso aqui é a minha implementação em orientação a objetos então basicamente eu criei um funcionário eu definir aqui o nome dele o salário base dele as horas extras que ele trabalhou e
o valor da hora dele depois eu peguei o salário efetivo dele então perceba que não houve nenhuma conta eu não fiz nenhuma conta eu não sei não declarei nenhuma variável nenhuma as variáveis na verdade só um aqui que foi funcionário depois eu usei essa variável aqui e não fiz nenhuma conta não fiz absoluta se nada porque isso porque na orientação a objetos nós precisamos dividir o nosso código em dois mundos dois mundos mesmo tá são dois códigos completamente distintos mas claro que se interligam né então isso é a diferença entre a orientação é entre programação
estruturada e orientação a objetos na estruturada você faz tudo na mesma no mesmo local na orientação a objetos não você faz o a classe em um local que nós vamos fazer tá e nós fazemos o objeto em outro local então o objeto é basicamente ó o funcionário efetivo mesmo o cara que eu estou criando uma pessoa chamada fulano que ganha mil reais é certa e tudo mais o que é a classe a classe é basicamente a estrutura por trás disso então é o funcionário não um funcionário específico mas o funcionário e todo o funcionário tem
o que um salário base tem o valor das horas que ele trabalhou ele tem o valor da hora da hora extra no caso dele então isso são propriedades de uma classe tudo bem e no caso aqui ó a gente tem um gato e salário efetivo que é basicamente uma função que a gente chama na orientação a objetos de método então toda classe ela vai ter propriedades que são esses caras aqui essas propriedades que nós definimos e ela vai ter métodos que são ações coisas que aquele objeto vai fazer tudo bem então ó eu criei a
classe funcionário na verdade não criei ainda nós vamos criar ainda ela e aqui eu transformei ela em um objeto então eu transformei algo que é simplesmente uma estrutura imaginária em algo efetivo num funcionário realmente que tem nome que tem é base é estranho o valor da hora etc e usei esse funcionário tudo bem então beleza esse aqui é o mundo da prática ou seja isso aqui é o que realmente o programador vai fazer mas como eu falei né na hora está só objetos são dois mundos diferentes nós precisamos agora criar o imaginário desse funcionário que
seria a classe como é que a gente faz isso vou criar aqui um novo arquivo e eu posso chamar esse arquivo que por exemplo um funcionário ponto class ponto php não precisa desse nome tá solto chamando aqui funcionaram ponto classe ponto php esse ponto classe é simplesmente indicando que o conteúdo que vai ter dentro desse arquivo vai ser uma classe tá então vamos abrir que o php e a gente cria classe funcionário e essa classe funcionária vai ter algumas propriedades como eu falei né então dentro dela nós vamos ter o nome salário base em horas
extras saleh é como falou da hora legal então temos aqui essas propriedades básicas e basicamente vamos fazer agora os métodos ou seja as ações que nós vamos fazer nesse funcionário então public function vamos fazer a ação de setal nome dele definir o nome do cara certo nome a gente recebe um valor qualquer um de nós definimos aqui o nome n eu não vou explicar exatamente o que é público que prove tetra isso daí fica pra um próximo vídeo tá agora eu quero que você entenda o conceito de ampliação objeto depois nós vamos aprofundando um pouco
mais em em aulas futuras tá bom então vamos lá definir o nome eu vou copiar e colar para definir todas as outras propriedades 7 salário base eu vou receber aqui um valor na base por exemplo eu vou salvar em salário base base depois sete horas extras horas extras e manda aqui o extra e depois 7 valor da hora recebo aqui um valor por exemplo e valor da hora e recebeu mando paulo e por fim nós temos mais um carinha que eu usei aqui que é o gato salário efetivo então copia que o nome dele público
infantil guedes a o efetivo é que esse cara faz ele retorna pra mim uma conta que basicamente vai ser diz salário base mais a gente faz aquela mesma conta que a gente fez lá nuno estruturado então salário base vai ser de horas extras vezes desse valor da hora beleza totó criamos a classe aqui isso aqui ó você perceba que apesar da gente tá fazendo as contas fazem tudo mais isso daqui nada mais é do que simplesmente um uma teoria de como funciona um funcionário eu criei aqui há uma classe é que a teoria de como
funciona e aí aqui eu estou utilizando realmente estou definindo o nome todo definido um salário definido as propriedades então pra quê funciona você primeiro puxar aqui o arquivo funcionário ponto classe pontos de hp então puxei o arquivo usei ele e mostrei o salário efetivo então se a gente vinha aqui agora e atualizar a página ele mostra a mesma coisa aí você pode pensar comigo tá beleza mas eu criei o esse código eu criei esse código para ter o mesmo resultado daquele outro códigos um lado e poucas linhas que eu fiz sim exatamente não quer dizer
que a orientação a objetos você vai ditar - código tá significa que o código ele vai estar mais organizado porque o que eu quero dizer com isso por exemplo exemplo claro que acontece bastante e vou pegar aqui o outro código pra gente comparar o esse aqui é o outro corte é o estruturado normal que a gente criou então basicamente a gente nenhum sistema real né você vai calcular por exemplo o salário do funcionário em vários locais então se por exemplo tem um se chama de relatório lá pra saber é o salário de todo mundo a
folha de pagamento etc você vai ter que calcular o salário efetivo nesse local nessa página então você vai lá copia e cola na outra página esse mesmo código vai ter por exemplo a página dos funcionários que lista os funcionários com seus devidos salários então você vai lá control c control v lá naquele local né e aí vai ficar em vários locais esse mesmo código aqui com essa mesma continha e tudo mais o que é que acontece qual o problema disso vamos supor um eventual manutenção que diz basicamente o seguinte foi definida uma regra na empresa
que agora todo mundo que faz hora extra vai ter que ter além da própria hora extra um adicional de 10% no salário base ou seja você vai ter que agora em todo o seu sistema e procurar todos os cantos em calcula o salário efetivo e você vai ter que fazer lá uma continha o iff enfim para verificar se o cara tá tendo hora extra se ele teve hora extra automaticamente além disso aqui você tem que adicionar 10 por cento nesse salário base aqui também então você vai ter que saem todos estão procurando isso qual é
o risco disso em alguns locais você não fazer então em alguns locais vai calcular o salário de uma forma em outros locais a calcular o salário de outra forma fora o tempo de manutenção com orientação a objetos em todos os locais por exemplo no relatório lá você está utilizando assim no na lista de o de funcionários você está utilizando assim então não tá fazendo conta nenhum aqui então se por exemplo uma regra dessa aqui tem que ter 10% de adicional no salário base quem faz hora extra você simplesmente vem nesse arquivo e você altera aqui
simplesmente nessa função nesse arquivo em um local só porque todo o meu sistema tal utilizando essa mesma classe tratou de funcionário nós vamos utilizar essa mesma classe aí tudo bem então esse essa é a grande vantagem do conceito de encapsulamento com orientação a objetos você faz apesar de você digitar no fim das contas um pouco mais de código para criar mas você reutiliza isso daqui em vários locais e se você é eventualmente fizer alguma mudança no funcionamento do funcionário você só muda aqui não precisa mudar em falar em local nenhum e problema e não vai
ter problema nenhum no seu sistema o sistema vai ficar confiável basicamente né sabendo que em todos os locais em que calcula o salário efetivo tá vindo desse cara aqui tudo bem então qualquer coisa que a gente diz ione aqui vai ser efetivada em todo o sistema que nas áreas né em que calcula o salário afetivo do funcionário tudo bem deu para entender vamos lá vamos agora para o nono o outro conceito que é o conceito de abstração em que basicamente o que significa o conceito de abstração ele ele cai muito bem com o conceito de
encapsulamento tá que é o seguinte na abstração no mundo real tá não vou falar o conceito teórico nem nada disso então na abstração no mundo real objetivo final basicamente é fazer com que o programador essa área que é a área do programador é ele que está fazendo aqui esse processo então para o programador que está utilizando essa classe ou no caso aqui agora né o objeto funcionário para o programador ele vai simplesmente ópera câmera aqui ó apertar o botão então o conceito de abstração basicamente é esse é o conceito de você ter um objeto em
que todo o código amoooor bruto na mão na massa mesmo o processo de cálculo é tetra ele é feito por trás ele é abstrair lê removido da da ação principal ea ação principal é simplesmente apertar um botão nesse caso aqui ó no nosso código ação principal é essa aqui ó jet salário afetivo então o programador ele simplesmente vai usar isso daqui isso aqui é abstração e aí internamente é que o trabalho bruto é feito o cálculo matemático é tetra é feito tudo bem vamos agora para um exemplo claro do da abstração isso no estrutural e
no orientado a objetos que vai ser o seguinte ó vamos supor eu vou voltar aqui o nosso código cadê o código zinho do funcionário então vou voltar aqui o código do funcionário colheita' que define que as propriedades do funcionário né e vamos supor que nós estamos fazendo uma funcionalidade para adicionar o funcionário no banco de dados como é que a gente vai fazer isso se você tiver utilizando a mais que l com o pd ó por exemplo isso não pega a pena se for java script já muda o processo né mas se for php você
vai fazer basicamente isso daqui vou copiar o código para a gente não perder muito tempo né então você definiu as propriedades aqui o funcionário então variável salário-base extra nome do cara valor da hora aí você monta um incerto para andar no banco de dados né você vai utilizar ainda tem que fazer conexão ao banco de dados que nem votei aqui mas você vai utilizar aqui o pt ó que já está conectado torço ponto que já está conectado né pra dar um prepare se vai dar os brindes nos valores das variáveis e você executa ele vai
executar e vai adicionar no banco de dados esse funcionário esse funcionário aqui fulano enfim quem ganha mil reais é que trabalhou dez horas e que o valor da hora extra e 20 reais por exemplo tá então isso aqui é o que você faz na programação estruturada então em todos os locais em que você precisa adicionar um funcionário você tem que fazer isso daí desse mesmo jeito montar a carrie botar os valores dela executar tudo mais ok na programação orientada a objetos com isso exemplificando o conceito de abstração como é que você faria vamos lá eu
vou copiar novamente aqui aquele código que nós fizemos ó esse código que dê do objeto do funcionário né então eu vim aqui criei funcionários e tem o nome salário-base horas extras valor da hora etc e aí como é que eu faço pra adicionar esse funcionário do banco de dados isso em orientação a objetos funcionário adicionar basicamente isso então o programa do ele vai criar aqui um funcionário e ele vai adicionar esse funcionário do banco ele roda esse comando aqui e esse comando vai adicionar o funcionário no banco de dados e kaboul simplesmente simples fácil e
rápido claro na classe de funcionário que é essa daqui você vai ter que vir aqui e você vai ter que criar o a função é o método adicionar e nesse método aqui aí sim você vai montar o sql tudo mais e fazer todo o processo de banco de dados isso aí beleza contudo em qualquer lugar do seu sistema que você precisa adicionar um funcionário você simplesmente roda esse comando aqui o que eu quero dizer qual é a vantagem disso primeiro tá encapsulado então todas as coisas relacionadas à funcionário tão dentro da classe de funcionário e
também está abstrato ou seja usuário que é o programador na que vai utilizar essa classe funcionário ele simplesmente precisa fazer isso aqui para adicionar o qual é a vantagem é grande vantagem na verdade disso vamos supor que eventualmente o seu sistema não vai mais utilizar mais ql de banco de dados ele vai começar a utilizar algum outro tipo de banco de dados ou ele vai começar 13 a fire base por exemplo para armazenar os seus seus dados estão em uma programação estruturada o que teria que fazer vou copiar até o código novamente seria que em
todos os locais do sistema em que você tem essa inserção aí de funcionário e você teria que sair mudando ser removeria isso aqui e você iria mudar pra a forma nova que você tem agora de adicionar o sistema quer seja um outro tipo de banco de dados que seja uso de um fire base por exemplo então o código é totalmente diferente para adicionar em um fire base por exemplo mais na orientação a objetos não você iria manter no próprio sistema e em todos os locais em que o funcionário precisa ser acionado você iria manter esse
mesmo código aí só iria mudar aqui dentro então só o método de admissão é que você iria mudar seja utilizando o painel foi o exemplo que eu dei la utilizando mais que l você também pode utilizar ou utilizando fiber enfim o método ea forma e onde vai adicionar até utilizando a web service por exemplo um up você não importa onde você vai adicionar esse funcionário o uso no sistema mas é simplesmente adicionar mais dentro né ou seja aqui dentro eu não tô nem aí se quando o aperto - ele vai mandar via bluetooth lá para
o ar condicionado ou seja vai mandar via infravermelho ou se é sinal de wifi ou se é uma fumaça enfim não importa a forma como ele é mandado para o ar condicionado e aqui também não importa a forma como o usuário é adicionado no banco de dados o que importa aqui pra um programador ele simplesmente vai fazer isso aqui em todo o sistema né e aí o conceito de orientação a objetos ele passa a ter vantagem quando você tem um sistema e não só simplesmente um código que dê oito linhas nec é um corte de
oito linhas para adicionar um funcionário é muito melhor fazer estruturado mas quando eu tenho um sistema em que em vários locais eu faço a mesma coisa aí orientação a objetos começa a funcionar porque você reutiliza esse código em vários locais sem precisar tá copiando e colando e aí se eventualmente precisar mudar alguma coisa manutenção desse código é muito mais fácil porque você simplesmente ó muda aqui e em todo o sistema que está utilizando isso aqui né vai funcionar sem o menor problema beleza então vemos agora neste vídeo o conceito de encapsulamento e o conceito de
abstração vamos ver em um próximo vídeo os outros dois conceitos que são é herança e polimorfismo é um pouco mais avançado mas só vamos passar uma atividade de casa pra você nesse vídeo que é o seguinte só teve sua tarefa de casa o ataque tarefinha de casa sua tarefa de casa vai ser fazer com que e aí deixou software é esse cara eu vou botar aqui um eixo funcionário ghetti salário é efetivo lembra que o salário efectiva que eu criei vamos vir aqui atualizar o papa fez só um erro aqui assim é preciso recuar e
funcionário ponto com as pontas pegar peso para ele funcionar na beleza ó ataque o salário no cidadão o que eu quero que você faça exatamente o que o exemplo que eu dei pra você então a tarefa de casa tarefinha de casa vai ser você fazer o seguinte ó sempre botar no ataque sempre que um funcionário tiver horas extras ele também terá um aumento de 10% dez por cento no salário base não é no total tá ele vai ter um aumento de 10% no salário base então eu quero que você faça isso como tarefa de casa
se você quiser copiar esse código aqui podem pausar o vídeo é copie o código enfim tudo mais se quiser praticar claro né e aí você vai fazer essa funcionalidade aí sempre que o funcionário tiver horas extras ele vai ter um aumento de 10% no salário-base lembrando eu não quero que você faça absolutamente nada nenhuma alteração nessa tela que eu quero que você faça somente na classe beleza tão espero que tenha gostado espero que tenha entendido um pouquinho mais sobre a orientação a objetos e claro vamos ter mais vídeos dessa série explicando um pouco mais sobre
a orientação a objetos aprofundando um pouco mais e também vendo as especificidades técnicas como por exemplo o que é esse disse o que é público e private o que é isso nós vamos ter vídeo explicando exatamente o que é isso beleza então se gostou lai quinzinho e se inscreva no canal pra você ver os próximos vídeos que a gente vai postar legal então até o próximo vídeo total