Nessa aula de POO, vamos aprender os conceitos de Classes e Objetos, passando pela teoria de Atribut...
Video Transcript:
Olá pequeno gafanhoto tá começando agora mais uma aula do seu curso de programação orientada objeto com Java e PHP Mais uma vez você deve ter percebido tô aqui no escritório do Twitter no Brasil e essa aula tá caprichada tá cheia de coisa legal então vamos embora trabalhar desliga esse teu WhatsApp aí que eu tô vendo Vamos [Música] estudar [Música] Olá pequeno gafanhoto seja bem-vindo a mais uma aula do seu curso em vídeo de programação orientada a objeto o meu nome é Gustavo Guanabara eu sou seu professor e nessa segunda aula do curso de programação orientada a objeto a gente vai responder uma pergunta que todo mundo deve estar se fazendo depois de assistir a primeira aula o que que é um objeto eu mesmo te pergunto para você o que que é um objeto dá uma olhada ao seu redor aí aí quantos objetos você consegue identificar Será que o computador ou o celular que você tá utilizando também são objetos e vamos partir daí seu celular seu celular é um objeto a gente chama isso de objeto Mas será que você consegue criar uma definição de objeto Vamos colocar outro exemplo aqui outros exemplos de objetos um carro por exemplo é um objeto para você coisas como mouse e joystick são objetos e desse grupo de quatro elementos Com certeza todos eles você consegue identificar como objeto agora se eu te perguntar o horário que você marcou no entista é um objeto o compromisso que você tem agendado ou melhor ainda será que um aluno é um objeto ou então uma venda ou um botão que tá aparecendo na tela do seu celular quantos desses elementos que estão aparecendo aí na tela você considera como um objeto Normalmente quando eu surgiro esse exercício dentro de sala de aula os alunos me respondem ah os quatro primeiros o celular o carro o joystick e o mouse mas será que esses outros não são objetos vamos ver uma definição que está em livros em livros de programação orientada a objeto um objeto é uma uma coisa material ou abstrata que pode ser percebida pelos sentidos e descrita por meio das suas características comportamentos e estado atual sendo assim um objeto pode ser uma coisa concreta que geralmente é o que a gente consegue identificar principalmente como objeto eu usei para caramba na aula passada o controle remoto isso é um objeto eu consigo usar ele eu consigo ter características nele eu consigo ter estado nele por exemplo isso aqui é um objeto controle remoto características desse objeto Ah ele tem uma linha e ele tem dois botões são características o fabricante dele é a GoPro o modelo dele é o sei lá o que tá aqui RM são características dele comportamentos desse objeto que que eu posso fazer com ele Ah eu posso ligar ele posso botar para gravar eu posso pausar eu posso desligar então são comportamentos que eu posso desempenhar Com esse pequeno objeto aqui e o estado u qual o estado desse cois ah ele tá novinho ele tá desligado ele tá sem bateria ou por exemplo aqui ó vou apertar aqui ver se dá para ver ele tá ligando Então qual o estado dele agora ele está ligando ele tá agora tentando encontrar uma rede então assim você tem vários estados eu vou botar ele no estado desligando desliguei ele e pronto então tudo aquilo que tiver característica comportamento e estado é considerado um objeto por exemplo o compromisso que você marcou né que tava lá naquela lista anterior e que tal tal vez você não considere como um objeto o compromisso ele tem características tem o compromisso ele tem o dia que foi marcado a hora que foi marcada Que tipo de roupa eu tenho que ir então isso tudo são características o comportamento de um compromisso ele pode ser marcado ele pode ser desmarcado ele pode ser adiado ele pode ser cancelado e o estado de um compromisso Ah o estado é por enquanto ele tá combinado tá sem problema nenhum não olha o estado de agora é que ele foi suspenso ele está em suspensão ou que ele foi remar marcado para em vez de 4 horas da tarde 5 horas da tarde então o Estado ou status atual são esses elementos que eu acabei de falar e se o compromisso tem essas três coisas ele pode sim ser considerado um objeto A partir do momento em que eu tenho essa definição de objeto que é a que existe em vários livros de programação orientada objetos e eu vou te dar um exemplo de objeto bem simples um dos objetos mais simples que eu posso explicar caneta caneta seria um objeto Dá uma lida na definição que tá do lado e vê se uma caneta pode ser isso a caneta é uma coisa material É uma coisa material ou material ou abstrata pode ser percebida pelos sentidos pode pode ser percebida pelos sentidos pode ser descrito ou pode ser classificado né de acordo com as suas características comportamentos e estado atual sim então caneta é um objeto e essa caneta que tá aparecendo aí convenhamos é uma das mais populares que existem eu vou abrir um parêntese aqui ó esquece a aula você sabe sabe que essas canetas têm dois Buraquinhos né ela tem um buraquinho na no corpo e tem um buraquinho agora na tampa você sabe Para que que serve esses Buraquinhos momento cultura inútil o primeiro buraquinho é aquele do corpo da caneta aquele da na parte transparente tem um furinho ali que às vezes você não sabe Para que que serve ele foi uma coisa de engenharia isso porque o pessoal tava percebendo que as canetas quando iam para aviões quando as pessoas tentavam usar essas canetas em aviões ou em altitudes muito elevadas a carga estourava isso porque a pressão fora da caneta e a pressão dentro da caneta porque ela ficav um invólucro né ficava uma uma cápsula ali e a pressão externa era diferente da pressão interna então acabava vazando a tinta a tinta explodia ou a caneta explodia enfim você já deve ter visto uma caneta explodindo agora há poucos anos a tampa da caneta agora ganhou um buraco na parte de cima e esse furo não foi por uma questão de engenharia foi mais por uma questão de segurança isso porque muitas crianças que engoliam essa caneta ela formava tipo um vácuo você tem o buraquinho lá da garganta da criança ela ficava preso e acabava matando a criança então o que eles fizeram fizeram um buraquinho na tampa para que se por acaso uma criança inadvertidamente engolisse uma tampa dessa ela não engasgar isso porque tem um buraco no meio e ele poderia criar o fluxo de ar curiosidade inútil pode ser mas sempre que eu dou aula de po e uso caneta como objeto eu gosto de contar essas curiosidades paraos meus pequenos gafanhotos vamos parar de papo e vamos continuar a considerar a caneta como um objeto isso que tá aparecendo aí na tela é um objeto caneta Mas será que eu posso ter só esse tipo de objeto caneta não eu posso ter vários outros objetos por exemplo ó tá vendo aqui três quatro tipos de caneta se você der uma analisada se você for perceber todas elas seguem uma a mesma forma o mesmo formato a mesma classificação a gente em programa relção orientar do objeto a gente diz que todos esses objetos eles estão baseados numa mesma classificação e classificação é a mesma forma vamos imaginar como se fosse uma forma quando se cria uma caneta dessa Com certeza a empresa que cria ela tem um formato ela tem um modelo ela tem um modo a ser seguido né a caneta e a tampinha que tem em cima da caneta tudo isso é previamente planejado na hora de criar objetos canetas Então a partir daí eu tenho duas coisas diferentes a caneta em si e o modelo que é utilizado para classificar essa caneta pra programação orientar do objeto a caneta em si é considerada como um objeto já esse molde que serve para classificar o próprio nome diz classificar Então isso é uma classe e pros conceitos de Poo uma classe ela tem que sempre responder a três perguntas considerando esse molde Eu sempre tenho que responder que coisas eu tenho que coisas eu faço e como eu estou agora vamos fazer um raciocínio rápido aqui uma caneta que coisas uma caneta tem uma caneta tem um modelo uma caneta tem uma cor uma caneta tem um tamanho de ponta tem umas que são ponta mais grossa tem umas que são ponta mais fina uma caneta ela tem uma quantidade de carga Então ela vem de fábrica com 100% de carga mas ela não fica com 100% a vida inteira conforme eu vou utilizando a carga vai diminuindo Isso é uma característica de uma caneta outra característica que eu separei aqui é se ela está tampada ou não uma caneta pode estar tampada ou pode estar destampada E é claro que existem muitas outras características Provavelmente você tá pensando em algumas delas mas eu coloquei somente essas aqui aqui pra gente poder usar como exemplo Inclusive a gente vai falar um pouco mais sobre isso mais pra frente porque nem todas as características de uma caneta são interessantes para mim em determinado momento e isso é mais um conceito que a programação orientada objeto tem mas vamos continuar a nossa lista lá a primeira pergunta foi respondida né parcialmente mas um objeto também faz coisas que coisas uma caneta faz uma caneta pode escrever uma caneta também pode rabiscar uma caneta também pode pintar é a mesma coisa escrever rabiscar e pintar e eu respondo depende depende de cada situação outra coisa que eu posso fazer com uma caneta eu posso tampar uma caneta eu posso destampar essa caneta tudo isso são coisas que eu posso fazer com uma caneta então uma caneta ela tem coisas e ela faz coisas o estado de uma caneta Ah nesse momento a caneta tá com 50% de carga ela tem uma ponta fina ela é azul e ela tá destampada e escrevendo isso é o estado de uma caneta Deu para entender então sempre Para um objeto você sempre vai responder essas três perguntinhas E essas perguntinhas na teoria de po tem nomes vamos acompanhar aqui o que eu tenho é atributo o que eu faço é método e de que maneira o objeto está nesse momento é Estado então são três conceitos que você tem que saber todo objeto ele tem atributos métodos e estado e isso eu já tinha falado para você dá uma olhada naquele conceito que a gente tinha visto anteriormente Dá uma lida nele de novo lá no finalzinho todo objeto ele pode ser descrito por suas características por seus comportamentos e por seu estado Então sempre que eu falar de atributo eu posso dizer também propriedade características dados quando eu falo de comportamento eu estou falando dos métodos dos procedimentos das rotinas internas desse objeto e quando eu falo do Estado eu falo sobre as características atuais no momento em que eu tô analisando esse objeto a gente acabou de ver na teoria todos os conceitos fundamentais que todo objeto vai ter que ter todo objeto vai ter que ter atributos métodos e e estado e todo objeto vem a partir de uma classe todo objeto vem a partir de um molde sempre que você ouvir a palavra classe pensa no molde que foi utilizado para gerar esse objeto e aí pequeno gafanhoto beleza e vou interromper mais uma vez a sua aula aqui peço imensas desculpas Com certeza você já percebeu que essas aulas já foram gravadas há mais tempo e que agora eu tô vindo com os recados novos uniforme novo olha só aqui ó a aula de teoria vocês já devem ter percebido aí no curso de programação orientada a objeto a identidade do curso é as aulas vermelhas são teóricas as aulas azuis são de PHP e as aulas Verdes são de Java Então a partir de agora a gente vai começar a aparecer com essa identidade para facilitar a sua vida e até para dar uma cara um pouco diferente ao curso em vídeo e mais uma vez eu vim trazer uma coisa diferente aqui para vocês essa minha interrupção é para falar sobre o apoi do curso em vídeo então se você acessar apoie. me tá aqui ó tá aparecendo aqui embaixo com o bonequinho e tudo apoi pon me barra curso em vídeo você vai poder ser um dos colaboradores essas aulas só estão chegando até você por conta dos nossos nossos colaboradores dos nossos apoiadores e eu venho aqui encarecidamente agora já virou o mês né a gente já tá no mês de agosto peço mais uma vez quem já colaborou colabore novamente Quem ainda não colaborou faça a sua colaboração por enquanto a gente ainda tá com a colaboração única não sei se quando você tá assistindo essa aula a gente consegue a colaboração mensal mas por enquanto uma colaboração única faz isso pela gente que com certeza a gente vai trazer cursos de qualidade para vocês com certeza todo esse valor arrecadado vai ser convertido em benefícios pro curso em vídeo vão ser conver os em aula vão ser convertidos em auxílios para os gafanhotos inclusive aqueles que não querem ou que não podem colaborar então não se esqueça se você acessar apoie. me bar cursem vídeo escolhe uma faixa de Patrocínio e com certeza a sua ajuda vai ser De grande valia PR Ah não eu não posso colaborar Porque eu só posso com o menor valor colabore com o menor valor ele ajuda pra caramba é melhor do que você não colaborar com nada e como você viu no início dessa aula esse curso está sendo patrocinado também por gafanhotos e eu sou muito grato a todos eles volte agora com a sua aula normal para eu criar um objeto eu tenho que antes definir uma classe para eu fazer uma caneta industrialmente falando eu primeiro crio um molde dessa caneta Com certeza a fábrica que fez esse controle remoto antes fez vários protótipos como ele se comportaria como é que ele ficaria na mão Qual é o tamanho ideal qual é o peso ideal isso tudo são características de um objeto que antes de fazer esse objeto eu tenho que planejar esse objeto antes o esse planejamento ou classificação a gente chama de classe Então vamos criar uma classe caneta fácil então vamos colocar lá em forma de algoritmo classe caneta e o fim da classe lá no final dentro dessa classe eu tenho que primeiro identificar Quais são os atributos Quais são as características desse objeto então a gente já viu anteriormente eu tenho por exemplo o modelo da caneta eu disse que o modelo é do tipo caractere por exemplo isso porque ele vai guardar né modelos são letras e números e tudo mais outra coisa que uma caneta tem segundo Nossa análise é o é uma cor cor também é do tipo caracter uma caneta também tem ponta né Eu disse tem pontas mais finas pontas mais grossas Quando você vai numa loja Ah eu tenho uma caneta P 05.
07 Então isso é um número real e se você tá com alguma dificuldade para poder classificar isso a sua dificuldade não é po a sua dificuldade é algoritmo básico Então vou sempre dizer a mesma coisa assista o nosso curso de algoritmos sempre que você for assistir uma aula de programação orientada objeto você pode clicar aqui em cima ó clica aqui em cima aqui nesse izinho aqui você vai ter acesso diretamente aos cursos que a gente julga como importantes para que você possa perceber esse curso para você possa entender corretamente esse curso de programação orientada a objeto e o curso de algoritmo como eu já disse anteriormente É sim um pré-requisito outra característica que eu decidi no meu objeto caneta é a quantidade de carga né eu tenho sei lá 100% de carga 50% de carga 75% de carga esses valores são números inteiros então coloquei lá carga como inteiro e o último atributo que eu Previ para esse objeto foi se ele está tampado ou não verdadeiro falso Isso seria um atributo do tipo lógico seria se tá tampada ou não na verdade você vai colocar todos os atributos que sejam interessantes para seu objeto caneta no meu caso específico aqui já que a gente tá falando de forma didática eu só separei esses cinco atributos aqui então eu já tenho a minha classe com todos os atributos definidos E como eu disse anteriormente na hora de criar uma classe eu tenho que fazer as perguntas principais A primeira é o que que o objeto tem então o objeto caneta tem tudo isso aí que tá aparecendo na tela depois é o que o objeto faz que são os meus métodos primeiro método que eu vou representar é o método rabiscar então eu crio lá método rabiscar e fim do método e se você fez o curso de algoritmo com a gente pense num método como se fosse uma rotina um procedimento uma função que é exatamente isso que ele é outro método que eu vou representar aqui daquela lista que a gente colocou é o método tampar Então vou colocar método tampar e fim do método percebe que depois do método eu tenho parênteses isso porque todo método ele pode receber parâmetros nesse caso aqui nenhum dos nossos dois métodos que estão previstos na tela eles têm parâmetros recebendo por enquanto eu não quero dific tá agora a gente vai passo a passo então Acabei de definir os dois métodos dentro desses métodos eu vou começar a trabalhar o código e aí sim a gente vai começar a trabalhar com mini algoritmos dentro de cada objeto um exemplo básico aqui um método rabiscar então se eu quiser rabiscar com a caneta a primeira coisa que eu tenho que saber para poder rabiscar com a caneta é saber se ela tá tampada N é isso então vou fazer um si se ela estiver tampada se uma caneta tiver tampada eu não posso rabiscar então se por acaso a caneta estiver tampada eu vou escrever na tela sei lá deu erro tá porque ela tá tampada outra coisa que eu tenho que verificar por exemplo que eu não vou verificar aqui mas é se a caneta tem carga para poder escrever se eu tenho uma caneta ela tá destampada mas ela não tem carga Eu também não consigo escrever se tudo estiver ok ele vai lá e rabisca então eu fiz B só um escreva Mas você vai colocar mais código isso aqui é só um exemplo Inicial e o método tampar o método tampar é o quê é botar a tampa na caneta se eu boto a tampa na caneta Eu transformo o tampada que é verdadeiro falso para verdadeiro então agora a minha caneta está tampada Deu para perceber então eu consigo dentro dos meus métodos mexer com os atributos do meu objeto e interagir dessa maneira com o meu usuário Esse é o fundamento básico quando eu começo a trabalhar com programação orientada a objeto o seu computador ele não conhece o que que é um objeto né como eu já disse anteriormente seu computador não é nada Inteligente você como programador é que vai dizendo coisas para ele então agora você tá ensinando pro seu computador o que que seria uma caneta através do Código da classe que a gente viu anteriormente sendo assim eu posso colocar lá que todo objeto tem a atributos métodos e estado vamos ver um exemplo básico aqui vamos colocar todos os atributos na tela são aqueles atributos que eu Previ anteriormente e eu também tenho os métodos os métodos Geralmente eu vou representar com parênteses depois nunca se esqueça mas na frente isso na hora prática isso vai fazer uma diferença Total Então nesse momento em que eu idealizei uma classe eu não tenho objeto nenhum eu simplesmente estou idealizando assim como quando eu falei lá quando foi criado esse tipo de controle remoto na verdade no início eles não tinham controle remoto eles tiveram que primeiro planejar criar um prot ó IPO né criar uma classe o que que seria um controle remoto que tipo de característica que tipo de formato Que tipo de material então eu idealizo primeiro eu primeiro crio uma classificação uma classe para então poder criar um objeto A partir dessa classe Então vamos criar um objeto aqui então eu agora eu tenho um objeto caneta esse objeto caneta ele tem atributos específicos por exemplo o modelo dessa caneta Big Cristal a cor dessa caneta dá para você perceber pelos seus sentidos não dá essa caneta é azul o tipo de ponta essa é uma caneta ponta 05 a carga ó essa caneta aí ela já foi usada H pouquinho tá com 90% de carga essa caneta tá tampada ou não dá para você perceber também ela não está tampada então tampada é falso ela não tá tampada e a partir da configuração dos seus atributos a gente já consegue determinar o estado desse objeto nesse momento o estado sempre é definido num momento específico Pode ser que para trás esse estado tivesse diferente e pra frente ele fique diferente pode ser que ele seja o mesmo mas pode ser que ele seja diferente então a classificação de estado ou de estado sempre é dada no momento específico nesse momento a minha caneta está com esse estado ela está destampada Ela é azul ela está nesse momento com 90% de carga e qualquer outra característica que você possa identificar através dos seus atributos E aí deu para entender Qual é a diferença entre atributo método e estado todo objeto tem que ter isso todo objeto tem que vir de uma classe e quando eu tenho uma classe e quero transformar ela num objeto eu dou um nome para isso O nome disso é instanciamento então instanciar é quando eu pego uma classe e consigo gerar um objeto A partir dela eu não transformo uma classe em objeto eu Gero um objeto a partir de uma classe A gente chama isso de instanciar Então quando você cria um objeto eu digo eu estou instanciando uma classe em forma de um objeto para instanciar um objeto é simples também vou colocar o nome desse objeto igual nova caneta Então a partir de agora eu tenho um objeto chamado C1 que é uma nova caneta a palavra Nova é ela serve pra gente poder instanciar um objeto a partir de uma classe O que vem depois do nova é a classe que eu vou utilizar o que vem antes do nova é o nome do objeto que vai existir Então a partir de agora eu tenho um objeto C1 então eu posso colocar por exemplo uma cor nessa caneta você percebe aí do lado essa caneta é uma caneta azul como é que eu boto essa caneta como Azul pro meu computador eu boto C1 PC igual azul então o atributo cor do objeto C1 recebe Azul essa caneta é ponta fina ponta 05 Então é só botar C1 P ponta recebe 0 05 essa caneta percebe aí do lado ela tá destampada então C1 P tampada recebe falsa Viu como é simples e se eu tô com a minha caneta azul de ponta fina destampada eu posso rabiscar não posso como é que eu chamo um método C1 P rabiscar percebe aí que depois do rabiscar tem parênteses isso indica que ele é um método se não tiver o parênteses isso indica que é um atributo consigo perceber eu não preciso ter um objeto só não eu posso ter um segundo objeto eu posso ter uma segunda caneta percebe ali que eu coloquei C2 re recebe nova caneta isso é C2 é uma nova caneta que não tem ligação nenhuma com C1 a não ser pelo fato dele ser uma caneta que veio de uma mesma classe que C1 mas ela pode ser completamente diferente por exemplo ela pode ser uma caneta vermelha Vamos colocar os atributos nessa caneta primeiro a cor então C2 PC recebe vermelho isso não vai mexer com a cor do C1 Deu para perceber isso então C1 é um objeto da mesma classe que C2 e cada um deles tem atributos diferentes e podem coexistir dentro da memória do meu computador essa caneta vermelha ela é Ponta Grossa ela é ponta 1. 0 então eu coloco lá que ela é ponta 1.