טיאַניו ליו: היי, ווי ס עס געגאנגען אַלעמען? און דעם איז די יאָס אַפּ פּראָגראַממינג פון אָביעקטיוו C סעמינאַר. און מיין נאָמען איז טיאַניו ליו. איך בין אַ לאָוועלל יינגער רעכט איצט, קאַנסאַנטרייטינג אין קאָמפּיוטער וויסנשאַפֿט. אזוי אין דעם סעמינאַר איך בין געגאנגען צו לערנען איר גייז אַ ביסל ביסל וועגן ווי צו מאַכן אַן אַפּ. ייי, באַקומען יקסייטאַד פֿאַר אים. אזוי איידער מיר אפילו אָנהייב דייווינג אין די פאַקטיש פּראָגראַממינג זייַט, לאָזן ס נאָר טאַקע געשווינד רעדן וועגן פארוואס זאל איר ווילן צו בויען אַ יאָס אַפּ? פארוואס איז יאָס אַזוי אָסאַם? אזוי דער ערשטער פּראָבלעם, דער ערשטער זאַך אַז איז שיין אָסאַם פֿאַר אונדז, ספּעציעל ווי אַ קס50 תּלמיד, איז אַז יאָס ניצט אָביעקטיוו סי נו, דאָרט ס אַ נייַ שפּראַך גערופן סוויפט, אָבער מיר ניטאָ ניט געגאנגען צו נוצן אַז אין דעם סעמינאַר. אויב איר 'רע אינטערעסירט אין סוויפט, עס איז אַ פרייַ סעמינאַר וועגן אַז. אבער אָביעקטיוו C איז בייסיקלי אַ סופּערסעט פון סי מינינג אַז אַלץ איר נוצן אין C קענען זייַן איבערגעזעצט אין אָביעקטיוו C זייער לייכט. ווי איר זאלן זען שפּעטער, אַז טאַקע עס זענען עטלעכע זייער יקערדיק סינטאַקס, זענען בייסיקלי פּונקט דער זעלביקער, C און אָביעקטיוו סי אזוי, זינט איר האָבן גענומען קס50 אַרויף דעם ווייַט, איר שוין וויסן אָביעקטיוו C, בייַ מינדסטער 40%. אויך, עפּל האט אַ טאַקע געזונט אַפּי פֿאַר יאָס. עס זענען אַ פּלאַץ פון טאַקע משוגע זאכן איר קענען טאָן מיט אים. איינער פון וואָס איז עמעצער פאקטיש באשאפן אַ יאָס אַפּ פֿאַר קאַנטראָולינג קאַרס, וואָס איז שיין טשיקאַווע. מיסטאָמע אַ העליקאָפּטער איז מער יקסייטינג. אבער אַז ס ווי שטאַרק די יאָס אַפּי קענען ווערן. און ווי איר זאל האָבן פיגיערד אויס רעכט איצט, די אָנלייגן לויפן איז מיסטאָמע איינער פון די מערסט וויכטיק אָנליין רעסורסן בנימצא צו איר. און גוט נייַעס, פֿאַר יעדער איין פּראָבלעם איר קענען עפשער טראַכטן פון בעת ​​בנין דיין לעצט פּרויעקט אין אָביעקטיוו C, עס איז מסתּמא אַ אָנלייגן לויפן ענטפער. עס ס נאָר אָסאַם. אין דערצו צו אַז, יאָס איז טאַקע אַ פּלאַטפאָרמע ווו איר קענען דערגרייכן אַ ריזיק וילעם מיט קליין מי. עס ס ניט ווי אַנדרויד, ווו אַלץ ס שיין פראַגמאַנטיד. אלץ יאָס איז יונאַפייד. און ווי לאַנג ווי איר מאַכן אַ אַפּ פֿאַר אַ יפאָנע, איר קענען זייער לייכט פּאָרט אַז צו יפּאַד, יפּאַד מיני, אָדער פאַרשידענע יפאָנע סיזעס. דאס זענען אַלע טאַקע באַקוועם. און עס ס נאָר טאַקע גוט פֿאַר ימפּרעסינג דיין פריינט. איר קענען נאָר האַלטן אַן יפאָנע און דערציילן דיין פרייַנד היי, דעם איז די אַפּ איך מאַכן. איר קענען טאָן אַז פֿאַר קיין דעסקטאַפּ אַפּס, וואָס איז פייַן. כל רעכט, איצט לאָזן ס פאקטיש באַקומען אין דער שפּראַך אָביעקטיוו סי אזוי וואָס טאָן ניט מיר אָנהייבן מיט עטלעכע טאַקע יקערדיק סינטאַקס. ווי איך דערמאנט פריער אָביעקטיוו C עס ס בייסיקלי אַ סופּערסעט פון סי אזוי אַ פּלאַץ פון יקערדיק סינטאַקס זענען פאקטיש פּונקט דער זעלביקער. דיקלערינג אַ בייַטעוודיק און אַדינג צוויי וועריאַבאַלז צוזאַמען איז פּונקט ווי מיר האָבן געטאן אין מאַריאָ. גאָרנישט נייַ דאָ. סימילאַרלי, די לאָדגער פֿאַר שלייף און צושטאַנד איז אויך די זעלבע. איר קענען טאָן אַ פֿאַר שלייף נאָר ווי איר האָבן האט אין אַ מאַריאָ [ינאָדאַבאַל]. און איר קענען טאָן טנאָים נאָר ווי וואָס איר האָבן שוין טאן אין דיין פרייַערדיק פּ שטעלט. אבער, אָביעקטיוו C איז ניט גאָר C, און עס איז עפּעס אַז איז מין פון טשודנע וועגן עס. די ערשטער איינער זייַענדיק אַז ווען איר זענען טאן C פּראָגראַממינג, איר טיפּיקלי רופן אַרייַננעמען און דעמאָלט אַ ביבליאָטעק נאָמען. אבער אין אָביעקטיוו C איר רופן אַז אַרייַנפיר. באַסיקאַללי געזאגט פאַנגקשאַנאַליטי, נאָר פאַרשידענע נעמען. און די סטרינגס זענען פאקטיש אַ ביסל ביסל טשודנע. איר קענען זען אַז די ערשטע זאַך אַז איז מין פון טשודנע איז אַז איר האָבן אַ שיין וועירד-- סאָררי-- איר האָבן אַ שיין טשודנע נס צייכן איבער דאָ. און די רגע זאַך אַז ס מין פון טשודנע איז איר האָבן אַ בייַ צייכן איידער פאקטיש דיקלערינג די שטריקל. אזוי די בייַ צייכן בייסיקלי סיגנאַפייז אַז אַ שטריקל איז ניט נאָר אַ שטריקל, עס איז פאקטיש אַ כייפעץ. מיר ניטאָ געגאנגען צו דערקלערן אַז שפּעטער אַזוי טאָן ניט פּאַניק אויב איר טאָן ניט פֿאַרשטיין וואָס אַז מיטל. און דרוקן צו קאַנסאָול איז אַ קליין ביסל פאַרשידענע ווייַל אין C מיר רופן פּרינטף, אָבער אין אָביעקטיוו C מיר רופן [ינאָדאַבאַל]. איר זאל זיין וואַנדערינג וואָס איז וואָס. אַז איז בייסיקלי פּרינטף, נאָר אַ פאַרשידענע שפּראַך. פּונקט דער זעלביקער באַניץ, פּונקט דער זעלביקער פאַנגקשאַנאַליטי. גוט עס טורנס אויס אַז אָביעקטיוו C פאקטיש האט אַ נס פּרעפיקס אין כּמעט אַלץ, יעדער יקערדיק דאַטן טיפּ, נססטרינג, נסאַררייַ, נסדיקטיאָנאַרי. די סיבה זייַענדיק אַז נס פאקטיש שטייט פֿאַר ווייַטער שריט, וואָס איז אַ פירמע וואָס סטיוו דזשאָבס האט געגרינדעט, וואָס איז אַ פירמע ווו די שפּראַך אָביעקטיוו C איז געבוירן. אזוי דעם איז בייסיקלי מסורה. איך וויסן עס ס אַ קליין ביסל טשודנע, אָבער עס ס עפּל. אזוי עפּעס אַז איז אַפֿילו ווירדער ווי אַז איז אַ פונקציע דעקלאַראַציע. דאס איז זייער אַנדערש פון וואָס מיר זען אין C, ווייַל דאָ עס פאקטיש טוט ניט קוקן ווי C ענימאָר. וואָס איר האָבן הערע-- דורך די וועג דעם איז ניט אַ קויל פונט, דעם איז אַ מינוס צייכן. איר האָבן אַ מינוס צייכן פּערענטאַסיס פּאָסל און דעמאָלט דער פונקציע נאָמען. זאל ס נאָר זאָגן אויב מיר האָבן העלא וועלט, דעריבער די צוריקקומען טיפּ וואָלט זייַן פּאָסל ווייַל מיר צוריקקומען גאָרנישט. וואס געץ טאַקע טשודנע איז אַז ווען איר ניטאָ ווייל מער ווי איין פּאַראַמעטער גייט פארביי אין אַ זעלביקער פונקציאָנירן אַז וועט זיין טאַקע טשודנע ווי געוויזן דאָ. מיר האָבן אַ אופֿן נאָמען, גערופן אַדדינט צו [ינאָדאַבאַל] און מיר רע גייט פארביי איינער פּאַראַמעטער. אבער נאָך אַז, מיר האָבן מער אופֿן נאָמען רופן מיט. און נאָך מיט מיר רע גייט פארביי די רגע פּאַראַמעטער. דאס איז פאקטיש אַ קליין ביסל טשודנע, אָבער אַלע די פאַנגקשאַנז דעקלעריישאַנז נאָכגיין די זעלבע מוסטער ווי דעם. מיר האָבן אַ מינוס צייכן צו אָנהייבן מיט. די מינוס צייכן קען זיין אַ פּלוס צייכן מאל באזירט אויף וואָס מין פון מיטל איז עס. אופֿן איז בייסיקלי אן אנדער נאָמען פֿאַר פונקציאָנירן. און מיר רע געגאנגען צו דערקלערן אַז שפּעטער ווען מיר ניטאָ גערעדט וועגן כייפעץ אָריענטיד פּראָגראַממינג. איר ערשטער ספּעציפיצירן די צוריקקומען טיפּ ין קלאַמערן, נאָך וואָס קומט די מיטל נאָמען. איר ניטאָ גייט פארביי איינער פּאַראַמעטער. און אויב איר האָבן מער פּאַראַמעטערס איר דאַרפֿן צו פאַרברייטערן די מיטל נאָמען און בייסיקלי שרייַבן עפּעס מער דאָ. עס קען זיין עפּעס איר ווילן. אין אונדזער פאַל עס ס מיט. אבער איר קען זאָגן סוף, אָדער אָדער, אָדער אַבק פול באַר, וועלכער איר ווילן. און דעמאָלט נאָך אַז איר ניטאָ גייט פארביי פּאַראַמעטער ב. דאס איז אַ טאַקע טשודנע צוזאַמענפאָר אָבער מיר זענען געגאנגען צו זען וואָס עפּל געוואלט צו טאָן אַז זייער געשווינד. אזוי ווי טאָן איר רופן פונקציאָנירן? פאַך אַ פונקציאָנירן אין אָביעקטיוו C איז אויך אַנדערש פון סי אַקטואַללי, פאַך אַ פונקציע אין אָביעקטיוו C איז מער ווי איר ניטאָ גערעדט צו עמעצער. דאָ מיר האָבן זיך, וואָס איז גערופן אַ כייפעץ. איר 'רע בייסיקלי טעלינג די כייפעץ זיך צו זאָגן "העלא וועלט!" אַז איז ווי צו רופן די פֿונקציע. אַ כייפעץ און אַ מיטל נאָמען קאַמביינד מיט יעדער אנדערער. און דעם איז ווו די טשודנע געשפּרייט פֿאַר מיטל נאָמען טאַקע קומט אין שפּיל. זאל ס קוק בייַ די רגע בייַשפּיל. מיר נאָר דיפיינד אַ אופֿן גערופן אַדדינט מיט בלאַ בלאַ בלאַ. אזוי אין דעם פאַל ווען איר זענען פאַך אַז ספּעציפֿיש [? אָנזאָג?] עס ס געגאנגען צו קוקן ווי זיך אַדדינט: 10 מיט: 2. עס סאָונדס ווי ענגליש. כאָטש די פונקציע פונקציאָנירן דעקלאַראַציע איז טשודנע, די פונט פון אָביעקטיוו C ס אופֿן דעקלאַראַציע מוסטער, איז אַז ווען איר זענען פאַך די פונקציע אָדער אופֿן עס וועט געזונט ווי פאַקטיש ענגליש. אזוי עס ס זייער ינטואַטיוו אַמאָל איר באַקומען אין עס. ספּעציעל אין דעם פאַל, ווו איר קענען בייסיקלי זען אַז די פונקציע נאָמען איז סאָרט פון דאַקיומאַנטינג זיך. איר טאָן ניט דאַרפֿן קיין מער דערקלערונג צו זען וואָס פּונקט איז געשעעניש, וואָס פּונקט איין פּאַראַמעטער טאן. גיי ווייַטער פון וואָס, לאָזן ס רעדן אַ ביסל ביסל וועגן כייפעץ אָריענטיד פּראָגראַממינג. אָבדזשעקט אָריענטיד פּראָגראַממינג איז איינער פון די פונדאַמענטאַל פּראָגראַממינג טעקניקס אָדער פּאַטערנז אַז איז געניצט דורך אָביעקטיוו סי אָביעקטיוו C איז גערופן אָביעקטיוו C, ניט C, פֿאַר אַ טאַקע גוט סיבה. אזוי איידער מיר באַקומען אין אָביעקטיוו C סינטאַקס, זאל ס טאַקע געשווינד קוקן בייַ וואָס פּונקט איז אַ כייפעץ. מיר ווע מיסטאָמע געטאן עפּעס ווי כייפעץ איידער, וואָס איז גערופן די סטרוקט ווען איר זענען ימפּלאַמענינג אַ בוים אָדער אַ לינגקט רשימה אָדער [? פּרובירן. ?] אזוי, עס ס בייסיקלי ווי אַ סטרוקט, אָבער עס ס פיל מער שטאַרק ווי אַז. אַ כייפעץ האט מעטהאָדס און פּראָפּערטיעס. מעטהאָדס זענען בייסיקלי פאַנגקשאַנז. באַסיקאַללי פאַנגקשאַנז אַז אַ ספּעציפיש צו אַ זיכער כייפעץ. און פּראָפּערטיעס זענען בייסיקלי די פעלד איר ספּעציפיצירן אין די סטרוקט. אזוי פֿאַר יעדער איין כייפעץ מיר האָבן עטלעכע פאַרמאָג אַז האט עטלעכע וועריאַבאַלז וואָס זענען ספּעציפיש צו די כייפעץ. און מיר האָבן עטלעכע פאַנגקשאַנז וואָס זענען אויך ספּעציפיש צו די כייפעץ. און די פאַנגקשאַנז זענען גערופן מעטהאָדס און די וועריאַבאַלז זענען גערופן פּראָפּערטיעס. עס ס נאָר אַ פאַנטאַזיע נאָמען. בשעת איר פאַקט, יעדער איין מיינונג איר זען בשעת איר עפענען אַ יאָס אַפּ, לאָזן ס נאָר זאָגן טוויטטער אָדער פאַסעבאָאָק, יעדער איין מיינונג איר זען איז אַ כייפעץ. און אַפֿילו די גאנצע אַפּ איז אַן כייפעץ צו אָנהייבן מיט. זייער טשיקאַווע באַגריף. און וואָס טאָן מיר ווילן כייפעץ אָריענטיד פּראָגראַממינג? אזוי איר קענען ימאַדזשאַן אַז ווען איר פּראָגראַם עס געץ שיין קאָמפּליצירט. זאל ס נאָר זאָגן ווען איר ניטאָ ימפּלאַמענינג טשעסבאָרד, די לאָגיק איז געגאנגען צו זייַן טאַקע קאָמפּליצירט. איר האָבן 36 אַנדערש ברעקלעך, אַזוי אַז אויב איר ווילן צו שרייַבן לאָגיק פֿאַר אַלע 36 פאַרשידענע שטיקער אין שאָך, אַז ס געגאנגען צו זייַן אַ פּלאַץ פון פאַרשידענע פאַנגקשאַנז און וועריאַבאַלז. עס ס אַ פּלאַץ פון קאָנפליקט. און מיסטאָמע איר ניטאָ געגאנגען צו שרייַבן אַ פאַרשידענע אופֿן אָדער פאַרשידענע פונקציאָנירן פֿאַר יעדער פון די שטיק צו פּונקט קאָנטראָל וואָס זיי טאָן. אבער אויב איר טאָן כייפעץ אָריענטיד פּראָגראַממינג, אַלע פון ​​די ברעקלעך קענען זייַן פאַרטראָגן אין איינער איין כייפעץ. און די כייפעץ וועט האָבן עטלעכע פּראָסט פּראָפּערטיעס, ווי וואָס מין פון שטיק איז עס? וואָס קאָליר איז עס? ווי קענען עס מאַך? און אין אַז וועג איר האָבן זייער סימפּליפיעד די לאָגיק פון עס. אזוי עס ס נאָר אַ טאַקע גוט וועג צו מאַכן קאָמפּליצירט מגילה, און כייראַרקאַקאַל שייכות ין די פּראָגראַם, זייער פּשוט. ווי מיר ניטאָ געגאנגען צו זען וואָס זייער געשווינד ווען מיר ניטאָ פאקטיש טאן פּראָגראַממינג-- ווען מיר ניטאָ פאקטיש טאן אַ ז קאָד פּראָגראַממינג סעסיע שפּעטער. נו אין דערצו צו אַז, כייפעץ אָריענטיד פּראָגראַממינג איז נאָר אַ פּלאַץ פון שפּאַס. איר גאַט צו פּלאַן דיין אייגן כייפעץ. איר גאַט צו פּלאַן וואָס טוט עס קוק ווי דורך זיך. עס איז ניט קיין רעכט ענטפֿערן צו עס. און עס ס טאָוטאַלי טשיקאַווע. אזוי אין כייפעץ אָריענטיד פּראָגראַממינג, צוויי פונדאַמענטאַל קאַנסעפּס וועט זייַן קלאַס און בייַשפּיל. א סאָרט איז בייסיקלי אַ מוסטער פֿאַר כייפעץ. און אַ בייַשפּיל איז בייסיקלי איינער ספּעציפיש כייפעץ. זאל ס נאָר זאָגן איר ניטאָ געמאכט אַ קיכל. אין דעם פאַל, יעדער איין קיכל איר אַקטשאַוואַלי סוף אַרויף מיט איז געגאנגען צו זיין אַ כייפעץ. אבער די קיכל טעלער איר נוצן צו באַקן אַלע די קיכלעך וועט זייַן אַ סאָרט. א סאָרט איז בייסיקלי אַ מוסטער. און דער בייַשפּיל וועט זיין איינער ספּעציפיש כייפעץ באשאפן אויס פון אַז סאָרט. און אַ בייַשפּיל וועט זייַן באשאפן באזירט אויף סאָרט דעקלאַראַציע, ווי מיר וועט זען אין שפּעטער סליידז. אזוי לאָזן ס פאקטיש טאָן אַ טאַקע שנעל בייַשפּיל [ינאָדאַבאַל]. זאל ס זאָגן מיר רע דיקלערינג אַ כייפעץ פֿאַר אַ קאַץ. די כייפעץ זאָל האַווע-- די קאַץ קלאַס זאָל האָבן עטלעכע פּראָפּערטיעס און מעטהאָדס. וואָס סאָרט פון פּראָפּערטיעס זאָל דער סאָרט האַווע-- זאָל די קאַץ האָבן? פֿאַר בייַשפּיל, קאָליר, עלטער און האָדעווען, יענע וועט זיין וועריאַבאַלז אַז זענען ספּעציפיש צו יעדער קאַץ. און יענע זענען עטלעכע זאכן אַז מיר נוצן צו באַשרייַבן אַ קאַץ. וואָס מין פון מיטל, אָדער וואָס קענען אַ קאַץ טאָן? עטלעכע שנעל ביישפילן וואָלט זייַן יאָגן מויז, עסן פיש אָדער נאָר מיאַו. דאס איז אַ טאַקע שנעל בייַשפּיל פון קאַץ קלאַס. און אַ טאַקע ספּעציפיש קאַץ כייפעץ וועט זיין אַ קאַץ ווו מיר ספּעציפיצירן די קאָליר, די עלטער און האָדעווען. אין אַז פאַל, אונדזער כייפעץ איז ניט מער אַ קלאַס ענימאָר. מיר נאָכמאַכן די מוסטער פון די סאָרט און מיר ספּעציפיצירן יעדער ספּעציפיש אינפֿאָרמאַציע צו אַז ספּעציפיש כייפעץ צו מאַכן עס פרייַ. און ווען איר זענען פאַך אַ אופֿן ין אַ כייפעץ, איר נאָר רופן מיאַו אויף די כייפעץ, וואָס איז די קאַץ איר נאָר באשאפן. מיסטאָמע איר וועט דרוקן אויס עפּעס ווי "העלא וועלט! מיאַו. ​​" שיין קיוט. כל רעכט, לאָזן ס נאָר באַקומען אין עטלעכע פרטים און זען וואָס פּונקט טוט וואס איבערזעצן אין זייַענדיק יאָס פּראָגראַממינג. אזוי אין יאָס פּראָגראַממינג יעדער איין קלאַס וועט זיין ימפּלאַמענטאַד אין צוויי טעקעס. איין טעקע איז דאָ, וואָס איז גערופן די צובינד. אן אנדער טעקע איז דאָ, וואָס איז גערופן ימפּלאַמענטיישאַן. טיפּיקאַללי די צובינד וועט האָבן עקסטענסיאָנ.ה ווי מיר האָבן געזען אין C לייברעריז. און ימפּלאַמענטיישאַן טעקע איז געגאנגען צו האָבן עקסטענסיאָנ.ן. עס ס מין פון טשודנע. אבער .ן מיטל פאקטיש .ק, עס איז קיין פונדאַמענטאַל חילוק צווישן די צוויי. אזוי אין דעם פאַל, מיר קענען זען אַז מיר ניטאָ דיקלערינג צובינד, קאַץ: כייפעץ. אַז איז גערופן ירושה. מיר ניטאָ בייסיקלי ינכעראַטינג די קאַץ סאָרט פון די כייפעץ סאָרט. אזוי יעדער פאַרמאָג און מיטל אַז איז פריער דיפיינד אין די כייפעץ קלאַס וועט זיין אויטאָמאַטיש דיפיינד אין אַ קאַץ סאָרט ווי געזונט. אין דערצו צו אַז, מיר דעפֿינירן קאָליר, האָדעווען, און עלטער, דרייַ וועריאַבאַלז. אַז אַקטשאַוואַלי קוקט ווי עפּעס איר האָבן געטאן איידער. עס קוקט ווי סטרוקט. אַז איז בייסיקלי די סינטאַקס פֿאַר סטרוקט דעקלאַראַציע, און אַז איז טאָוטאַלי ריכטיק. און זינט איך דערמאנט פריער, די חילוק אַ סטרוקט און אַ כייפעץ, איינער פון די פונדאַמענטאַל דיפעראַנסיז איז אַז אַ כייפעץ האט אופֿן, בשעת אַ סטרוקט נאָר האט וועריאַבאַלז. אזוי אין דערצו צו די פּראָפּערטיעס אָדער וועריאַבאַלז מיר ווע באשאפן פֿאַר די כייפעץ, מיר ספּעציפיצירן עטלעכע אופֿן. זאל ס נאָר זאָגן דאָ מיר האָבן צוויי מעטהאָדס, איינער איז מיאַו, אן אנדער איינער איז יאָגן מויז. מיר מיסטאָמע ווילן צו זיין גייט פארביי אַ פּאַראַמעטער באזירט אויף אונדזער פרייַערדיק אופֿן דעקלאַראַציע מוסטער. איר מיסטאָמע ווילן צו זיין גייט פארביי אַ מויז. און איר וועט מיסטאָמע ווילן צו צוריקקומען אַ באָאָל מרמז אויב דיין קאַץ האט הצלחה געכאפט די מויז אָדער ניט. דאס איז די צובינד, אָבער מיר קענען זען אַז די צובינד פאקטיש טוט ניט טאָן עפּעס. עס נאָר דערציילט אַ פּראָגראַם וואָס עקסיסצ-- וואָס יגזיסס אין די קאַץ קלאַס. אזוי אין סדר פֿאַר די פּראָגראַם צו טאָן עפּעס, מיר דאַרפֿן צו האָבן ימפּלאַמענטיישאַן טעקעס. אזוי דאָ, די ערשטער זאַך מיר טאָן איז דאָך מיר אַרייַנפיר די צובינד. נאָך מיר אַרייַנפיר די צובינד, מיר דעפֿינירן דעם אופֿן. זאל ס נאָר זאָגן דאָ מיאַו וואָלט נאָר דרוקן אויס "העלא וועלט!" צו די קאַנסאָול. און נאָך די ימפּלאַמענטיישאַן טעקע, מיר רע שיין פיל געטאן. דאס איז בייסיקלי אַ קלאַס דעקלאַראַציע פֿאַר איין סאָרט. אזוי איצט די קשיא ווערט, ווי טאָן איר דערקלערן אַ בייַטעוודיק? די וועג איר נוצן אַ קלאַס צו שאַפֿן אַ כייפעץ אין אָביעקטיוו C איז געשריבן דאָ. איר ערשטער ספּעציפיצירן אַז דעם איז אַ קאַץ טייַטל, ווייַל יעדער כייפעץ אין אָביעקטיוו C איז לעסאָף ימפּלאַמענטאַד ווי אַ טייַטל. און איר רופן די סאָרט, רופן זיי ווי אַללאָק, וואָס איז בייסיקלי מאַללאָק, טעלינג די אַפּערייטינג סיסטעם אַז איר דאַרפֿן עטלעכע זיקאָרן אָרט פֿאַר דעם כייפעץ. נאָך אַז איר האָבן אַ כייפעץ שוין און איר נאָר ינישאַלייז עס. דאס איז נאָר צוזאַמענפאָר. איך וויסן עס ס איז אַ קליין ביסל טשודנע, אָבער דעם איז פאקטיש ווי עפּל טוט שטאָפּן. אַסיינינג פּראָפּערטיעס איז פאקטיש שיין סטרייטפאָרווערד. עס ס זייער ענלעך צו וואָס איר ניטאָ טאן ווען איר 'רע אַסיינינג עטלעכע ספּעציפיש פעלד ין פון סטרוקט. איר נאָר האָבן די בייַטעוודיק נאָמען, דער פאַרמאָג נאָמען, און באַשטימען אַ ספּעציפיש ווערט צו עס. און פאַך אַ אופֿן איז זייער ענלעך. די פאַך אַ אופֿן איז בייסיקלי וואָס איך רעדן וועגן פֿאַר פאַך קיין אופֿן אין אָביעקטיוו סי איר ניטאָ גייט פארביי אַ כייפעץ, אין דעם פאַל עס ס געגאנגען צו זיין מיקאַט, און איר ניטאָ גייט פארביי די מיטל נאָמען. ווי אויב איר ניטאָ גערעדט צו די כייפעץ, מיקאַט, אַז איר זאָל מיאַו. עס ס שיין טשיקאַווע. נאָך אַז, עס איז איינער מער יקערדיק פּלאַן מוסטער אַז מיר דאַרפֿן צו רעדן וועגן איידער געטינג צו פאַקטיש ד קאָד. אז פּלאַן מוסטער איז גערופן געשעעניש געטריבן פּראָגראַממינג. דאס איז אויך מסתּמא איינער פון די מערסט פונדאַמענטאַל געדאנקען אין יאָס פּראָגראַממינג. אזוי איר מיסטאָמע טאָן ניט וויסן וואָס פּונקט איז די געשעעניש געטריבן פּראָגראַממינג, אָבער עס ס ניט טאַקע אַז סקערי. נו אין פאַקט, איר האָבן שוין געטאן אַז איידער. דאס איז איינער פון די שורות איר ווע מיסטאָמע שוין געשריבן אין די לעצטע [ינאָדאַבאַל] פון קס50, גאָאָגלע.מאַפּס.עווענט.אַדדליסטענער (מאַרקער, "גיט", פונקציאָנירן () {}) :. דורך פאַך דעם שורה איר זענען יסענשאַלי טעלינג די קאָמפּיוטער אַז ווען די געשעעניש גערופן "גיט" כאַפּאַנז אויף די מאַרקער, נוצן אַז פונקציאָנירן. דאס איז זייער אַנדערש פון וואָס איר טאָן אין מאַריאָ.ק. אין מאַריאָ.ק איר נאָר לויפן די פּראָגראַם אַמאָל, עס גיט איר אַ רעזולטאַט, און איר ניטאָ געטאן. דאס זענען סאָרט פון ווי איין שאָס מגילה. ימים געטריבן מגילה זענען זייער, זייער אַנדערש. זאל ס ימאַדזשאַן, אויב פאַסעבאָאָק איז אַ איין שאָס פּראָגראַם עס ס ניט טאַקע גוט. איר נאָר גיין צו פאַסעבאָאָק אַמאָל און עס ס געטאן. עס גיט איר עטלעכע רעזולטאַט און איר קיינמאָל גאַט עס צוריק. איר קיינמאָל גאַט עפּעס מער. אזוי דאָ, ספּעציעל די מוסטער מיר נוצן איז געשעעניש געטריבן, אַזוי אַז יעדער פונקציע וועט זייַן געכאפט באזירט אויף וואָס געשעעניש האט געטראפן. פֿאַר בייַשפּיל, אויב מיר האָבן אַ קנעפּל און מיר ספּעציפיצירן אַז ווען אַז קנעפּל איז קליקט, רופן די פונקציע גערופן "העלא וועלט!" אין אַז וועג מיר קענען טאַקע פירן די פונקציע לאָגיק לויפן אין אַ העכסט פלעקסאַבאַל וועג. די באַניצער קענען טאָן אָדער רופן אַ פונקציאָנירן אַז האט שוין געווען גערופן. עס ס גאָר באזירט אויף וואָס וסערס טאָן. אזוי מיר קענען זען אַז דאָס איז פאקטיש פיל בעסער ווי מאַריאָ.ק. און גוט נייַעס איז אַז עס ס פאקטיש ניט אַ נייַ באַגריף. איר גייז האָבן שוין געטאן אַז אין די לעצטע פּראָבלעם שטעלן. אזוי אין אָביעקטיוו C עס זענען דרייַ פאַרשידענע דייאַגראַמז פֿאַר געשעעניש געטריבן פּראָגראַממינג. די ערשטער דיאַגראַמע איז גערופן ציל אַקציע, ווו איר בינדן אַ קנעפּל דריקן מיט עטלעכע פונקציאָנירן. זאל ס נאָר זאָגן, ווען איר גיט עטלעכע קנעפּל, איר רופן עטלעכע פונקציאָנירן. דאס איז זייער פּשוט ציל קאַמף. די רגע איינער איז פאקטיש די כאַרדאַסט איינער, עס ס גערופן דעלאַגיישאַן אויף פּראָטאָקאָל. מיר ניטאָ געגאנגען צו דערקלערן אַז אין גרויס דעטאַל שפּעטער. און די דריט וועג איז אָנזאָג. דאס איז טאקע נישט זייער וויכטיק ווי ווייַט ווי מיר ניטאָ געזארגט, ווייַל די געלעגנהייַט אַז איר ניטאָ געגאנגען צו נוצן אָנזאָג אין דיין לעצט פּרויעקט איז שיין נידעריק. אזוי מיר ניטאָ געגאנגען צו האָפּקען אַז טייל. און מיר רע געגאנגען צו ונטערטוקנ זיך אין דעלאַגיישאַן אויף פּראָטאָקאָל. אזוי וואָס פּונקט איז אַ פּראָטאָקאָל? אָדער וואָס פּונקט איז אַ דעלאַגיישאַן? זאל ס רעדן וועגן פּראָטאָקאָל צו אָנהייבן מיט. פּראָטאָקאָלס זענען גאָרנישט אָבער געשעענישן. אבער די געשעענישן זענען געגעבן צו איר דורך עפּל צו אָנפאַנגען מיט. פֿאַר בייַשפּיל, איך בין נישט גאָר זיכער ווי פילע פון ​​איר גויס נוצן עפּל ס אָריגינעל אַפּ פּאָסט אָדער קאָנטאַקט, אָבער יעדער צייַט איר מעגילע די טיש און דריקן די ספּעציפיש צעל אויף די טיש, אַז איז אַ פּאַסירונג. און אויב איר ווילן צו טאָן אַז געשעעניש דורך זיך, עס ס פאקטיש אַ קליין ביסל שווער. אזוי עפּל האט געגעבן אַז אַפֿילו צו איר אַזוי אַז איר קענען נאָר גלייַך נוצן די געשעעניש צו טאָן עפּעס אויף דיין אייגן. פּראָטאָקאָלס זענען פאקטיש טאַקע, טאַקע וויידלי געניצט אין אָביעקטיוו סי גוט אין פאַקט, יעדער איין אַפּ האט עפּעס געכאפט אַפּ דעלעגאַט. ין פון יידל איז אַלע פון ​​די פּראָטאָקאָלס פֿאַר לאָודינג די אַפּ. זאל ס נאָר זאָגן עס איז אַ געשעעניש פֿאַר אַפּ האט מאַסע. אזוי וואָס זאָל פּאַסירן נאָך איר ווע באשאפן אַ אַפּ, נאָך איר עפענען די אַפּ, נאָך איר נאָענט די אַפּ, אָדער נאָך איר שטעלן די יפאָנע צו שלאָפן. דאס זענען אַלע געשעענישן וואָס האט שוין געווען געגעבן צו איר. און ערידזשנאַלי ין די פּאַרטיקאַלז עס וועט זיין קיין ימפּלאַמענטיישאַן. עפּל נאָר דערציילט איר אַז דעם פונקציע וועט פּאַסירן ווען עטלעכע געשעעניש כאַפּאַנז, אָבער וואָס איר טאָן מיט וואָס פונקציע איז גאָר אַרויף צו איר. דעלאַגיישאַן איז בייסיקלי טעלינג די סאָרט אַז איר זאָל שעפּן די פּראָטאָקאָלס. עס ס אַ קליין ביסל קאַנפיוזינג, אָבער עס וועט זיין פיל קלירער ווען מיר טאָן די s קאָודז אין קאַמף. דעלאַגיישאַן אויף פּראָטאָקאָל איז פאקטיש אַ העכסט געזונט מעקאַניזאַם אין די געפיל אַז אויב מיר טאָן דעלאַגיישאַן צו אַ ספּעציפיש קלאַס, מיר קענען יסענשאַלי שעפּן אַלע קינדס פון געשעענישן ניצן קיין סאָרט מיר האָבן, זייער באַקוועם געצייַג. אזוי איינער שנעל בייַשפּיל פֿאַר דעלאַגיישאַן אויף פּראָטאָקאָל וועט זיין וואָס איך נאָר גערעדט וועגן. דאס פּראָטאָקאָל ספּאַסיפיקלי איז גערופן טאַבלעוויעוו [ינאָדאַבאַל] אויסקלייַבן ראָלע בייַ [? אינדעקס?] [? פאַרגאַנגענהייַט. ?] אזוי דעם אַ געשעעניש אַז וואָלט זייַן געכאפט ווען איר פאקטיש צאַפּן אויף אַ ספּעציפיש צעל אין דיין טאַבלעוויעוו, לאָזן ס נאָר זאָגן אין דיין פּאָסט אָדער אין דיין קאָנטאַקטן אַפּ. ין אַ פונקציאָנירן דאָרט איז געווען ערידזשנאַלי טאן גאָרנישט. די פונקציע טוט ניט טאָן עפּעס דורך פעליקייַט. אבער איר קענען ספּעציפיצירן וואָס די פונקציע טוט, געגעבן וואָס איר ווילן אויס פון דיין אַפּ. זייער באַקוועם געצייַג. און מיט אַלע וואָס זייַענדיק געזאגט, איך בייסיקלי דעקן עטלעכע זייער יקערדיק סינטאַקס און פונדאַמענטאַל באַגריף פֿאַר אָביעקטיוו C פּראָגראַממינג, און מיר קענען טאָן עטלעכע s קאָד. פיל מער יקסייטינג. אזוי s קאָד איז פאקטיש אַ קליין ביסל אָוווערכוועלמינג ווען איר עפענען עס פֿאַר די ערשטער מאָל. איינער שנעל טאָן, אַזוי אויב איר ווילן צו טאָן יאָס אַנטוויקלונג, איך העכסט רעקאָמענדירן איר האָבן אַ מעק. ווייַל טאן יאָס אַנטוויקלונג אויף Windows איז טאַקע, טאַקע האַרט. עס ס דואַבאַל, אָבער עס ס טאַקע האַרט. און איר באשטימט טאָן ניט ווילן צו נוצן ג רעדאַגירן. אזוי אין s קאָד מיר האָבן עטלעכע פאַרשידענע געביטן. ווען איר ערשטער עפענען אַרויף s קאָד איר וועט זען אַ נאַוויגאַציע געגנט, וואָס בייסיקלי ווייזט איר אַלע די טעקעס אַז איז אין דיין קראַנט פּרויעקט. איר האָבן אַ מכשיר געגנט, וואָס איז בייסיקלי אָנפירונג views, אָדער עטלעכע ביסל שנעל מכשירים וועגן s קאָד זיך. און דעם איז די פאַקטיש רעדאַקטאָר געגנט. דאס געגנט איז זייער ענלעך ג רעדאַגירן, אָבער פיל בעסער ווי ג רעדאַגירן. און אין דעם רעכט געגנט, איז גערופן די נוצן געגנט. די געגנט ווערט טאַקע האַנטיק ווען איר 'רע קריייטינג צובינד אָדער ספּעסאַפייינג עטלעכע שנעל סעטאַפּס פֿאַר דיין אַפּ. און די לעצט געגנט איז די דיבאַגינג. דאס געגנט כּולל די קאַנסאָול. אזוי ווען איר זאָגן פּרינטף, אָדער נסלאָג אין אונדזער פאַל, אַלע דיין רעזולטאַטן זענען געגאנגען צו זייַן געדרוקט דאָ. כל רעכט? איך טרעפן מיר קענען טאַקע געשווינד טאָן אַ בייַשפּיל פֿאַר יאָס פּראָגראַממינג. און לאָזן ס פאקטיש עפענען אַרויף s קאָד. אזוי יעדער צייַט איר עפענען אַרויף s קאָד, עס ס געגאנגען צו ווייַזן זיך עפּעס ווי אַז. עס ס געגאנגען צו פרעגן איר וואָס טאָן איר ווילן צו טאָן? צי איר ווילן צו אָנהייבן עפּעס טראַפ, אַ שפּילפּלאַץ, בייסיקלי איר קענען נאָר פּרובירן קאָד אָן פאקטיש קאַמיטינג צו קיין אַפּ. צי איר ווילן צו שאַפֿן אַ נייַ פּרויעקט? אָדער טאָן איר ווילן צו פאָרזעצן ארבעטן אויף די יגזיסטינג פּרויעקט? אין אונדזער פאַל מיר רע געגאנגען צו שאַפֿן אַ נייַ פּרויעקט. אזוי עס ס טאַקע פייַן, s קאָד פאקטיש האט שוין געגעבן איר עטלעכע טעמפּלאַטעס פֿאַר קריייטינג אַבדזשעקץ. אויב איר ווילן צו טאָן אַ שפּיל, s קאָד פאקטיש האט אַ שפּיל מוסטער פֿאַר איר, האט בלאַט באזירט פּראָגראַמען, קוויטל באזירט אַפּלאַקיישאַן. אין דעם פאַל, מיר רע געגאנגען צו טאָן עפּעס זייער פּשוט, און מיר רע געגאנגען צו נוצן אַ איין מיינונג אַפּלאַקיישאַן. נאָך אַז נאָר וואָס איר ווילן צו רופן דיין פּראָדוקט, און וואָס ס אייער נאָמען, וואָס ס דיין ידענטיפיער, און וואָס שפּראַך טאָן איר נוצן. דאָ מיר טאָן ניט ווילן צו טשעק ניצן קאָר דאַטאַ. קאָר דאַטאַ איז בייסיקלי אַ דאַטאַבאַסינג יאָס. אויב איר טאָן קאָר דאַטאַ, s קאָד איז געגאנגען צו דעפֿינירן אַ פּלאַץ מער קאָמפּליצירט קלאסן פֿאַר איר. אזוי צו האַלטן אַלץ פּשוט, מיר רע נאָר געגאנגען צו טאָן אָן קאָר דאַטאַ רעכט איצט. די פּראָבלעם מיר רע געגאנגען צו זייַן ניצן איז טהאַט-- די פּראָבלעם מיר ניטאָ געגאנגען צו זייַן קריייטינג איז אַז מיר בייסיקלי ווילן צו אַרייַנפיר מאַריאָ פון C צו אַ יאָס אַפּ. אזוי לאָזן ס רופן אַז מאַריאָ-יאָס. דאָך איר ספּעציפיצירן וואָס איר ווילן צו שטעלן אין דיין פּרויעקט. און עס מיר גיין. אזוי דעם איז אַ קליין ביסל אָוווערוועלמינג, אָבער דעם איז פאקטיש וואָס מיר נאָר געזען אויף די סליידז. און דער ערשטער געגנט מיר זען רעכט איצט איז בייסיקלי פּרויעקט קאַנפיגיעריישאַן. אזוי אַלץ איר ווילן צו טאָן פּרויעקט, וואָס מין פון מיטל, לאָזן ס נאָר זאָגן וואָס מין פון מיטל טאָן איר ווילן דיין אַפּ צו דערשייַנען אויף? איז עס יפאָנע, יפּאַד אָדער וניווערסאַל? אזוי מיטל אָריענטירונג, אַלע דעם שטאָפּן. ניט זייער וויכטיק, אָבער קען זיין, אָבער דאָס איז אַ אָרט ווו איר שטעלן אַרויף דיין פּרויעקט אויב איר פאקטיש ווילן צו צעוויקלען צו די עפּל קראָם. כל רעכט, לאָזן ס קוק בייַ עפּעס אַז איז ין אונדזער קאָד. זאל ס גיין דורך דעם טעקע נאַוויגאַטאָר. און די זענען אַלע די טעקעס אַז שוין געקומען מיט דער מוסטער, זייער פייַן. אזוי ווען מיר גיט איינער פון זיי דעם איז וואָס עס קוקט ווי. זייער ענלעך צו ג רעדאַגירן. אבער איר קענען זען אַז די סינטאַקס כיילייטינג איז מיסטאָמע אַ ביסל ביסל ניסער. און עס ס אַקטשאַוואַלי פיל מער שטאַרק ווי ג עדיטינג. און איר קענען אַוטאָ גאַנץ אַ פּלאַץ פון זאכן פֿאַר איר, ווי מיר וועט זען זייער געשווינד. זאל ס עפענען דעם דיבאַגינג געגנט ווי געזונט. כל רעכט, ווי מיר קענען זען, די קאַנסאָול איז רעכט דאָ. דאס איז וואָס איר 'רע געגאנגען צו זען ווו איר ניטאָ אין פּרינטף אָדער נסלאָגינג עפּעס. אזוי אָן ווייַטער האַוועניש, לאָזן ס פאקטיש צונויפנעמען די אַפּ און זען וואָס כאַפּאַנז. איינער יקערדיק שטריך פֿאַר s קאָד, איז אַז s קאָד קומט מיט אַ יפאָנע סימיאַלייטער. אזוי איר טאָן ניט דאַרפֿן צו האָבן אַ יפאָנע צו פּרובירן דיין פּרויעקט, s קאָד קענען סימולירן אַז פֿאַר איר, ווי מיר קענען זען רעכט איצט. עס ס שיין פייַן. עס ס גענומען אַ ביסל ביסל פון צייַט צו צונויפנעמען און בייסיקלי מיר האָבן אַן ליידיק אַפּלאַקיישאַן, וואָס אַקטשאַוואַלי טוט גאָרנישט. אבער עס קאַמפּיילז. עס ס שיין אָסאַם. עס ס פיל בעסער ווי C, כאַ? כל רעכט, דעריבער לאָזן ס פּרובירן צו לייגן עפּעס. איין טעקע אַז איז אַ ביסל ביסל טשודנע דאָ איז גערופן סטאָריבאָרד. דאס איז פאקטיש אַ גרויס, אָסאַם שטריך פֿאַר s קאָד. ווייַל אין s קאָד, איר קענען פאקטיש שלעפּן און פאַלן עלעמענטן אַנטו די צובינד און עס וועט גלייַך ווייַזן אַרויף. זאל ס פּרובירן אַז. מיר פאַלן אַ פירמע דאָ, "העלא וועלט !!!" מיר קענען צענטער אַז. שיין קיל. איצט לאָזן ס לויפן דעם האַלטן סימיאַליישאַן. דאָ מיר האָבן "העלא וועלט !!!" מיר האבן נישט אַפֿילו טאָן קיין קאָודינג נאָך. וואָס די כעק איז געשעעניש? דאס איז ווי שטאַרק צובינד בילדער קענען זיין. עמעצער אַפֿילו געזאגט אַז איר קענען מיסטאָמע נאָר גאַנץ אַ אַפּ אָן שרייבן מיסטאָמע אַ טויזנט שורות פון קאָד נאָר דורך ניצן די צובינד בילדער. אבער עס ס מיסטאָמע נישט די בעסטער וועג צו טאָן עס. איצט לאָזן ס פאקטיש באַקומען אַראָפּ צו קאָודינג. אזוי די סטרוקטור פֿאַר דער טעקע איז פאקטיש טאַקע טשיקאַווע ווייַל, ווי איר זאלן זען, עס איז קיין הויפּט פֿונקציע ערגעץ. זען? ווי מיר דערמאנט פריער, איר קענען זען אַז דעם איז אַ ימפּלאַמענטיישאַן טעקע פֿאַר אַ ספּעציפיש קלאַס. אבער עס איז קיין הויפּט ערגעץ. אזוי ווו איז הויפּט? אַקטואַללי, עס איז אַ הויפּט, אָבער די הויפּט איז פאקטיש פאַרבאָרגן פון איר. די הויפּט איז דאָ. אַז קוקט באַקאַנט. אזוי בייסיקלי וואָס יאָס איז טאן ין הויפּט איז אַז ווען הויפּט איז גערופן, וואָס איז בייסיקלי ווען די אַפּ איז עקסאַקיוטאַד, עס קרעאַטעס אַ כייפעץ גערופן אַפּפּדעלעגאַטע. ווי איך דערמאנט פריער, די גאנצע אַפּ איז פאקטיש אַ כייפעץ דורך זיך. אזוי אין דעם וועג, בייסיקלי די יאָס אַפּ איז טעלינג די קאַמפּיילער אַז גוט, איך בין געגאנגען צו שאַפֿן אַ פּראָדוקט גערופן אַפּפּדעלעגאַטע, און אַז איז געגאנגען צו זיין מיין אַפּ. אזוי איר דאַרפֿן צו גיין דורך אַז אַפּפּדעלעגאַטע און זען וואָס אַז באָכער ס טאן. מייַן אַרבעט איז געטאן פֿאַר מיר. און אין אַפּפּדעלעגאַטע איר קענען זען אַז עס זענען עטלעכע טאַקע טשודנע פאַנגקשאַנז, געזונט פאקטיש מעטהאָדס, אַז עפּל האט שוין געגעבן איר. וואָס זענען די? דאס זענען אַקטשאַוואַלי נאָר פּראָטאָקאָלס אַז איך איז געווען גערעדט וועגן. אזוי די ביסט געשעענישן אַז עפּל האט געגעבן איר צו אָנפאַנגען מיט. עס איז גאָרנישט אין עטלעכע פון די פאַנגקשאַנז רעכט איצט, אָבער אויב מיר ווילן צו ינישאַלייז עפּעס פֿאַר אונדזער אַפּ איידער געטינג אין ווייַזנדיק קיין מיינונג, מיר טאָן אַז דאָ. איר קענען נאָר לייענען די נאָמען און איך טרעפן די געשעעניש איז פאקטיש טאַקע קלאָר. אזוי איצט הויפּט האט באשאפן אַ כייפעץ פֿאַר אַפּפּדעלעגאַטע. און וואָס אַפּפּדעלעגאַטע איז געגאנגען צו טאָן איז טאקע אויך פאַרבאָרגן פון איר. די אַפּפּדעלעגאַטע איז געגאנגען צו אָנהייב לאָודינג די וויעווקאָנטראָללער לאַגער. אזוי עס ס בייסיקלי געגאנגען צו אָנהייבן לאָודינג אַרויף אַלע די קוקן אַז איר האָבן און נאָר ופפירן די מיינונג באזירט אויף די כייעראַרקי. אזוי אין דעם פאַל מיר נאָר האָבן איין מיינונג, וואָס איז דאָ. אזוי אַז איז דער בלויז מיינונג אַז ס געגאנגען צו זייַן גערופן. די וויעווקאָנטראָללער לאָגיק איז רעכט דאָ. דאס איז די קאָד אַז פאקטיש קאָנטראָלס די מיינונג מיר נאָר געזען. כל רעכט, לאָזן ס טאָן עפּעס דאָ. אזוי וויעוודידלאָאַד סאָונדס ווי אַ פּאַסירונג, ווען אין פאַקט דעם איז אויך אַ דעלעגאַט, דעם איז אויך אַ פּראָטאָקאָל. אזוי וועלכער די מיינונג איז לאָודיד, אלץ ין דער פונקציע וועט זייַן גערופן. אין דעם פאַל מיר זאָל זען "העלא טיאַניו! "אויב מיר לויפן די פּראָגראַם. עס ס געטינג אַ ביסל ביסל פּאַמעלעך קאַמפּיילינג סטאָריבאָרד טעקעס. נו טאַקע, מיר טאָן זען אַ רעזולטאַט פֿאַר עס. עס ס שיין קיל. איצט לאָזן ס פאקטיש טאָן מאַריאָ. איך בין געגאנגען צו דעפֿינירן די פונקציאָנירן זייער געשווינד. מאַריאָוויטהלעוועלס: (ינט) הייך רעזולטאַטן. כל רעכט, דעם איז פאקטיש דער אָסאַם שטריך פון s קאָד אַוטאָ קאַמפּלישאַן. אזוי ווען איר שרייַבן פֿאַר און טיפּ אַרייַן, עס האט שוין געגעבן אַרויף די מוסטער פֿאַר איר, וואָס איז שיין קיל. אַז זאָל קוקן טאַקע באַקאַנט צו איר גייז. אנטשולדיגט, וואָס ס מיין שולד. כל רעכט, קיל. אז לאָגיק זאָל קוקן טאַקע באַקאַנט צו איר גייז, ספּעציעל נאָר מאַריאָ. אבער מיר וועלן איצט דרוקן אויס צו די קאַנסאָול יעדער איין מאָל, ווייַל מיר ווילן צו עפעס האַלטן שפּור פון וואָס מיר זענען דרוקן. מיר ניטאָ געגאנגען צו נוצן די רעזולטאַטן עפעס שפּעטער, צו אַרויסווייַזן די דרוק אויס רעזולטאַט צו די באַניצער. אזוי אַנשטאָט מיר רע נאָר נסלאָגגינג אַלץ, וואָס מיר רע סטאָרינג אַלץ אין אַ פונקציאָנירן רופן רעזולטאַט, אָבער די לאָגיק איז פּונקט דער זעלביקער. נאָך מיר ענדיקן עס, מיר נאָר דרוקן אונדזער רעזולטאַטן. און דאָ אַנשטאָט פון דרוקן אויס מיין נאָמען, מיר רע געגאנגען צו רופן אַ פונקציאָנירן. זאל ס זען וואָס כאַפּאַנז. Oops, דאָך. מיר טאָן האָבן אַ פייַן ביסל פּיראַמיד אויס דאָ. דאס איז בייסיקלי C, מיר 'רע נאָר מאַניפּיאַלייטינג ווו איר רופן אַ פונקציאָנירן און ווי טוט אַ פונקציאָנירן קוקן ווי. עס ס גאָרנישט אַנדערש. אבער דעם איז פאקטיש ניט זייער יקסייטינג דאָ, ווייַל מיר ניטאָ ניט געזען עפּעס פון די יפאָנע אַפּ. אזוי אויב איר אַקטשאַוואַלי האָבן אַ יפאָנע אַפּפּ-- אויב איר אַקטשאַוואַלי האָבן מאַריאָ יאָס רעכט איצט, איר ניטאָ ניט געגאנגען צו זען עפּעס אַז האט עפּעס צו טאָן מיט מאַריאָ ווייַל אַלע יענע אַוטפּוץ אין אַ קאַנסאָול זענען פאַרבאָרגן פון אַ באַניצער. דאס איז וואָס איר זען, וואָס איז "העלא וועלט !!!" נישט גוט. איצט לאָזן ס פּרובירן צו מאַכן די באַניצער זען וואָס פּונקט מיר רע דרוקן אויס. אזוי מיר טאָן ניט דאַרפֿן צו פירמע ענימאָר. זאל ס פּרובירן און רעכענען אויס עפּעס אַנדערש אַז קען זיין נוצלעך. עס איז פאקטיש איינער עלעמענט אַז איז גערופן טעקסט פעלד, וואָס קען זייַן זייער נוציק צו אונדז. עס בייסיקלי דיספּלייז אַ געגנט פון טעקסט אַז קענען זיין עדיטיד. אזוי אַז קוקט טאַקע נוציק. איצט לאָזן ס שלעפּן עס און פאַלן עס. וואַו, מיר האָבן אַ טעקסט מיינונג אין אונדזער מיינונג, טאַקע פאַנטאַזיע. אַז ס אַ קליין ביסל צו גרויס. זאל ס מאַכן עס קלענערער. לייגן עס אין צענטער. מאך עס קלענערער ווי געזונט. איצט מיר האָבן אַ טעקסט מיינונג, וואָס מיר קען זיין געניצט צו אַרויסווייַזן אונדזער לעצט רעזולטאַט. אבער רעכט איצט עס ס באשטימט ניט געגאנגען צו אַרבעטן ווייַל עס איז נאָ-- די וויעווקאָנטראָללער מיר נאָר דיפיינד טוט ניט וויסן וואָס עס איז אַ טעקסט מיינונג אויס דאָרט. אזוי מיר דאַרפֿן צו עפעס לינק די טעקסט מיינונג מיר נאָר באשאפן מיט די סאָרט אַז האט שוין קומען מיט אונדז. די וועג מיר טאָן אַז איז פאקטיש טאַקע מאַדזשיקאַל. אזוי עפענען אַרויף סטאָריבאָרד. עס איז אַ ספּעציעל [ינאָדאַבאַל] גערופן [? אַססיסטאַנט?] [ינאָדאַבאַל]. ווען איר גיט אַז, עס ס געגאנגען צו עפענען צוויי טעקעס. איינער איז אַ סאָרט און די אנדערע איינער איז אַ קאָראַספּאַנדינג מיינונג פֿאַר עס. עס ס זייער, זייער נוציק. און לאָזן ס נאָר גייט דורך די .ה טעקע. קאָנטראָל, דעם איז [ינאָדאַבאַל] לאָגיק. דרוק קאָנטראָל און שלעפּן די טעקסט מיינונג אין דער דעקלאַראַציע. מיר ניטאָ געגאנגען צו רופן אַז אָוטפּוטוויעוו. פאַרבינדן. אזוי דאָ מיר האָבן דערקלערט אַ נייַ פאַרמאָג פֿאַר אונדזער וויעווקאָנטראָללער קלאַס. און די נייַ פאַרמאָג איז נאָר די טעקסט מיינונג מיר ווע באשאפן אין די צובינד בנין. אזוי אין אַז וועג מיר קען צוטריט אַלע די דאַטן און מאַניפּולירן אַלץ אַז איז ין די פּראָדוקציע מיינונג, וואָס איז אָסאַם. אזוי אין אונדזער פאַקטיש קאָד, לאָזן ס טאָן עפּעס מיט אים. אזוי דעם צייַט ווען מיר זענען ווי דרוקן אויס די לעצט רעזולטאַט פֿאַר מאַריאָ, מיר ניטאָ אין ניט לאָגינג עפּעס. איך מיינען מיר קען האַלטן די לאָגינג דערקלערונג. אין דערצו צו אַז, מיר שיקן די רידאַוט מיר נאָר באשאפן צו די פּראָדוקציע מיינונג, וואָס איז אַ וי טעקסטוויעוו מיר נאָר באשאפן. איצט לאָזן ס זען וואָס כאַפּאַנז. וואַו. מיר האָבן אַ פּיראַמיד אין די אַפּ רעכט איצט. אזוי דער באַניצער קענען זען אונדזער פּראָדוקציע ווייַל מיר האָבן קאַפּיד דעם רעזולטאַט פון אונדזער קאָד צו אונדזער צובינד. עס ס שיין גוט. עס ס אַקטשאַוואַלי ניט אַז יקסייטינג ווייַל מיר קאַנ-- כל די אַפּ איז טאן איז ווייַזונג אַ פּיראַמיד צו איר, און דאָרט ס גאָרנישט איר קענען טאָן וועגן עס. עס ס ניט דער הויפּט יקסייטינג. אזוי איצט לאָזן ס מאַכן אַ קנעפּל אַז וועט קלאָר די קוקן. מיינט אַז אַ קנעפּל וועט זייַן נוציק. שלעפּן און פאַלן. קנעפּל איינער. קנעפּל צוויי. אזוי ווען מיר גיט די לינקס קנעפּל, די מיינונג זאָל קלאָר. עס זאָל זייַן גאָרנישט אויף די פאַרשטעלן. און ווען מיר גיט די רעכט קנעפּל, מאַריאָ, די מיינונג איז געגאנגען צו דערשייַנען ווידער. אזוי דעם וועג מיר אויך טאָן די מאַגיש שטאָפּן, קאָנטראָל און שלעפּן צו די סאָרט דעקלאַראַציע אין די אַסיסטאַנט דירעקטאָר-- אין די אַסיסטאַנט צוקוקער. אין דעם פאַל מיר זענען ספּעסאַפייינג אַז וואָס זאָל זיין אַ קאַמף. קלעאַרמאַריאָ. אזוי דאָ מיר האָבן שוין באשאפן אַ קאַמף גערופן קלעאַרמאַריאָ, וואָס איז דער אופֿן אַז וואָלט זיין גערופן ווען מיר דריקן די קנעפּל קלאָר. אזוי אין אונדזער פאקטיש קאָד, לאָזן ס נאָר שטעלן די פּראָדוקציע טעקסט און די פּראָדוקציע מיינונג אין גאָרנישט, און אַז וועג עס וועט דערשייַנען צו זיין קלאָר. אין דערצו צו אַז, לאָזן ס שאַפֿן אן אנדער אופֿן גערופן רונמאַריאָ. טאַקע נעבעכדיק, אַז זאָל ניט זיין אַ פאַרמאָג. כל רעכט, אַז זאָל זייַן אַ קאַמף ווי געזונט. און ווען אַז פונקציאָנירן איז גערופן, מיר נאָר לויפן מאַריאָ צען. אַלעווייַ אַז וועט זייַן פייַן. טוט עס צונויפנעמען? יא. איצט מיר האָבן אַ מיינונג. מיר האָבן אַ פּראָדוקציע. און לאָזן ס נאָר זען וואָס כאַפּאַנז. אַז ס פאַרבייַ. עס ס צוריק ווידער. אזוי דאָ מיר האָבן ספּעסאַפייד וואָס מין פון פונקציאָנירן וועט זייַן גערופן ווען מיר דרוקן אין עפּעס, ווען מיר דריקן אַ ספּעציפיש קנעפּל. דאס איז בייסיקלי די ציל קאַמף סכעמע פֿאַר געשעעניש געטריבן פּראָגראַממינג אין אָביעקטיוו סי אין דערצו צו אַז, עס ס ניט זייער יקסייטינג ווייַל מיר קענען ניט טאַקע טוישן ווי הויך דער פּיראַמיד וועט זיין, אַזוי מיר מיסטאָמע ווילן צו עפעס באַקומען אַ אַרייַנשרייַב פון די באַניצער און טוישן די הייך פון די פּיראַמיד באזירט אויף וואָס זיי רעזולטאַט. אזוי מיר ניטאָ געגאנגען צו טאָן אַז. אזוי דעם צייַט ווען מיר רופן רונמאַריאָ, מיר טאָן ניט נאָר רופן מאַריאָ גלייַך. דאס איינער ס טיטל. דעלעגאַט. דאס איז זייער טשיקאַווע. וואָס איז אַ דעלעגאַט? איך בין געגאנגען צו שטעלן זיך דא. און מיר רע געגאנגען צו זען וואָס אַז מיטל שפּעטער. אזוי דאָ מיר האָבן בייסיקלי באשאפן אַ ספּעציפיש בייַשפּיל גערופן אַ וי פלינק מיינונג. א וי פלינק מיינונג איז בייסיקלי וואָס איר וועט זען יעדער צייַט עפּעס פּאַפּס אַרויף און פרעגט איר פֿאַר אַרייַנשרייַב, ווי וואָס וועט פּאַסירן ווען איר ניטאָ טריינג צו קויפן עפּעס אויף אַ אַפּ קראָם. אין דערצו צו אַז, נאָך איר שאַפֿן עס, מיר נאָר ווייַזן די פלינק. כל רעכט, לאָזן ס נאָר געשווינד פּרובירן וועט אַז אַרבעט אָדער נישט. אַז ס זייער קיל. איצט לאָזן ס פאקטיש שאַפֿן אַ אַרייַנשרייַב פעלד פֿאַר די וי פלינק. דאס איז ווי מיר טאָן אַז. און מיר זאָל האָבן אַ אַרייַנשרייַב מיינונג פֿאַר דער פלינק. זייער קיל. זאל ס נאָר זאָגן 10. עס ס ניט טאן עפּעס רעכט איצט ווייַל די רופן פאקטיש האט נישט טוישן פֿאַר עקסאַקיוטינג מאַריאָ. אזוי דעם האט ווערן אַ ביסל ביסל טשודנע ווייַל ווען מיר דרוקן אַ קנעפּל אַראָפּ, ווען מיר פּרעסע אַ קנעפּל אין די פלינק מיינונג, עפּעס זאָל פּאַסירן, אָבער עס טוט נישט פּאַסירן. ווי טאָן מיר כאַפּן אַז? ווי טאָן מיר וויסן אַז אַ באַניצער האט דיסמיסט אַ פלינק מיינונג און שוין אריין אַ נומער, ווייַל רעכט איצט גאָרנישט ס פאקטיש געשעעניש. נו, איר זאל האָבן געסט עס רעכט, דעלאַגיישאַן. אזוי אין דערצו צו אַלע די דעקלעריישאַנז, מיר דאַרפֿן צו לייגן אַ נייַ דעלאַגיישאַן צו עס גערופן וי פלינק מיינונג דעלעגאַט. אזוי אַז יעדער איין ינטעראַקשאַן אָדער געשעעניש אַז מיר ניטאָ געגאנגען צו האָבן מיט די וי פלינק מיינונג איז געגאנגען צו זיין כאַנדאַלד דורך אונדזער סאָרט ווי געזונט. אזוי אין דערצו צו אַז, וועט זיין פלינק מיינונג דריקט קנעפּל בייַ אינדעקס. דאס איז דערגרייכט. אזוי אין אַז פאַל מיר האָבן אַלרעאַדי-- אַזוי מיר האָבן געפונען אויס אַ פּראָטאָקאָל וואס וועט שעפּן די געשעעניש ווען מיר גיט די דאַן קנעפּל אויף די פלינק מיינונג. אזוי יעדער צייַט מיר אָפּזאָגן די פלינק מיינונג, דעם זאָל פאָרקומען. זאל מיר נאָר פּרובירן עס זייער געשווינד. נו טאַקע, מיר האָבן ריטשט דאָ. אזוי דאָ, וואָס מיר וועלן נישט פאקטיש באַקומען איז פאקטיש באַקומען טהע-- אזוי מיר ווילן צו באַקומען אויס די טעקסט אַז מיר האָבן פריער אריין אין די פלינק מיינונג. און באזירט אויף טעקסט, מיר רע געגאנגען צו אַרויסווייַזן מאַריאָ. דאס זייער געשווינד טורנס אויס אויב עס פאקטיש אַרבעט אָדער נישט. אזוי אין אַז פאַל, אויב מיר אַרייַנשרייַב, לאָזן ס זאָגן, 10, מיר זאָל זען 10. זייער גוט, מיר טאָן האָבן אַ נומער דאָ. עס ס שיין גוט. איצט די לעצט שריט וועט בע-- אזוי די לעצט שריט מיר דאַרפֿן צו טאָן רעכט איצט איז נאָר אַ רופן מאַריאָ מיט מדרגה באזירט אויף די אַרייַנשרייַב אַז מיר האָבן שטעלן אין פלינק מיינונג. אזוי מיר דאַרפֿן צו בייַטן דעם שטריקל אין יאָס. סטאַטיק לויפן איז זייער אָסאַם. און דעמאָלט מיר נאָר רופן זיך מאַריאָוויטהלעוועלס ווערט. זאל ס זען וועט אַז פאקטיש אַרבעט אָדער נישט. מיר ניטאָ שוין געגעבן אַ פּיראַמיד. זאל ס פּרובירן צו טוישן די הייך. אַז פאקטיש אַרבעט. עס ס שיין קיל. אזוי אַז איצט איר קענען נאָר אַרייַנשרייַב קיין ווערט איר ווילן. זאל ס נאָר זאָגן פיר. אַז ס שיין אָסאַם. אזוי דעם איז בייסיקלי אַ טאַקע שנעל בייַשפּיל פֿאַר ווי צו שאַפֿן אַ פּרויעקט אין s קאָד און ווי צו טאַקע געשווינד דראָט אַרויף עטלעכע טאַקע פּשוט געשעענישן און פאַנגקשאַנז. אזוי די מקור איז געגאנגען צו זיין שטעלן אָנליין שפּעטער. אזוי אויב איר 'רע אינטערעסירט אין ווי יאָס מאַריאָ מעשים, איך בין געגאנגען צו שטעלן פּונקט דער זעלביקער פראיעקטן אַנטו די קס50 וועבזייַטל שפּעטער. מיר ניטאָ בייסיקלי געטאן מיט די זומער, און איידער מיר ענדיקן איך נאָר וועלן צו פונט איר גייז צו עטלעכע טאַקע אַסאַם רעסורסן אַז זענען בנימצא אָנליין. דאָך די עפּל דאַקיומענטיישאַן איז געגאנגען צו זיין זייער נוציק. אבער אין דערצו צו אַז, איך ספּעציעל רעקאָמענדירן פיר קוועלער, קאָד שול, בוים הויז, אַפּפּקאָדאַ און וווודק ווידיאס. קאָוד שול און בוים הויז זענען צוויי אָנליין דערציונג וועבסיטעס, וואָס ספּאַסיפיקלי פאָקוס אויף ווייכווארג ינזשעניעריע. ספּעציעל פֿאַר קאָד שולע, זיי האָבן טאַקע גוט טוטאָריאַל אויף יאָס. אַז איז אַ טאַקע שנעל בייַשפּיל פֿאַר עס. זיי פאקטיש שאַפֿן אַ טאַקע קוטע-- קוקן בייַ אַז ביסל קיוט יפאָנע דוד איבער דאָרט, עס ס שיין אָסאַם. און די וועג זיי דערקלערן אָביעקטיוו C סינטאַקס איז בישליימעס קלאָר. בוים הויז איז דער זעלביקער. און אַפּפּקאָדאַ איז אַ פאָרום. עס ס אַקטשאַוואַלי אַ בלאָג אַז איז לויפן דורך אַ טאַקע יקספּיריאַנסט אָביעקטיוו C פּראָגראַמיסט. און אַלע די טוטאָריאַלז אין אַפּפּקאָדאַ זענען שיין קורץ און גרינג צו מאַכשער, העכסט רעקאַמענדיד. און אויב איר 'רע אַ דעוועלאָפּער, באשטימט גיין טשעק ווי די וווודק ווידיאס ווו איר קענען לערן וועגן די לעצט יאָס פּראָגראַממינג טעטשניקוועס, אַפּיס און לייברעריז. אזוי אַז איז שיין פיל עס פֿאַר די סעמינאַר. דאנק איר אַזוי פיל. און איך האָפֿן איר האָבן שפּאַס קריייטינג דיין אייגן יאָס אַפּ.