WEBVTT

00:00.110 --> 00:01.220
در این ویدیو برمی‌گردیم.

00:01.220 --> 00:07.190
quizمی‌خواهیم به ساخت اپلیکیشن 
 خود ادامه دهیم و quizبخش‌هایی از کلاس 
 را اضافه کنیم تا بتوانیم یک سوال را روی صفحه نمایش دهیم.

00:07.190 --> 00:10.130
quiz.csپس بیایید یک کلاس جدید بسازیم که آن را 
 می‌نامم.

00:10.130 --> 00:17.390
حالا در این کلاس چه چیزهایی نیاز داریم؟

00:17.390 --> 00:26.390
خب ما باید سوالاتی که می‌خواهیم نمایش دهیم را داشته باشیم و همچنین نمره‌ای که قرار است جمع‌آوری کنیم.

00:26.390 --> 00:27.530
اما بیایید ابتدا با سوال شروع کنیم.

00:27.530 --> 00:31.490
Questionپس اینجا یک آرایه از نوع 
 خواهیم داشت.

00:31.490 --> 00:36.140
questionsو می‌توانیم آن را 
 بنامیم. این نام خوبی است.

00:36.140 --> 00:37.970
constructorایده این است که وقتی از 
 خود استفاده می‌کنیم،

00:37.970 --> 00:51.950
quizیعنی وقتی یک 
 جدید می‌سازیم، می‌خواهیم سوالات quizمستقیماً به 
 ما پاس داده شوند.

00:51.950 --> 00:58.370
questionsپس اینجا می‌گوییم آرایه 
 برابر با سوالاتی است که پاس داده شده‌اند.

01:06.080 --> 01:07.670
ایده همین است.

01:07.700 --> 01:11.090
حالا یک نکته هست که می‌خواهم به شما نشان دهم.

01:11.090 --> 01:13.820
و این در این زمینه بسیار مهم است.

01:13.820 --> 01:16.940
و آن کلیدواژه this است، خوب؟

01:16.940 --> 01:19.340
کلیدواژه this بسیار انعطاف‌پذیر است.

01:19.340 --> 01:21.170
و کاربردهای مختلفی دارد.

01:21.170 --> 01:27.740
اما در این کاربرد خاص، یک کاربرد مشخص دارد و آن این است که می‌گوید

01:27.740 --> 01:38.990
که این قرار است در سوالات کل نمونه باشد، نه در سوالات سازنده ما.

01:38.990 --> 01:40.910
خب، این یعنی چه؟

01:40.910 --> 01:45.680
questionsچون اگر نگاه کنید، می‌بینید که این 
 خاکستری شده است، زیرا این 
questions

01:45.680 --> 01:46.580
هیچ‌گاه استفاده نشده است.

01:46.580 --> 01:49.190
پس خاکستری است چون ما از آن استفاده نکردیم.

01:49.190 --> 01:50.810
اما ما از آن اینجا استفاده کردیم.

01:50.810 --> 01:57.050
questionsمشکل این است که ما از همان نام برای پارامتر 
 استفاده کردیم.

01:57.050 --> 02:02.390
private questionsهمانطور که برای متغیر 
 در سطح کلاس هم استفاده کردیم.

02:02.390 --> 02:02.900
درست است.

02:02.900 --> 02:07.460
questionsپس برای این فیلد، کامپایلر ما نمی‌داند که این 
 سمت چپ

02:07.460 --> 02:11.180
questionsباید همان 
 تعریف‌شده در بالای کلاس باشد.

02:11.180 --> 02:18.200
اگر می‌خواهم مطمئن شوم که کامپایلر آن را درست می‌فهمد، اضافه کنم.this.باید قبل از نام آن 

02:18.200 --> 02:22.760
حالا می‌بینید اگر روی آن کلیک کنم، می‌گوید که این همان 
 کلاس استquestions

02:22.760 --> 02:26.030
نیست.questionsپس دیگر این پارامتر 
 
02:26.030 --> 02:29.960
questionsمی‌بینید که پارامتر 
 اکنون مشخص شده است.

02:29.960 --> 02:32.390
اگر روی این کلیک کنم، آن یکی مشخص می‌شود.

02:32.390 --> 02:34.640
پس می‌بینید که به هم متصل هستند.

02:34.640 --> 02:42.740
thisپس کلیدواژه 
 در واقع می‌گوید: "می‌خواهم از متغیری به questionsنام 
استquiz استفاده کنی که متعلق به کلاس 
 
02:42.740 --> 02:52.730
و نه از متغیری که به عنوان پارامتر به من ."

02:52.760 --> 02:53.150
داده شده است

02:53.150 --> 02:54.800
مثل این پارامتر questions.

02:54.800 --> 03:00.650
پس حالا چیزی که می‌گوییم این است که هر چیزی که به عنوان آرگومان به quizسازنده کلاس 
 من می‌دهید،

03:00.650 --> 03:05.540
quiz  هر زمان که یک 
questions جدید ایجاد می‌کنید، 
ی که به من می‌دهید را در

03:05.540 --> 03:10.670
ی که این فیلد questions
در بالا دارم ذخیره می‌کنم.private
 
03:10.670 --> 03:11.270
خوب.

03:11.270 --> 03:14.510
thisپس حالا دیدید چگونه از کلیدواژه 
 استفاده کنید.

03:14.510 --> 03:16.190
این یکی از کاربردهای آن است.

03:16.190 --> 03:18.200
کاربردهای زیادی برای آن وجود دارد.

03:18.200 --> 03:21.470
اما من همینجا از آن استفاده می‌کنم.

