CodeGym /وبلاگ جاوا /Random-FA /سطح قدیمی 02
John Squirrels
مرحله
San Francisco

سطح قدیمی 02

در گروه منتشر شد

CodeGym – یادگیری برنامه نویسی در جاوا

سطح قدیمی 02 - 1یک روش کاملاً جدید برای مطالعه برنامه نویسی و تحصیل چگونه است؟ این شبیه چیزی نیست که قبلاً دیده اید. در مورد یادگیری، جایی که شما یک هدف، وسیله و نتیجه دارید چطور؟ خوشحالم که دوره های جدید برنامه نویسی آنلاین برای یادگیری جاوا را به شما معرفی می کنم.

1 آموزش یک بازی آنلاین است

شما وظیفه ای را بر عهده می گیرید، آن را اجرا می کنید و جایزه می گیرید. فکر می کنم برای شما واضح و رایج است. کارها بسیار متنوع هستند: خواندن کد، حل کارها، فیلم ها-درس ها، تصحیح خطاها در کد، افزودن ویژگی های جدید، کارهای بزرگ، نوشتن بازی ها و بسیاری موارد دیگر.

2 فقط موارد ضروری

برای اینکه دوره 5 سال طول نکشد ، همه مفید را دور ریختم و فقط موارد ضروری را از آن جا گذاشتم. من ده ها شغل خالی در بازار کار را تجزیه و تحلیل کردم. تمام موضوعاتی که افراد تازه کار باید بدانند تا شغل توسعه دهنده جونیور جاوا را بدانند در این دوره گنجانده شده است.

3 من به طور کامل به آموزش شما نزدیک شده ام

یک دوره کامل شامل 500 سخنرانی کوچک و 1200 (!) کار عملی است . وظایف کوچک هستند، اما متعدد هستند. تعداد زیادی از آنها وجود دارد. فقط همین حداقل، با انجام آن، چنین تجربه ارزشمندی به دست خواهید آورد. همچنین کار به صورت جفت، بازی های مختلف، کارهای بزرگ، پروژه های واقعی و انواع دیگر تمرین وجود دارد.

4 نمی توانید بازی را تمام کنید و توسعه دهنده نشوید

دوره شامل 40 سطح است. شما می توانید به سطح بعدی بروید، تنها در صورتی که بخش بیشتری از وظایف را در سطح فعلی حل کرده باشید. شروع از کم و آسان، پایان دادن به بزرگ و بسیار مفید. هر فردی که به پایان برسد 300-500 ساعت تجربه عملی خواهد داشت. و این شانس بزرگی برای برنده شدن می دهد. و برای یافتن شغل.

5 آماده سازی مصاحبه شغلی هدفمند

10 سطح آخر به نوشتن رزومه، آمادگی برای مصاحبه و کسب مهارت های کار تیمی اختصاص دارد. فیلم مصاحبه های شغلی و تحلیل آنها اضافه خواهد شد. خوب و مطمئناً سؤالات معمولی در مصاحبه با پاسخ. سطح قدیمی 02 - 2

6 می توانید وظایف را مستقیماً در سایت حل کنید

بسیار مفید و موثر است. پس از تجزیه و تحلیل یک کار جدید در سخنرانی، باید آن را با قیاس درست در اینجا، در سایت انجام دهید. برای کسانی که می خواهند کار را در IDE انجام دهند افزونه ای وجود دارد که به شما امکان می دهد یک کار را با دو کلیک دریافت کنید و آن را برای بررسی در یک کلیک تحویل دهید . سخنرانی ها، تجزیه و تحلیل مثال ها، حل وظایف به طور مستقیم در یک وب سایت، حل وظایف در IDE - شکاف بین تئوری و عمل به اندازه قبل نازک است.

7 بررسی کار فوری (در کمتر از ثانیه)

آیا با شرایطی آشنا هستید که یک کار/کار را برای بررسی تحویل داده اید و باید یک هفته منتظر نتیجه بمانید، زیرا شخصی که آن را بررسی می کند مشغول است؟ این فقط در مورد اکثر دوره های آفلاین است. در CodeGym، پس از فشار دادن دکمه «Execute/Check»، نتایج حاصل از کامپایل و بررسی راه حل وظیفه خود را در کمتر از یک ثانیه دریافت خواهید کرد.

8 CodeGym آن را دوست دارد، زمانی که در طول مطالعه در فیس بوک وقت می گذرانید

در فیس بوک یک صفحه اختصاص داده شده به پروژه وجود دارد. در آن می توانید مقالات فنی جالب، داستان های انگیزشی، اخبار CodeGym و بسیاری از اطلاعات مفید دیگر را بیابید.

9 پوشش

در سخنرانی‌ها به وب‌سایت‌های مختلف ارجاع داده می‌شود که می‌توانید توضیحات سایر اساتید را در آنجا بخوانید. هدف من این است که شما مطالب را درک کنید، نه اینکه فقط به من گوش دهید.

10 برای تبدیل شدن به یک توسعه دهنده فقط به مغز و کامپیوتر خود نیاز دارید

بسته به مدت زمانی که تمرین می کنید، 3 تا 6 ماه طول می کشد.

11 پشتیبانی

سطح قدیمی 02 - 3بدون شک وقتی با هزاران کار روبرو می شوید، سوالاتی پیش خواهند آمد. ما یک سرویس ویژه ایجاد کرده‌ایم که در آن می‌توانید در مورد وظایف سؤال بپرسید. سایر دانشجویان CodeGym، ناظران، داوطلبان و اعضای موسس این سرویس به شما پاسخ خواهند داد.

12 انجمن

ما معتقدیم که قدرت در وحدت است. بنابراین ما انجمنی را ایجاد کردیم که در آن می توانید سوالات خود را بپرسید. بحث در مورد موضوعات مختلف، به اشتراک گذاری مقالات و وبلاگ. علاوه بر این، یک جامعه مکان ایده آلی برای یافتن شغل از روی آشنایی است. بنابراین با خیال راحت سوالات هوشمندانه بپرسید و پاسخ های هوشمندانه بدهید. هر چه شما فعال تر رفتار کنید و به دیگران کمک کنید، شانس بیشتری برای عضویت در پروژه آنها به شما پیشنهاد می شود.

شما به سطح جدیدی رسیده اید

سطح 2

سطح قدیمی 02 - 4

1 الی، اساس همه

- هی، آمیگو. امروز می خواهم به شما بگویم که یک برنامه جاوای معمولی چگونه ساختار یافته است. نکته این است که هر برنامه جاوا از کلاس ها و اشیاء تشکیل شده است . - من قبلاً می دانم چه کلاس هایی هستند. و اشیاء چیست؟ - به قیاس با ساخت یک کشتی کوچک، ابتدا باید یک نقشه بکشید و سپس آن را به کارخانه کشتی سازی بدهید. بر اساس این نقشه یک کشتی مونتاژ خواهد شد. یا پنج کشتی در واقع هر تعداد که بخواهید. ده ها کشتی یکسان بر اساس یک نقاشی ساخته شده اند، همه چیز در مورد این است! - همه چیز در برنامه نویسی جاوا دقیقاً یکسان است. - برنامه نویس مانند یک مهندس طراح است. و اگر مهندس طراح مجبور باشد نقشه هایی بسازد، برنامه نویس جاوا باید کلاس بنویسد. سپس قطعات بر اساس نقشه ها ساخته می شوند و اشیا بر اساس کلاس ها ساخته می شوند. - ابتدا کلاس ها را می نویسیم (نقاشی انجام می دهیم) و بعداً در زمان اجرای برنامه، ماشین مجازی جاوا با استفاده از این کلاس ها اشیاء ایجاد می کند. کشتی ها درست به همین شکل ساخته می شوند. یک نقاشی و تعداد زیادی کشتی وجود دارد. کشتی های مختلفی وجود دارند که نام های مختلفی دارند و محموله های مختلفی را حمل می کنند. با این حال، آنها بسیار شبیه به هم هستند: همه آنها ساختار یکسانی دارند و می توانند وظایف یکسانی را انجام دهند. - در مورد کشتی ها، همه چیز روشن است. یکی دوتا مقایسه دیگه به ​​من بدید تا بفهمم موضوع دقیقا چیه؟ - مطمئن. به عنوان مثال، زنبورها ... سطح قدیمی 02 - 5- اوه نه، یک لحظه صبر کنید، زنبورها چیز بدی را به من یادآوری می کنند. بهتر است به یک لانه مورچه فکر کنید. - یک مورچه نمونه خوبی از برهمکنش شی است. در ساده ترین مورچه مورچه ها سه دسته وجود دارد: ملکه، سرباز و مورچه کارگر. تعداد مورچه ها برای هر کلاس تفاوت دارد. ملکه در لانه تنهاست. تعداد زیادی سرباز و صدها مورچه کارگر وجود دارد. بنابراین، می توان گفت، سه کلاس و صدها شی وجود دارد. مورچه ها با همان مورچه ها و مورچه های طبقات دیگر طبق قوانین سختگیرانه با یکدیگر ارتباط برقرار می کنند. - این یک مثال کامل است. برای یک برنامه معمولی، همه چیز یکسان است. یک شی اصلی، اشیایی از تمام کلاس های دیگر را ایجاد می کند. اشیاء شروع به تعامل با یکدیگر و "جهان بیرونی" یک برنامه می کنند. رفتار اشیا در داخل آنها کدگذاری شده است. - من خیلی نمی فهمم. بلکه اصلا نمی فهمد. - این دو توضیح روی های مختلف یک سکه هستند. حقیقت جایی در این بین است. مثال اول (نمونه با طراحی و ships) رابطه بین کلاس و اشیاء این کلاس را نشان می دهد. شباهت بسیار نزدیک است. مثال دوم (مثلا با anthill) رابطه بین کلاس های نوشته شده و اشیایی که در زمان اجرا وجود دارند را نشان می دهد. - منظورتان این است که ابتدا باید برای تمام اشیاء موجود در یک برنامه کلاس بنویسیم و علاوه بر این، تعامل آنها را توضیح دهیم؟ - بله، اما ساده تر از چیزی است که به نظر می رسد. در جاوا، همه چیزها در زمان اجرای برنامه، اشیا هستند، و زمانی که برنامه را می نویسید، باید راه های مختلف تعامل اشیا را توضیح دهید. اشیاء فقط متدهای یکدیگر را فراخوانی می کنند و داده های لازم را به آنها ارسال می کنند. - واضح نیست، اما تقریباً واضح است. - اما چگونه می دانید چه متدهایی را فراخوانی کنید و چه داده هایی را باید به متدها منتقل کنید؟ - هر کلاس توضیحات خود را دارد تا مشخص کند کلاس برای چه چیزی ایجاد شده است. هر روش به همین ترتیب شرح خود را از آنچه انجام می دهد و چه داده هایی باید به آن ارسال شود دارد. برای استفاده از کلاس، باید به طور کلی بدانید که چه کاری انجام می دهد. علاوه بر این، باید بدانید که هر متد این کلاس دقیقاً چه کاری انجام می دهد. اما لازم نیست بدانید چگونه این کار انجام می شود . این یک نوع از معجزه است. - هامف به نظر می رسد.   - در اینجا، به کد کلاسی که یک فایل را کپی می کند نگاهی بیندازید: سطح قدیمی 02 - 6- به این راحتی نیست، اما من قبلاً عکس را دریافت کرده ام. - خوب. بعداً می بینمت، تمساح!

2 Risha، متغیرها و انواع اولیه

- هی تو، نیروی کار مجانی. - یعنی «سلام آمیگو». می خواهم شما را با ساختار داخلی متغیرها آشنا کنم. قبلاً می دانید که هر متغیر دارای یک حافظه مرتبط با آن است، جایی که متغیر مقدار خود را ذخیره می کند. - آره دفعه قبل گفتی - خوب. خیلی خوبه که یادت میره بعد ادامه میدم - کلاس ها . وقتی یک کلاس جدید را در یک برنامه توصیف می کنیم، به این معنی است که یک نوع ترکیب پیچیده جدید را اعلام می کنیم ، که داده ها یا انواع پیچیده دیگر یا انواع اولیه خواهند بود. سطح قدیمی 02 - 7- هنوز برای تعجب روشن است. - از آنجایی که انواع بزرگ (پیچیده) از تعداد زیادی کوچک (ابتدایی) تشکیل شده است، اشیاء آنها از حافظه زیادی استفاده می کنند. بیشتر از معمول متغیرهای نوع اولیه. گاهی خیلی بیشتر. تخصیص متغیرهای انواع پیچیده زمان زیادی را صرف کرد و نیاز به کپی کردن مقادیر زیادی از حافظه داشت. به همین دلیل است که متغیرهای نوع پیچیده نه خود شی، بلکه یک مرجع صرف شی (که یک آدرس چهار بایتی است) را ذخیره می کند. این برای دسترسی به داده های شی کافی است. JVM تمام مشکلات مربوط به آن را بر عهده می گیرد. - متوجه نمیشم - قبلاً بحث کردیم که متغیر مانند یک جعبه است. برای ذخیره 13 در آن می توانید عدد را روی یک برگه بنویسید و در جعبه قرار دهید. - حالا تصور کنید که باید در یک جعبه (متغیر) چیزی کمی بزرگتر ذخیره کنید. به عنوان مثال، یک سگ، یک ماشین یا همسایه شما جو. به عنوان ساده‌تر، می‌توانید یک کار آسان انجام دهید: عکس سگ را به جای سگ، شماره ماشین را به جای ماشین، و شماره تلفن جو را به جای خود جو روی یک برگه کاغذ قرار دهید. - حالا یک تکه کاغذ برمی داریم و شماره تلفن جو را روی آن می نویسیم. این مانند یک مرجع شی است. اگر برگه‌ای را که شماره جو روی آن نوشته شده است بیرون بیاوریم، کپی کنیم و در چند جعبه قرار دهیم، ارجاعات به جو افزایش می‌یابد، اما فقط یک جو وجود دارد. - مزیت چنین ذخیره سازی داده ها این است که می تواند مراجع زیادی و فقط یک شی وجود داشته باشد . - هیجان انگیز است. اتفاقا من تقریبا فهمیدم. فقط به یک سوال دیگر پاسخ دهید: اگر یک متغیر نوع مختلط را به متغیر نوع پیچیده دیگری اختصاص دهم چه اتفاقی می افتد؟ - سپس این دو متغیر دارای یک آدرس خواهند بود. و بنابراین، اگر داده های ذخیره شده در یک متغیر نوع پیچیده را تغییر دهید، داده های دیگری نیز تغییر خواهد کرد . از آنجا که می دانید ، واقعاً تنها یک شی وجود دارد که متغیرها به آن ارجاع می دهند. با این وجود، ممکن است تعداد زیادی از متغیرها وجود داشته باشند که ارجاعات به شی را ذخیره می کنند. - و چه چیزی در متغیرهای نوع مختلط (نوع مرجع/کلاس) ذخیره می شود در حالی که هیچ مرجع شی وجود ندارد؟ آیا واقعاً چنین چیزی وجود دارد؟ - بله، آمیگو. تو کلمات را از دهانم بیرون آوردی که می تواند باشد. اگر هیچ مرجع شی در متغیر نوع مرجع (مختلط) وجود نداشته باشد، null را ذخیره می کند ، یک «مرجع تهی» ویژه. در واقع، به سادگی آدرس یک شی را برابر با 0 ذخیره می کند. اما ماشین مجازی جاوا هرگز اشیایی با آدرس صفر ایجاد نمی کند، بنابراین همیشه می داند که اگر متغیر مرجع 0 باشد، هیچ شیئی در آنجا وجود ندارد. سطح قدیمی 02 - 8آیا درست می فهمم؟ متغیرها به دو نوع اولیه و مرجع تقسیم می شوند. یک متغیر نوع اولیه یک مقدار را ذخیره می کند در حالی که متغیر نوع مرجع یک مرجع شی را ذخیره می کند. انواع اولیه عبارتند از int، char، boolean و برخی دیگر. بقیه متغیرهای مرجع هستند، آنها با استفاده از کلاس ها تشکیل می شوند. - درسته پسر.

3 الی، چه اشیاء هستند

سطح قدیمی 02 - 9- اینجا دوباره معلم مورد علاقه شماست. از آنجایی که ما سریع جلو می رویم، به شما می گویم که اشیا چیست و چگونه با آنها برخورد کنید. - برای ایجاد هر شی، باید نام نوع شی (کلاس) و کلمه کلیدی new را قبل از آن بنویسید. بگویید ما یک کلاس Cat داریم، سپس: سطح قدیمی 02 - 10- اگر فقط یک شی را ایجاد کنید و آن را [مرجع آن] به هیچ متغیری نسبت ندهید، چه اتفاقی می‌افتد؟ - اگر این کار را انجام دهید، ماشین مجازی جاوا شی را ایجاد می کند و بلافاصله آن را زباله (شیء استفاده نشده) اعلام می کند. پس از مدتی، آن شی را در حین جمع آوری زباله حذف می کند. - در صورتی که دیگر به آن نیازی نداشته باشم چگونه می توانم آن شی را از بین ببرم؟ - نمی تونی به محض اینکه هیچ متغیری برای ذخیره یک مرجع شی وجود نداشته باشد، شی به عنوان زباله علامت گذاری می شود و JVM آن را در طول جمع آوری زباله بعدی از بین می برد. تا زمانی که حداقل یک مرجع شی وجود داشته باشد، آن را زنده در نظر گرفته و از بین نخواهد رفت. هنگامی که می خواهید به سرعت شی را از بین ببرید، تمام ارجاعات آن را روی null قرار دهید، یعنی به همه متغیرهایی که به آن شی اشاره می کنند یک مقدار null اختصاص دهید. - فهمیدم. بعد از سخنرانی های قبلی اصلاً سخت به نظر نمی رسد. - بسیار خوب، پس در اینجا چند کار برای شما وجود دارد تا مهارت های خود را بهبود بخشید. اینها نیز در System.out هستند. اما بعداً موارد دشوارتری وجود خواهد داشت. و شما می توانید به ما نشان دهید که از چه فولادی ساخته شده اید.
وظایف
1 برنامه ای بنویسید که نمایش دهد: «گام به گام و کار انجام شد».
2 برنامه ای بنویسید که 7 بار نمایش داده شود: «انجام غیرممکن ها به نوعی سرگرم کننده است».
3 برنامه ای بنویسید که نمایش دهد: «همیشه می خواهید چیز مفیدی یاد بگیرید.»

4 ریشا، مشاهده متغیرها.

- سلام دانش آموز مورد علاقه من. اکنون در مورد قابلیت مشاهده متغیرها به شما می گویم . - چرا، آیا متغیرهای نامرئی هم وجود دارند؟ - خیر، متغیرها در جاهایی از کد قابل مشاهده هستند که می توان به آن متغیر دسترسی داشت. برخی از متغیرها را می توان از هر جایی در برنامه دسترسی داشت، برخی دیگر فقط در کلاس خود و برخی از متغیرها را فقط در یک متد می توان به آن دسترسی داشت. - به عنوان مثال، شما نمی توانید قبل از اعلام متغیر به آن مراجعه کنید. - واضح است. - در اینجا چند مثال آورده شده است: سطح قدیمی 02 - 111 یک متغیر اعلام شده در یک متد وجود دارد / از ابتدای اعلان تا انتهای متد قابل مشاهده است. 2 یک متغیر اعلام شده در یک بلوک کد تا انتهای این بلوک کد وجود دارد. 3 متغیرها - آرگومان های متد - در هر جایی در محدوده متد وجود دارند. 4 متغیرهای کلاس / اشیا در تمام طول عمر شیء خود وجود دارند. اصلاح کننده های دسترسی ویژه عمومی و خصوصی علاوه بر این، دید خود را کنترل می کنند. 5 متغیرهای کلاس ایستا در زمان اجرای برنامه وجود دارند. اصلاح کننده های دسترسی نیز میزان دید آنها را تعیین می کنند. - من عاشق عکس هستم، همه چیز سر جای خودش قرار می گیرد. - خوش به حال تو، آمیگو. همیشه می دانستم که آدم باهوشی هستی. - همچنین در مورد اصلاح کننده های دسترسی به شما خواهم گفت . اینقدر نترسید، این علم موشکی نیست. اینها کلمات عمومی و خصوصی هستند که می بینید. - من نمی ترسم، اینجا فقط سرد است. - اره حتما. شما می توانید دسترسی (مشاهده) متدها و متغیرهای کلاس خود را از کلاس های دیگر کنترل کنید. برای هر متد یا متغیر، می توانید فقط یک تغییر دهنده دسترسی را مشخص کنید. 1 تغییر دهنده عمومی متغیر، متد یا کلاسی که با یک تغییر دهنده عمومی پرچم گذاری شده است، از هر نقطه برنامه قابل دسترسی است. این بالاترین درجه باز بودن، بدون محدودیت است. 2 Modifier private متغیر یا روشی که با یک اصلاح کننده خصوصی پرچم گذاری شده است فقط از کلاسی که در آن اعلام شده است قابل دسترسی است. برای همه کلاس‌های دیگر، یک متد یا متغیر پرچم‌گذاری شده نامرئی هستند، گویی وجود ندارند. این بالاترین درجه بسته بودن است (فقط از همان کلاس قابل مشاهده است). 3 پیش‌فرض اصلاح‌کننده اگر هر اصلاح‌کننده‌ای یک متغیر یا روش را علامت‌گذاری نکند، به عنوان پیش‌فرض اصلاح‌کننده در نظر گرفته می‌شود. متغیرها یا متدهای دارای آن اصلاح‌کننده (یعنی بدون هیچ کدام) برای همه کلاس‌های بسته‌ای که در آن اعلام شده‌اند قابل مشاهده هستند. فقط در همان بسته. گاهی اوقات این اصلاح کننده بسته نامیده می شود تا به این معنی باشد که دسترسی به متغیرها و متدها برای کل بسته امکان پذیر است که کلاس آنها به تب توضیح تعلق دارد: سطح قدیمی 02 - 12

5 دیگو، وظایف برای ایجاد یک دسته از متغیرها

- هی رفیق در صورت نیاز، من یک نسخه از قرارداد را برای شما نگه می دارم. آن اسکیت ارزان یواشکی ریشا به طرز سعادتمندانه ای بی خبر است. شما باید مبالغ قرارداد من را می دیدید. هه هه. - آفرین، دیگو. فکر می کنم چیزهای مفید واقعی را به من یاد می دهید. - مطمئنا، آمیگو. نابرده رنج گنج میسر نمی شود. اما هنوز کسی درد را بدون هیچ سودی متحمل می شود. - بهتر است دست به درس خواندن بزنیم. حالا من به شما نشان خواهم داد که چگونه یک دسته از متغیرها را به روش های مختلف ایجاد کنید: سطح قدیمی 02 - 13- وای، دیگو! تو خیلی باهوشی. - هه هه! ممنون، آمیگو. - فکر می کنم شما قبلاً وظایف من را از دست داده اید. بنابراین در اینجا به برخی از آنها اشاره می کنیم. آن انسان ها، بیگانگان چیزی در مورد زندگی رباتیک ما نمی دانند. چه کسی جز من به شما یاد خواهد داد؟
وظایف
1 برنامه ای بنویسید که 3 بار نمایش داده شود: «بسیاری از مردم فقط به این دلیل زنده هستند که تیراندازی به آنها غیرقانونی است.»
2 برنامه ای بنویسید که نمایش دهد: «اگر نظر شما را می خواهم، از شما می خواهم که فرم های لازم را پر کنید.»
3 برنامه ای بنویسید که 20 بار نمایش داده شود: «هرگز بیشتر چیزهایی که گفتم را نگفتم».

6 الی، گذر با مرجع. متغیرهای مرجع

- هی، آمیگو، دوباره من هستم، الی. متاسفم که من همیشه این را می گویم، اما این دقیقاً همان روشی است که در قرن 31 روی زمین انجام می شود. من ویژگی های متغیرهای مرجع و نحوه انتقال آرگومان های ارجاعی به توابع (روش ها) را به شما توضیح خواهم داد. - من آماده ام. - خب پس، متغیرهای مرجع متغیرهایی از همه نوع هستند به جز متغیرهای اولیه. این متغیرها فقط حاوی آدرس شی (مرجع شی) هستند. - متغیرهای انواع اولیه یک مقدار و نوع را ذخیره می کنند و متغیرهای کلاس ارجاعات به اشیاء همان کلاس، چاه یا تهی را ذخیره می کنند. درست میگم؟ - کاملا. - خب، مرجع چیست؟ - شی و مرجع آن مانند یک مرد و شماره تلفن او به هم مرتبط هستند. شماره تلفن یک مرد نیست، اما می توان از آن برای تماس با مرد استفاده کرد تا از او چیزی بپرسد، او را راهنمایی یا دستور دهد. از یک مرجع نیز برای تعامل با یک شی استفاده می شود. همه اشیا از طریق ارجاعات با یکدیگر تعامل دارند. - انگار مردم با هم تلفنی ارتباط برقرار می کنند؟ - درست است. وقتی یک شی اولیه را اختصاص می دهید، مقدار آن کپی می شود (کپی می شود). وقتی یک متغیر مرجع را اختصاص می دهید، فقط آدرس شی (شماره تلفن) کپی می شود و نه خود شی. - باشه، فهمیدم. - یک مرجع یک مزیت دیگر ارائه می دهد: شما می توانید یک مرجع شی را به هر متدی منتقل کنید و این متد قادر خواهد بود شی ما را با استفاده از مرجع خود با فراخوانی متدهای آن و دسترسی به داده های درون شی تغییر (تغییر) کند. سطح قدیمی 02 - 14- مقادیر متغیرهای a & b در روش swap مبادله می شوند . وقتی متد swap را فراخوانی می کنید ، متغیرهای a & b کپی هایی از مقادیر m & n دریافت می کنند . بنابراین، هنگامی که مقادیر a & b را تغییر می دهید ، مقادیر متغیرهای m & n ثابت می ماند . در کد ستون سمت راست به وضوح قابل مشاهده است. - راستش را بخواهید، چیزی از آن نفهمیدم. آیا می توانم چند نمونه دیگر داشته باشم؟ - در مورد نوع مرجع، می توانید این کار را انجام دهید: - متغیرهای a و b به ترتیب به emma و alice ارجاع داده می شوند، مقادیر a و b در اشیاء emma و alice تغییر می کنند. - پس آیا می توان کلاس ها را در کلاس های دیگر نیز اعلام کرد؟ وای! - در مورد بقیه، معلوم نیست. - نه همه در یک زمان. سطح قدیمی 02 - 15

7 Elly، فراخوانی تابع، مقدار بازگشتی

-خب پس بیا برگردیم. ما در مورد نحوه کار فراخوانی متد صحبت خواهیم کرد، و سپس دوباره سعی کنید به سخنرانی قبلی نگاه کنید، خوب است؟ - معامله! - خب، پس من در مورد فراخوانی تابع/روش و مقادیر برگردانده شده به شما خواهم گفت. - دستورات در توابع گروه بندی می شوند، بنابراین می توانید آنها را در یک بلوک، به عنوان یک فرمان پیچیده اجرا کنید. برای این کار باید نام تابع (روش) را بنویسید و سپس در داخل پرانتز به دنبال نام مقادیر و پارامترها را مشخص کنید. سطح قدیمی 02 - 16- در مثال بالا تابعی نوشتیم که رشته پاس شده را 4 بار نمایش می دهد. سپس تابع print4 را در خط 6 فراخوانی کردیم. - وقتی نوبت به اجرای خط 6 می رسد، برنامه به خط 9 می رود و به متغیر s مقدار "I like to move it, move it" اختصاص می یابد. - سپس خطوط 11-14 اجرا می شود و در نهایت تابع کامل می شود و برنامه با خط 7 ادامه می یابد. - Gotcha. - شما نه تنها می توانید آرگومان ها (پارامترها) را به تابع ارسال کنید، بلکه می توانید نتیجه (مقدار) عملکرد تابع را نیز برگردانید. این کار با استفاده از کلمه کلیدی بازگشت انجام می شود. در اینجا به نظر می رسد: سطح قدیمی 02 - 17- فکر می کنم دارم آن را درگیر می کنم. این همان کد در سمت چپ و در سمت راست است. در سمت چپ، فقط به عنوان یک تابع جداگانه ارائه شده است. - تابع یک مقدار را محاسبه کرده و با استفاده از دستور بازگشت به کسانی که آن را فراخوانی کرده اند می دهد. حداقل من این طور فکر می کنم. - اصولاً درست است. - و نوع خلأ چیست؟ - برخی از توابع فقط کاری انجام می دهند، اما هیچ مقداری را محاسبه و برنمی گردانند، مانند روش ما main () . - اگر تابعی چیزی برنمی گرداند، چرا می توانیم چیزی را مشخص نکنیم؟ - فقط به نحوه اعلان هر متغیر فکر کنید: نوع و نام. یک تابع با نوع، نام و پرانتز اعلام می شود. نام تابع پس از پرانتز یک فراخوانی تابع است! - پس پیدا کردن "نوع خالی" آسان تر از تقسیم توابع به دو دسته بود که یک مقدار را برمی گردانند و یک مقدار را برمی گردانند؟ - دقیقا! تو زود فکر میکنی پسرم - و چگونه می توانم یک نوع خالی را برگردانم؟ - نمی تونی نحوه کار به این صورت است: هنگامی که JVM یک دستور بازگشت را اجرا می کند ، مقدار عبارت سمت راست کلمه return را محاسبه می کند، آن مقدار را در یک ناحیه حافظه ویژه ذخیره می کند و بلافاصله از تابع خارج می شود . از مقدار ذخیره شده به عنوان نتیجه فراخوانی تابع در محلی که تابع فراخوانی شده است استفاده می کند. می توانید آن را در مثال بالا ببینید. - منظورتان جایی است که int m = min(a,b) به m = m2 تبدیل شده است ؟ - آره. پس از فراخوانی تابع، همه چیز به کار خود ادامه می دهد، گویی به جای تابع، نتیجه آن در همان مکان نوشته شده است. یک بار دیگر آن جمله را بخوانید و به کد مثال آخر نگاه کنید. - به نظر می رسد آسان است، اما در واقعیت دشوار است. من فقط کمی دریافت کردم، همین. - مشکلی نیست. در اولین تلاش شما فقط می توانید آنچه را که قبلاً می دانید درک کنید. هر چه بیشتر وارد یک منطقه جدید برای خود شوید، بیشتر نامشخص است. و نتیجه حتی عالی تر خواهد بود. با گذشت زمان همه چیز مشخص می شود. -خب اگه اینطوره پس بیا ادامه بدیم.

8 دیگو

- هی، آمیگو. در اینجا چند کار برای شما وجود دارد. اکنون شما قادر به انجام کاری بیشتر از System.out هستید. تمام تلاشت را بکن! من به تو ایمان دارم!
وظایف
1 حداقل دو عدد
تابعی بنویسید که حداقل دو عدد را برگرداند.
2 حداکثر دو عدد
تابعی بنویسید که حداکثر دو عدد را برگرداند.
3 حداقل سه عدد
تابعی بنویسید که حداقل سه عدد را برگرداند.
4 حداقل چهار عدد
تابعی بنویسید که حداقل چهار عدد را برگرداند.
تابع min(a,b,c,d) باید از تابع min(a,b) استفاده کند.
5 تکرار رشته تابعی
بنویسید که سه برابر رشته پاس شده را نمایش دهد. هر رشته باید در یک خط جدید باشد.
6 نمایش متن
تابعی بنویسید که رشته (کلمه) ارسال شده را سه بار در یک خط نمایش دهد.
کلمات باید با یک فاصله از هم جدا شوند و لازم نیست در یکی ادغام شوند.

9 دیگو، نام کامل کلاس

سطح قدیمی 02 - 18- هی، آمیگو، می خواهم در مورد نام کامل کلاس ها به شما بگویم. - شما قبلاً می دانید که کلاس ها در بسته ها هستند. بنابراین، یک نام کامل کلاس، نامی است که تمام بسته های جدا شده با امتیاز و نام کلاس را پوشش می دهد. مثال: سطح قدیمی 02 - 19 - برای استفاده از کلاس در کد خود باید نام کامل آن را مشخص کنید. با این حال، می توانید از یک نام کوتاه استفاده کنید - فقط یک نام کلاس. برای انجام این کار، باید این کلاس را با مشخص کردن نام آن و اضافه کردن کلمه import قبل از اعلام کلاس، "وارد" کنید. کلاس های بسته java.lang (String، Integer،...) به طور پیش فرض وارد می شوند. لازم نیست آنها را مشخص کنید. مثال: سطح قدیمی 02 - 20- نمونه ای از استفاده از نام های کوتاه: سطح قدیمی 02 - 21- فهمیدم. - خوب.

10 پروفسور، سخنرانی در مورد کلاس ها و اشیاء

سطح قدیمی 02 - 22- هی، آمیگو. امیدوارم همه آنچه الی و ریشا امروز به شما گفته اند را درک کرده باشید. فقط برای ایمن بودن، همانطور که قول داده بودم، در اینجا پیوندهایی به مطالب بیشتر وجود دارد: 1 یادداشت های من 2 تفکر در جاوا. آن کتاب فوق العاده ای که قبلاً در مورد آن به شما گفته ام. اگه بخونی عالی میشه - امیدوارم وقت بگذارید و به آن نگاه کنید. - آهام مطمئن من!

11 جولیو

- هی، آمیگو! امیدواریم برای استراحت سخت و طاقت فرسا باشید؟

نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION