< Return to Video

AICSS CAP08 2025 VA01 POO INTRODUCAO E FUNCOES

  • 0:08 - 0:11
    Você sabe o que é programação
    orientada a objeto?
  • 0:11 - 0:15
    Hoje, nós vamos discutir os seus
    recursos para o ambiente do ESP32.
  • 0:15 - 0:19
    A programação orientada a objeto
    ou POO,
  • 0:19 - 0:22
    é um recurso muito comum
    em linguagens C++
  • 0:22 - 0:24
    e outras linguagens como o Java.
  • 0:24 - 0:29
    A sua vantagem é que é uma alternativa
    para a programação estruturada
  • 0:29 - 0:33
    e é bom entender o que é programação
    estruturada e o que é POO.
  • 0:33 - 0:37
    Na programação estruturada
    o fluxo é de cima para baixo
  • 0:37 - 0:39
    ou da esquerda para direita.
  • 0:39 - 0:43
    Isso é, o compilador verifica as linhas
    de cima para baixo,
  • 0:43 - 0:46
    da esquerda para direita,
    ao fazer a sua compilação
  • 0:46 - 0:50
    E se caso acontecer alguma
    falha na compilação,
  • 0:50 - 0:56
    ele te indica o erro e o programador
    deve fazer essa correção.
  • 0:56 - 1:00
    O POO é também assim
    em termos de compilação.
  • 1:00 - 1:03
    Porém, não é exatamente
    de cima para baixo,
  • 1:03 - 1:06
    porque quando você começa
    a programar em POO
  • 1:06 - 1:09
    as suas funções ficam todas
    lá em cima,
  • 1:09 - 1:14
    mas não quer dizer que o compilador
    passou compilando linha a linha.
  • 1:14 - 1:15
    Vejamos uma prática.
  • 1:15 - 1:19
    Nesse código,
    que é o nosso famoso pisca pisca,
  • 1:19 - 1:22
    eu tenho aqui à direita um LED vermelho
  • 1:22 - 1:25
    com o seu resistor de 100 homens.
  • 1:25 - 1:29
    Só lembrando que a necessidade do resistor
    é para que eu não ultrapasse a corrente
  • 1:29 - 1:34
    nominal de funcionamento do LED, ou seja,
    para que ele não queime na prática.
  • 1:35 - 1:37
    Aqui no simulador isso não acontece.
  • 1:37 - 1:40
    Não é uma queima, mas na prática sim.
  • 1:40 - 1:43
    Eu liguei o pino negativo
    que é o coletor do LED
  • 1:43 - 1:46
    no GND do SP 32
  • 1:47 - 1:50
    e o pino positivo que é a letra A de anodo
  • 1:50 - 1:54
    passa pelo resistor que vai para esse pino
    aqui que é o 13.
  • 1:55 - 1:57
    E assim eu invoquei aqui o pino 13
  • 1:57 - 2:00
    como output no void setup.
  • 2:01 - 2:04
    Esse é um exemplo de linguagem estruturada
    porque ele é de cima
  • 2:04 - 2:06
    para baixo, da esquerda para a direita.
  • 2:06 - 2:09
    Ou seja,
    nós temos aqui o vídeo setup ovoide,
  • 2:09 - 2:13
    o loop que faz o pisca LED ser carregado,
    invocado.
  • 2:13 - 2:16
    A novidade é essa aqui, esse pisca leve.
  • 2:16 - 2:19
    Hoje está em forma de função.
  • 2:19 - 2:22
    Eu poderia ter colocado esse DJ Write
  • 2:22 - 2:26
    com o Ray de estourar
    e com o Low aqui dentro.
  • 2:26 - 2:26
    Dessa forma
  • 2:28 - 2:28
    no lugar do
  • 2:28 - 2:32
    pisca LED que iria funcionar
    perfeitamente.
  • 2:32 - 2:35
    Aí eu volto aqui
    com um tab para organizar.
  • 2:38 - 2:40
    E assim ele pescaria.
  • 2:40 - 2:42
    Pois bem, na linguagem de hoje
  • 2:42 - 2:46
    que a gente está trabalhando
    com programação orientada a objeto,
  • 2:46 - 2:49
    ao invés de colocar essa linha
    que está sendo repetida
  • 2:50 - 2:56
    dentro do VAR de looping, eu posso
    colocá la de fora, ou seja, numa função.
  • 2:56 - 2:59
    Então eu vou apagar fazendo Control Z aqui
  • 3:00 - 3:02
    e retornar o que eu estava
  • 3:02 - 3:04
    do jeito que está aqui, o que acontece?
  • 3:04 - 3:10
    Esse pisca LED é uma função
    porque a sintaxe dela é uma palavra
  • 3:10 - 3:13
    que você vai escolher e entre parênteses
  • 3:13 - 3:16
    eu vou colocar dois argumentos nessa hora.
  • 3:17 - 3:21
    Esses dois argumentos estão sendo passados
    aqui para cima
  • 3:21 - 3:24
    porque a palavra pisca led se repete
  • 3:24 - 3:28
    dentro do void,
    que significa que ele não retorna nada.
  • 3:28 - 3:31
    Ou seja,
    essa função aqui não vai me retornar nada,
  • 3:32 - 3:35
    ela não vai me trazer uma variável,
    o conteúdo de uma variável,
  • 3:35 - 3:37
    ela simplesmente
    vai fazer uma ação de piscar.
  • 3:37 - 3:40
    O led está dependendo de quem?
  • 3:40 - 3:43
    De dois argumentos
    dos quais eu estou publicando
  • 3:44 - 3:47
    ou declarando na verdade,
    aqui dentro desses parentes.
  • 3:48 - 3:54
    Veja que eu tenho aqui o int, que é
    um tipo de declaração com a variável pino.
  • 3:55 - 3:58
    Aí eu tenho uma vírgula e outra variável
  • 3:58 - 4:01
    do tipo o tempo
    e a tipagem dela inteira de novo.
  • 4:01 - 4:05
    Olha quantos argumentos eu quiser
    colocar, eu vou colocando aqui dentro
  • 4:05 - 4:09
    que eu precisava colocar aqui,
    separando por vírgula.
  • 4:09 - 4:13
    No entanto, do jeito que eu fiz
    a minha lógica, eu só preciso de dois,
  • 4:13 - 4:16
    porque eu estou indicando aqui,
    pela minha lógica,
  • 4:16 - 4:20
    o pino que o LED está ligado
    e o tempo que ele vai ser o intervalo,
  • 4:20 - 4:23
    a cadência das piscadas
    que ele vai precisar.
  • 4:24 - 4:27
    E assim esses parâmetros são passados
    aqui para dentro.
  • 4:27 - 4:31
    O pino recebe o 13, assim como o tempo
  • 4:31 - 4:34
    recebe o 500, porque são respectivos.
  • 4:34 - 4:37
    Aí a ordem que importa aqui dentro
    que eu coloquei
  • 4:37 - 4:41
    separado por vírgula,
    que vai casar lá dentro da minha função.
  • 4:42 - 4:45
    E assim como o pino
    está declarado aqui como inteiro,
  • 4:45 - 4:49
    ele é local nessa declaração,
    porém ela é local e é pública.
  • 4:49 - 4:51
    Visivelmente aqui dentro
  • 4:51 - 4:55
    eu consigo enxergar o conteúdo de pino
    aqui dentro dessa função.
  • 4:55 - 4:58
    Então ela vai vir aqui automaticamente.
  • 4:58 - 4:59
    No lugar desse pino.
  • 4:59 - 5:03
    Aqui vai estar o número 13 do jeito
    que veio transferido lá do void loop
  • 5:03 - 5:06
    até chegar aqui. E o conteúdo de tempo.
  • 5:07 - 5:07
    Esse parâmetro ele
  • 5:07 - 5:10
    recebe o 500 e aí
    ele vai ser utilizado aqui.
  • 5:11 - 5:12
    Aqui dentro do delay.
  • 5:12 - 5:15
    Note que quando você está fazendo
    uma função,
  • 5:16 - 5:20
    o nome que está dentro do void loop,
    que é onde vai carregar,
  • 5:20 - 5:23
    precisa bater com o nome
    que está do lado de fora, se não, a função
  • 5:24 - 5:28
    não coincide, não casa
    e quando você fizer a sua função,
  • 5:28 - 5:33
    você está ainda fazendo uma linguagem
    estruturada, mas com um pé
  • 5:33 - 5:36
    dentro da programação orientada a objeto.
  • 5:38 - 5:41
    A vantagem de você fazer funções
    é que você está fazendo
  • 5:41 - 5:44
    pequenas pequenas ferramentas
    ou pequenos pacotes.
  • 5:45 - 5:47
    Utilizar todos mais de uma vez.
  • 5:47 - 5:50
    Nesse caso do pisca pisca,
    ele é muito simples
  • 5:50 - 5:53
    para requerer uma função,
    mas ainda assim, didaticamente
  • 5:54 - 5:57
    é importante você entender
    para uma linguagem mais complexa
  • 5:57 - 6:02
    ou um programa mais complexo
    que requer mais funções.
  • 6:02 - 6:07
    Aí sim vale a pena criar essas funções
    para você reutilizar
  • 6:07 - 6:12
    parte do seu código através de funções
    e não deixar o seu void de loops
  • 6:12 - 6:15
    super carregado com códigos
    que serão repetidos lá embaixo.
Title:
AICSS CAP08 2025 VA01 POO INTRODUCAO E FUNCOES
Video Language:
Portuguese, Brazilian
Duration:
06:19

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions