< 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 objeto
  • 0:17 - 0:21
    nós temos recursos
    que vão tornando a programação
  • 0:21 - 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 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 pin mode
  • 1:18 - 1:20
    ou da configuração do pin mode,
  • 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 na verdade 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:47
    E a letra "p"
    está vindo da onde?
  • 6:47 - 6:48
    Está vindo da frente do argumento
    que está na frente do "Led".
  • 6:48 - 6:49
    Aí você volta lá.
  • 6:49 - 6:52
    Então na linha 19, na linha 20,
    olhe que acontece aqui
  • 6:53 - 6:57
    eu coloquei LED como sendo o meu objeto
    e o LED um como sendo parte do meu objeto.
  • 6:57 - 7:00
    Só que aí olha o que tem aqui dentro,
    um número.
  • 7:00 - 7:05
    Esse número ele está vindo indexado para
    exatamente aqui dentro.
  • 7:06 - 7:09
    Só que não aparece a palavra LED
    um 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 de invocar ela,
  • 7:14 - 7:18
    porque assim o que eu faço
    eu coloco aqui LED um ponto ligar
  • 7:19 - 7:22
    e aí ele vai entender o que
    que na frente do led não tem a variável
  • 7:22 - 7:26
    o melhor conteúdo 23
    que por sua vez vai cair na letra P
  • 7:27 - 7:31
    que por sua vez vai cair na letra pino,
    que por sua vez vai ser carregado
  • 7:31 - 7:36
    no pin mod e depois vai ser instanciado
    aqui, ou melhor invocado dentro
  • 7:38 - 7:39
    do método ligar porque
  • 7:39 - 7:42
    você colocou ponto ligar e aí
    o ligar é para High.
  • 7:43 - 7:46
    Depois você espera um deley lá embaixo
    que ele vai executar isso aqui
  • 7:47 - 7:50
    e vai sair daqui de dentro,
    ai ele volta para o Voz de Low.
  • 7:50 - 7:55
    O delay vai ser executado
    por 1000 milissegundos ou um segundo
  • 7:56 - 8:00
    e na sequência eu tenho o led
    um de novo, ou seja, o mesmo objeto
  • 8:01 - 8:04
    e de um porém com o método diferente
    que é o ponto desligar.
  • 8:05 - 8:08
    E aí eu carrego
    essa parte do código aonde?
  • 8:08 - 8:11
    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:17
    Conclusão
    todas as vezes que você criar uma classe
  • 8:18 - 8:22
    você tem que instanciar aqui no começo a
  • 8:23 - 8:27
    o objeto, o nome desse objeto
    que vai aparecer lá fora
  • 8:28 - 8:32
    e o pino que você quer carregar com isso.
  • 8:32 - 8:33
    Olha só como ficou nossa voz de loop.
  • 8:33 - 8:36
    Bem enxuto onde eu tenho agora?
  • 8:36 - 8:41
    Aqui só LED um ponto, ligar LED
    ou um ponto desligar e eu coloco um delay.
  • 8:41 - 8:44
    Poderia ter colocado esse delay lá dentro
  • 8:44 - 8:47
    do meu voyage ligar
    eu coloco ele aqui dentro, põe 1000 aqui
  • 8:48 - 8:49
    por enquanto e
  • 8:49 - 8:52
    vírgula
    e aí eu tiraria o delay daqui de dentro.
  • 8:52 - 8:55
    Olha só como que ficaria bem
    simples no meu, vai de louco!
  • 8:55 - 8:58
    E olha que eu estou criando
    cuidando de dois LEDs
  • 8:59 - 9:03
    num método, ou melhor,
    numa explicação aí anterior,
  • 9:03 - 9:06
    eu teria que colocar
    dentro do VAR de 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:17
    com incluindo os seus respectivos pinos
    e deles.
  • 9:18 - 9:22
    Aqui, do jeito que eu estou fazendo,
    eu posso simplesmente colocar
  • 9:22 - 9:25
    1000 aqui dentro.
  • 9:26 - 9:28
    E vai ficar ainda mais enxuto.
  • 9:28 - 9:30
    E aí eu tiraria
  • 9:30 - 9:33
    os meus 500 aqui
  • 9:33 - 9:36
    e assim
    os leds estariam na mesma cadência.
  • 9:36 - 9:39
    Eu não vou colocar o play aqui agora,
    mas esse é um exemplo para vocês
  • 9:40 - 9:45
    e do jeito que eles estão fazendo aqui,
    a gente volta agora para onde estava.
  • 9:47 - 9:50
    Do jeitinho que estava.
  • 9:52 - 9:53
    E agora vamos entender o final.
  • 9:53 - 9:58
    O LED eu faço simplesmente
    a ativação dele lá em cima.
  • 9:58 - 10:01
    Espero um segundo depois eu desativo.
  • 10:01 - 10:06
    Ele espera um segundo para o LED dois,
    que é o verde.
  • 10:06 - 10:09
    Eu faço a ativação de lá em cima.
  • 10:09 - 10:13
    Espera agora meio tempo, meio segundo
    e depois eu desligo.
  • 10:13 - 10:17
    Note que o verde é mais rápido
  • 10:17 - 10:20
    para piscar e o azul é mais demorado.
  • 10:20 - 10:24
    Um segundo para o azul,
    meio 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 class,
  • 10:42 - 10:46
    não na estrutura inteira do void looping
    ou do void setup.
  • 10:47 - 10:51
    E quando você acertar
    as versões das suas classes,
  • 10:51 - 10:56
    elas são herdadas para programas
    futuros, 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