WEBVTT

00:00.110 --> 00:00.860
خوش آمدید.

00:00.860 --> 00:03.800
در این ویدیو می‌خواهیم متغیرهای عضو را بررسی کنیم.

00:03.800 --> 00:07.430
و کمی بیشتر به سازنده نگاه کنیم.

00:07.430 --> 00:11.510
هستم.car.csمن داخل فایل 

00:11.510 --> 00:15.590
و اینجا می‌خواهم یک متغیر عضو بسازم.

00:15.590 --> 00:17.690
خب متغیر عضو چیست؟

00:17.690 --> 00:21.470
این یک فیلد داخل یک کلاس است.

00:21.470 --> 00:25.610
یعنی متغیری که داخل کلاس است ولی بیرون از متدها.

00:25.610 --> 00:32.690
مثلاً یک رشته دارم که می‌خواهم اسمش را model بگذارم.

00:32.690 --> 00:36.860
می‌خواهم مدل یک ماشین را بدانم.

00:36.860 --> 00:40.040
بروید می‌گوید فیلد.modelاگر روی 
 
00:40.040 --> 00:46.460
پس اگر از یک فیلد داخل کلاسی که می‌سازید استفاده کنید، آن متغیر عضو آن کلاس است.

00:46.460 --> 00:47.030
کلاس.

00:47.030 --> 00:51.470
پس model الان یک متغیر عضو کلاس car است.

00:51.470 --> 00:55.130
و دارد چیزی درباره آن کلاس تعریف می‌کند.

00:55.130 --> 01:00.110
در اینجا دارد مدل ماشین را مشخص می‌کند.

01:00.110 --> 01:07.700
معمولاً برای نام‌گذاری، روش‌های مختلفی وجود دارد.

01:07.700 --> 01:08.510
صحیح.

01:08.540 --> 01:13.220
یک روش رایج این است که قبل از نام متغیر یک آندرلاین بگذارید.

01:13.220 --> 01:18.860
privateو نکته مهم این است که کلمه کلیدی 
 را هم اضافه کنیم.

01:18.860 --> 01:26.060
این متغیر را از دیگر کلاس‌ها پنهان می‌کند.privateکلمه 

01:26.060 --> 01:26.900
خب.

01:26.900 --> 01:30.080
این را در ویدیوی بعدی می‌بینیم.

01:30.080 --> 01:39.110
فعلاً فقط می‌خواهم چیزی داشته باشیم که بتواند هر شیء از کلاس car را متفاوت کند،

01:39.110 --> 01:44.450
چون الان فرقی بین یک شیء Audi یا BMW نیست.

01:44.450 --> 01:49.490
Audiولی می‌خواهم تفاوت داشته باشند. مثلاً 
 بداند مدلش چیست.

01:49.490 --> 01:54.350
BMWو 
 هم بداند مدلش چیست. این متغیر باید همین را نگه دارد.

01:54.350 --> 01:58.970
خب حالا چطور می‌توانم از این متغیر استفاده کنم؟

02:01.790 --> 02:05.630
می‌توانم داخل سازنده از آن استفاده کنم.

02:05.630 --> 02:07.580
درباره سازنده چه گفتیم؟

02:07.610 --> 02:14.360
سازنده وقتی اجرا می‌شود که یک شیء از کلاس ساخته می‌شود. اینجا از کلاس car.

02:15.050 --> 02:20.510
modelپس می‌خواهم 
 هنگام ساخت شیء تعریف شود.

02:20.510 --> 02:28.640
carوقتی شیء جدید 
 ساخته می‌شود می‌توان داده به سازنده پاس داد.

02:28.640 --> 02:31.460
مثلاً یک رشته model.

02:31.460 --> 02:39.530
modelو آن 
 همان چیزی است که کاربر وارد می‌کند.

02:39.530 --> 02:44.870
و من آن را در این متغیر عضو خصوصی ذخیره می‌کنم.

02:44.870 --> 02:52.130
این پارامتری است که در سازنده car استفاده می‌کنم، یعنی هنگام ساختن شیء باید داده بدهید.

02:55.880 --> 02:57.560
مثلاً می‌توانم بگویم Audi A3.

03:02.510 --> 03:06.110
و برای BMW بگویم i7.

03:06.890 --> 03:12.740
حالا می‌خواهم از این اطلاعات استفاده کنم تا چیزی متفاوت روی کنسول چاپ کنم.

03:12.740 --> 03:18.560
اینجا می‌گویم: ماشینی با مدل...

03:18.560 --> 03:22.400
و بعد نام مدل ساخته شد.

03:22.400 --> 03:25.760
به علاوه _model ساخته شد.

03:26.540 --> 03:30.170
بگذارید در دو خط بنویسم تا خواناتر شود.

03:31.670 --> 03:37.910
پس وقتی car می‌سازید باید اطلاعات مدل را بدهید.

03:38.630 --> 03:45.290
و وقتی مدل ماشین را از بیرون می‌دهید، من آن را در متغیر خصوصی ذخیره می‌کنم.

03:51.230 --> 03:55.250
و اینجا روی کنسول چاپش می‌کنم.

03:55.250 --> 04:00.290
اگر اجرا کنم، می‌بینیم دو ماشین ساخته شدند.

04:00.290 --> 04:07.250
یکی می‌گوید ماشینی با مدل A3 ساخته شد، و دیگری می‌گوید ماشینی با مدل i7 ساخته شد.

04:07.910 --> 04:11.300
خب، می‌توانیم برند را هم اضافه کنیم.

04:11.300 --> 04:14.090
این تمرین برای شماست.

04:14.120 --> 04:22.130
carچطور می‌توانید با دو پارامتر، کلاس 
 را تغییر دهید تا علاوه بر مدل، برند را هم داشته باشد؟

04:28.070 --> 04:30.740
خب، امیدوارم ویدیو را متوقف کرده باشید.

04:30.740 --> 04:32.600
اگر نکردید، همین حالا این کار را بکنید.

04:32.600 --> 04:38.090
می‌توانیم علاوه بر model، برند هم بگیریم.

04:38.090 --> 04:40.160
یعنی string brand.

04:40.490 --> 04:45.020
حالا یک متغیر عضو خصوصی دیگر می‌سازم.

04:45.020 --> 04:51.710
_brandاین یکی می‌شود 
 که ابتدا یک رشته خالی است.

04:51.710 --> 04:54.050
را در آن ذخیره می‌کنم.brandو بعد 
 
04:56.390 --> 04:59.270
و بعد می‌گویم یک...

05:02.780 --> 05:09.140
خب، یک برند از مدل ... ساخته شد.

05:15.590 --> 05:20.060
brand یا _brandفرقی ندارد از 
 استفاده کنیم.

05:20.060 --> 05:23.840
ولی بهتر است همان متغیر عضو را استفاده کنیم.

05:27.380 --> 05:31.460
پس می‌گوییم یک برند از مدل ساخته شد.

05:33.200 --> 05:40.760
اگر دوباره اجرا کنیم، باید برویم و نحوه مقداردهی اولیه car را تغییر دهیم،

05:40.760 --> 05:45.290
چون الان خطا می‌دهد و دو رشته می‌خواهد: model و brand.

05:49.850 --> 05:51.290
پس یکی می‌شود Audi.

05:51.470 --> 05:56.570
و دیگری می‌شود BMW.

05:56.570 --> 06:00.860
حالا دوباره اجرا می‌کنیم و می‌بینیم Audi.

06:02.120 --> 06:09.230
باید یک "an" اضافه کنیم. مثلاً: یک Audi با مدل A3 ساخته شد، و یک BMW با مدل i7 ساخته شد.

06:09.230 --> 06:14.630
پس ما سازنده سفارشی خودمان را ساختیم.

06:14.630 --> 06:19.880
این سازنده سفارشی چه فرقی با بقیه دارد؟

06:19.880 --> 06:23.090
این را بعداً بررسی می‌کنیم.

06:23.090 --> 06:29.750
فعلاً باید به یاد داشته باشید که متغیر عضو داریم که با آندرلاین نام‌گذاری می‌کنیم

06:29.750 --> 06:36.230
privateو آن‌ها را 
 می‌کنیم تا از دید بقیه کلاس‌ها پنهان شوند.

06:36.980 --> 06:45.200
bmw._modelیعنی نمی‌توانم مثلاً 
 را مستقیماً دسترسی بزنم.

06:48.740 --> 06:53.090
ولی بعداً می‌بینیم چطور می‌شود این را تغییر داد.

06:55.340 --> 07:04.580
و دیدیم که چطور سازنده را تغییر دادیم تا یک یا دو پارامتر بگیرد.

07:05.180 --> 07:07.070
خب، این ویدیو تمام شد.

07:07.070 --> 07:13.730
در ویدیوی بعدی می‌بینیم چطور می‌توانیم پنهان بودن متغیر عضو را تغییر دهیم.

07:13.730 --> 07:16.970
مثلاً چطور می‌شود متغیر عضو را قابل دسترس کرد.
