< Return to Video

AICSS CAP08 2025 VA03 POO CLASSES METODOS E OBJETOS

  • 0:08 - 0:10
    Você sabe o que é objetos
    e métodos
  • 0:10 - 0:12
    dentro da linguagem de programação
    orientada a objetos?
  • 0:12 - 0:14
    Vamos discutir
    um pouco mais sobre isso.
  • 0:14 - 0:17
    Dentro da linguagem
    de programação orientada a objeto,
  • 0:17 - 0:20
    nós temos recursos
    que vão tornando a programação
  • 0:20 - 0:24
    um pouco mais profissional
    e, ao mesmo tempo, flexível
  • 0:24 - 0:30
    para fazer alterações
    rápidas sem quebrar muito o código.
  • 0:30 - 0:34
    Outra vantagem de usar
    métodos e objetos
  • 0:34 - 0:38
    é que você pode criar
    uma caixa de ferramenta exclusiva
  • 0:38 - 0:42
    para você programador
    que tem facilidade em desenvolver
  • 0:42 - 0:46
    uma parte do programa e reaproveitar
    isso nos demais programas.
  • 0:46 - 0:49
    Afinal, os bastidores do código
  • 0:49 - 0:54
    não são tão importantes para o usuário
    que está usando o seu sistema.
  • 0:54 - 0:57
    E você, como programador,
    pode ganhar tempo reaproveitando
  • 0:57 - 1:00
    partes do seu código para projetos
    futuros.
  • 1:00 - 1:02
    Vejamos aqui uma aplicação prática
  • 1:02 - 1:06
    de como fazer objetos e métodos
    usando o pisca pisca.
  • 1:06 - 1:11
    Nesse código, nós vamos começar aqui
    do nosso "void setup".
  • 1:11 - 1:14
    Percebe que ele está "vazio",
  • 1:14 - 1:18
    já que a parte de programação
    do "pinMode"
  • 1:18 - 1:20
    ou da configuração do "pinMode",
  • 1:20 - 1:25
    que é importantíssima para fazer
    os pinos se alimentarem,
  • 1:25 - 1:28
    elas em vez de estar dentro
    do void setup,
  • 1:28 - 1:32
    elas foram parar dentro
    da nossa classe.
  • 1:32 - 1:35
    E ainda na sequência nós temos
    o "void loop",
  • 1:35 - 1:42
    que vai instanciar os nossos métodos.
  • 1:42 - 1:42
    Então, vejamos.
  • 1:42 - 1:45
    O que é um objeto?
    O que é um método?
  • 1:45 - 1:48
    Tudo começa antes do "void setup".
  • 1:48 - 1:53
    Percebe que aqui tem uma palavra
    "Led" com a letra L maiúscula
  • 1:53 - 1:57
    e um "led1" com letras minúsculas.
  • 1:57 - 2:02
    Essa palavra Led com letra maiúscula
    é o nosso objeto.
  • 2:02 - 2:04
    Percebe que aqui em cima,
    esse Led
  • 2:04 - 2:07
    também aparece com a letra maiúscula.
  • 2:07 - 2:11
    Então, o nome que vem
    logo abaixo do "public"
  • 2:11 - 2:15
    tem que bater com a palavra
    que você está criando lá de fora
  • 2:15 - 2:17
    que vem antes do void setup.
  • 2:17 - 2:22
    Na sequência,
    eu tenho o "led1".
  • 2:22 - 2:25
    Esse "led1" faz parte do objeto.
  • 2:25 - 2:29
    Porém, ele não aparece
    aqui dentro da classe.
  • 2:29 - 2:32
    Ele vai aparecer lá fora
    dentro do "void loop",
  • 2:32 - 2:35
    que é aonde eu vou instanciar meu objeto.
  • 2:35 - 2:39
    Então eu começo com o "Led"
    criando dentro da classe Led maiúscula
  • 2:39 - 2:43
    e o "led1" para fora dele,
    aonde eu vou instanciar.
  • 2:43 - 2:48
    Pois bem, percebe que tem um ponto
    depois da palavra "led1."?
  • 2:48 - 2:54
    Esse ponto vai me dizer
    qual é o comportamento desse objeto.
  • 2:54 - 2:57
    Ou seja,
    esse ponto significa método.
  • 2:57 - 3:03
    Método é uma espécie de ação
    é o comportamento do objeto.
  • 3:03 - 3:08
    A palavra ".ligar"
    está dentro da minha classe
  • 3:08 - 3:11
    e ela faz parte aqui dessa função,
  • 3:11 - 3:14
    dessa pequena função
    que é um "digitalwrite".
  • 3:14 - 3:18
    Ou seja, faço o nível lógico alto
  • 3:18 - 3:22
    sair pelo o pino
    que está sendo carregado.
  • 3:22 - 3:25
    Já já a gente chega no entendimento disso.
  • 3:25 - 3:28
    Por enquanto você só tem que entender
    que dentro do "void ligar"
  • 3:28 - 3:30
    eu faço o nível lógico alto sair.
  • 3:30 - 3:33
    E dentro da função "void desligar"
  • 3:33 - 3:38
    eu faço o "low" sair, ou seja,
    eu desabilito o led.
  • 3:38 - 3:42
    Entendido isso, vamos agora
    entender como se faz uma classe.
  • 3:42 - 3:48
    Você começa com a palavra "class"
    e coloca a palavra "Led" também.
  • 3:48 - 3:51
    A palavra L maiúscula
    tem que estar aqui em cima,
  • 3:51 - 3:55
    aqui no "public" e lá do lado de fora.
  • 3:55 - 3:58
    E aí você vai fazer
    uma construção da sua classe,
  • 3:58 - 4:03
    sempre com duas partes,
    uma parte privada e uma parte pública.
  • 4:03 - 4:07
    Na parte privada
    você vai declarar os pinos
  • 4:07 - 4:11
    que serão utilizados dentro desse escopo
    e não mais que isso.
  • 4:11 - 4:14
    Então a classe para ela existir,
  • 4:14 - 4:18
    ela precisa ter pequenas gavetas
    na memória do microcontrolador.
  • 4:18 - 4:21
    E essas gavetas são as variáveis.
  • 4:21 - 4:25
    Nesse caso,
    eu estou declarando a gaveta "pino"
  • 4:25 - 4:27
    como sendo inteira.
  • 4:27 - 4:30
    Na parte pública eu vou colocar aqui
  • 4:30 - 4:34
    o nome do meu objeto
    e aí na frente dele
  • 4:34 - 4:39
    eu vou colocar o local onde vai vir
    o parâmetro,
  • 4:39 - 4:42
    o primeiro parâmetro quando eu carregá-lo.
  • 4:42 - 4:44
    Então aqui está vindo o parâmetro "p",
  • 4:44 - 4:47
    "p" minúsculo e ele é do tipo inteiro.
  • 4:47 - 4:50
    Quando eu entrar
    na minha parte pública
  • 4:50 - 4:54
    eu faço uma transferência
    obrigatória aqui de parâmetro.
  • 4:54 - 4:56
    A variável que você declarar
    aqui dentro,
  • 4:56 - 4:59
    você precisa jogar para dentro
    da privada,
  • 4:59 - 5:03
    da parte privada
    que você declarou na etapa anterior.
  • 5:03 - 5:04
    Isso garante o que?
  • 5:04 - 5:07
    Que o seu conteúdo que acabou
    de chegar dentro da sua classe,
  • 5:07 - 5:12
    vá direto para um conteúdo privado
    para você poder trabalhar aqui dentro
  • 5:12 - 5:16
    e não deixar exposto para os outros
    escopos do seu projeto.
  • 5:16 - 5:19
    Isso garante segurança
    na hora de montar o projeto
  • 5:19 - 5:24
    e evitar que variáveis
    sejam alteradas inadvertidamente.
  • 5:24 - 5:27
    Outra coisa que acontece aqui
    é o "pinMode",
  • 5:27 - 5:28
    que é o normal.
  • 5:28 - 5:30
    Isso aqui deveria estar dentro
    do void Setup.
  • 5:30 - 5:31
    Por quê nós colocamos aqui?
  • 5:31 - 5:33
    Para mostrar para você
    que dentro da parte pública
  • 5:33 - 5:36
    eu posso fazer o que eu bem
    entender com o código,
  • 5:36 - 5:40
    mesmo etapas ou comandos
    que vão dentro do void setup
  • 5:40 - 5:45
    para desocupar ou tirar de dentro
    do void setup
  • 5:45 - 5:50
    etapas que só interessam
    quando eu tiver um pisca pisca.
  • 5:50 - 5:53
    Isso aqui então, já está trazendo
    para mim uma versatilidade.
  • 5:53 - 5:57
    Se isso aqui for uma ferramenta
    que eu encapsulo
  • 5:57 - 5:59
    como sendo um pisca pisca,
  • 5:59 - 6:03
    todos os códigos que eu estiver
    precisando um pisca pisca
  • 6:03 - 6:08
    eu não preciso depender do void setup
    para ir lá colocar o pinMode,
  • 6:08 - 6:11
    eu já deixo dentro
    da minha caixa de ferramenta,
  • 6:11 - 6:14
    independente do que já tem lá
    dentro do vai de setup.
  • 6:14 - 6:16
    Eu não tenho que mexer
    dentro do void setup
  • 6:16 - 6:20
    eu incluo o pinMode
    que é importante para o pisca pisca,
  • 6:20 - 6:25
    para a minha placa,
    para meu projeto que tem pisca pisca,
  • 6:25 - 6:28
    não para todos que eu tiver
    que colocar um pisca pisca,
  • 6:28 - 6:31
    eu vou lá no void setup
    e altero o conteúdo dele.
  • 6:31 - 6:34
    Deixo aqui na classe
    e que vai funcionar da mesma forma.
  • 6:34 - 6:38
    E aí está lá "pinMode"
    o "pino" e "output".
  • 6:38 - 6:40
    Agora de onde está vindo o pino?
  • 6:40 - 6:43
    O pino, como eu disse,
    está vindo da letra "p".
  • 6:43 - 6:44
    E da letra "p"
    está vindo da onde?
  • 6:44 - 6:48
    Está vindo do argumento
    que está na frente do "Led".
  • 6:48 - 6:51
    Aí você volta lá então na linha 19,
    na linha 20.
  • 6:51 - 6:53
    Olha o que acontece aqui.
  • 6:53 - 6:55
    Eu coloquei "Led"
    como sendo o meu objeto
  • 6:55 - 6:57
    e o "led1" como sendo
    parte do meu objeto.
  • 6:57 - 6:59
    Só que aí,
    olha o que tem aqui dentro,
  • 6:59 - 7:00
    um número.
  • 7:00 - 7:06
    Esse número ele está vindo indexado
    para exatamente aqui dentro.
  • 7:06 - 7:09
    Só que não aparece a palavra "led1"
    dentro da classe,
  • 7:09 - 7:11
    porque não tem mesmo que aparecer.
  • 7:11 - 7:14
    Ela aparece do lado de fora
    quando eu precisar invocar ela.
  • 7:14 - 7:19
    Por que assim o que eu faço?
    Eu coloco aqui "led1.ligar".
  • 7:19 - 7:20
    E aí ele vai entender o que?
  • 7:20 - 7:22
    Que na frente do "led1"
    tem a variável,
  • 7:22 - 7:27
    ou melhor conteúdo "23"
    que por sua vez vai cair na letra "p"
  • 7:27 - 7:29
    que por sua vez
    vai cair na letra "pino",
  • 7:29 - 7:32
    que por sua vez
    vai ser carregado no "pinMode"
  • 7:32 - 7:36
    e depois vai ser instanciado
    aqui, ou melhor invocado
  • 7:36 - 7:41
    dentro do método "ligar",
    porque você colocou ".ligar".
  • 7:41 - 7:43
    E aí o "ligar" é para "high".
  • 7:43 - 7:45
    Depois você espera um "delay"
    lá embaixo
  • 7:45 - 7:48
    que ele vai executar isso aqui
    e vai sair daqui de dentro,
  • 7:48 - 7:50
    ai ele volta para o "void loop".
  • 7:50 - 7:54
    O "delay" vai ser executado
    por 1000 milissegundos
  • 7:54 - 7:56
    ou 1 segundo.
  • 7:56 - 7:59
    E na sequência eu tenho o "led1"
    de novo, ou seja,
  • 7:59 - 8:02
    o mesmo objeto "led1" porém,
  • 8:02 - 8:05
    com o método diferente
    que é o ".desligar".
  • 8:05 - 8:08
    E aí,
    eu carrego essa parte do código
  • 8:08 - 8:11
    aonde lá com o mesmo "pino"
    que já está na memória,
  • 8:11 - 8:14
    eu faço "low" e o led apaga.
  • 8:14 - 8:18
    Conclusão, todas as vezes
    que você criar uma classe
  • 8:18 - 8:24
    você tem que instanciar
    aqui no começo o objeto,
  • 8:24 - 8:28
    o nome desse objeto
    que vai aparecer lá fora
  • 8:28 - 8:31
    e o pino que você quer carregar.
  • 8:31 - 8:33
    Com isso olha só
    como ficou nosso "void loop".
  • 8:33 - 8:35
    Bem enxuto,
  • 8:35 - 8:38
    onde eu tenho agora aqui
    só "led1.ligar",
  • 8:38 - 8:41
    "led1.desligar"
    e eu coloco um "delay".
  • 8:41 - 8:45
    Poderia até ter colocado esse "delay"
    lá dentro do meu "void ligar"
  • 8:45 - 8:48
    eu coloco o "delay" aqui dentro,
    põe 1000 aqui
  • 8:48 - 8:50
    ponho ponto e vírgula
  • 8:50 - 8:52
    e aí eu tiraria o "delay"
    daqui de dentro.
  • 8:52 - 8:55
    Olha só como que ficaria bem
    simples meu "void loop"
  • 8:55 - 8:59
    E olha que eu estou cuidando
    de dois leds.
  • 8:59 - 9:03
    Em um método, ou melhor,
    em uma explicação aí anterior,
  • 9:03 - 9:06
    eu teria que colocar
    dentro do "void loop",
  • 9:06 - 9:10
    ligar para o led azul,
    depois desligar para o led azul,
  • 9:10 - 9:13
    ligar para o led verde,
    desligar para o led verde
  • 9:13 - 9:18
    incluindo os seus respectivos
    pinos e delays.
  • 9:18 - 9:20
    Aqui do jeito que eu estou fazendo,
  • 9:20 - 9:26
    eu posso simplesmente então
    colocar 1000 aqui dentro
  • 9:26 - 9:28
    e vai ficar ainda mais enxuto.
  • 9:28 - 9:33
    E aí eu tiraria os meus "500" aqui
  • 9:33 - 9:36
    e assim os leds estariam
    na mesma cadência.
  • 9:36 - 9:40
    Eu não vou colocar o play aqui agora,
    mas esse é um exemplo para vocês
  • 9:40 - 9:43
    e do jeito
    que eles estão fazendo aqui,
  • 9:43 - 9:52
    a gente volta agora para onde estava,
    do jeito que estava.
  • 9:52 - 9:53
    E agora vamos entender o final.
  • 9:53 - 9:58
    O "led1" eu faço simplesmente
    a ativação dele lá em cima,
  • 9:58 - 10:00
    espero 1 segundo,
  • 10:00 - 10:03
    depois eu desativo ele
    espero 1 segundo.
  • 10:03 - 10:06
    Para o "led2",
    que é o verde.
  • 10:06 - 10:09
    Eu faço a ativação dele lá em cima.
  • 10:09 - 10:13
    Espera agora meio tempo,
    0.5 segundo e depois eu desligo.
  • 10:13 - 10:18
    Note que o verde
    é mais rápido para piscar
  • 10:18 - 10:20
    e o azul é mais demorado.
  • 10:20 - 10:24
    1 segundo para o azul,
    0.5 segundo para o verde.
  • 10:24 - 10:29
    Esse método de fazer a programação
    com base em classes
  • 10:29 - 10:34
    para programas mais complexos
    e mais elaborados é essencial,
  • 10:34 - 10:38
    porque quando você tiver
    que fazer alguma alteração,
  • 10:38 - 10:42
    você vai apenas na classe
    e mexe apenas na classe,
  • 10:42 - 10:47
    não na estrutura inteira do void loop
    ou do void setup.
  • 10:47 - 10:51
    E quando você acertar
    as versões das suas classes,
  • 10:51 - 10:54
    elas são herdadas
    para programas futuros,
  • 10:54 - 10:56
    economizando um baita tempo.
Title:
AICSS CAP08 2025 VA03 POO CLASSES METODOS E OBJETOS
Video Language:
Portuguese, Brazilian
Duration:
11:00

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions