【arduino面向對象編程】arduino只適合玩玩?來看看arduino怎麼造對象......

目錄


1.前言
2.實驗分析
  2.1.創建類
  2.2.實例化對象
  2.3.實現功能:LED閃爍
3.完整代碼


1.前言

  怎麼樣啊小夥子們,幾天不見,甚(ou)是(ou)想(ou)念(ou);從剛開始就聽到別人說arduino簡單到只適合玩玩的話,但是arduino真的只是侷限於此嗎?今天帶着大家來玩玩新東西:O(面向)O(大家沒有的對象)P(編程)。

2.實驗分析

  今天的實驗環境賊簡單,一塊arduino裸板即可,因爲我們只用到13引腳,而13引腳在板子上集成了一個LED。


  首先是創建一個類,學過例如c++,java這些面嚮對象語言的應該都清楚類是什麼,簡單來說類:對象的所有集合,人類是一個類;對象就是類實例化的東西;人類是個很寬的概念,那你這個人就是一個實例化的對象,而你的身高,體重這些都是人類共有的屬性;方法:舉例說,人(對象)走路(方法)就是一個方法,也就是所有對象都會用到的能完成特定功能的函數。

  那麼類的好處很顯然,你能有無窮多個對象了,前提是你身體(電腦性能)好。

(1).創建類
class LED
{
  public:
    int   pin;
    bool  state;

    LED(int p)
    {
      pin=p;
      pinMode(pin,OUTPUT);
    }

    void on()
    {
      if(state == LOW) state=HIGH;  
      digitalWrite(pin,state);
    }

    void off()
    {
        if(state == HIGH) state=LOW;  
        digitalWrite(pin,state);
    }
};

  class關鍵字告訴編譯器你想要對象了,於是編譯器就給你個對象的集合(類)讓你隨便挑隨便選,然後你想要xiong大,腿長的(類的屬性),於是你定義兩個屬性;那麼LED類中的LED()就好比你挑對象之前,先告訴編譯器你是男是女,然後你對對象有啥要求,即用來初始化對象的屬性。然後你創建了兩個方法,就比如說你想讓TA來你身邊;可能很扯但不抽象;

  

(2).類的實例化對象
LED led(13);

  是的沒錯,類創建完之後,對象你就大約有∞多個了,這就好比女(LED,類名),小花(led,對象),13歲(wei fa的兄弟,(13),初始化對象的屬性);

  所以這句話就是說,我要創建個led對象,它屬於LED類(具有LED類的所有屬性和方法);然後這個對象引腳號爲13;

  

(3).實現功能:LED閃爍
void loop()
{
  led.on();
  delay(1000);
  led.off();
  delay(1000);
}

  
  

3.完整代碼

  可以說很形象生動了吧,下面是完整代碼:


class LED
{
  public:
    int   pin;
    bool  state;

    LED(int p)
    {
      pin=p;
      pinMode(pin,OUTPUT);
    }

    void on()
    {
      if(state == LOW) state=HIGH;  
      digitalWrite(pin,state);
    }

    void off()
    {
        if(state == HIGH) state=LOW;  
        digitalWrite(pin,state);
    }
};

void setup()
{
  
}

LED led(13);

void loop()
{
  	led.on();
 	delay(1000);
  	led.off();
 	delay(1000);
}

  
  
  學沒學會不重要,重要的是,如果你對【類】有了更深刻的理解,那這次就血賺不虧,更多精彩歡迎關注【菜小濤的CSDN】。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章