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

سطح قدیمی 05

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

آیا می توانم یک توسعه دهنده نرم افزار شوم؟

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

چرا توسعه نرم افزار؟

قبل از شروع آموزش برنامه نویسی به شخص، بهتر است بدانیم که چه چیزی به او می دهد.

1 کار ساده و جالب

مهندس نرم افزار کار ساده و جالبی است. فضای زیادی برای خلاقیت دارد. عاشقشم. ابتدا از این فکر کردم که کاری را که دوست دارم انجام می دهم و بابت آن پول می گیرم دیوانه شدم. اما در نهایت به آن عادت کردم.

2 پرداخت خوبی دارد.

من به سادگی از تماشای دوستانم در حال خرید ماشین و خانه در 5 سال کار لذت می برم.

3 ساعت انعطاف پذیر

برنامه کاری سختگیرانه چیز بدی است. هر فردی که تا به حال در ساعت شلوغی در ترافیک بوده یا به دلیل 5 دقیقه تاخیر جریمه شده است، می تواند آن را تایید کند. و در مورد اینکه بتوانید ساعت 11 صبح به محل کار خود برسید و ساعت 5 بعد از ظهر آن را ترک کنید چطور؟ برای اکثر برنامه نویسان این یک برنامه معمول است. فقط کار خود را انجام دهید و هیچ کس حرف متقاطع نمی گوید. حتی ممکن است در اکثر شرکت ها در خانه کار کنید. همیشه می توانید با کارفرمای خود به یک توافق معقول برسید.

4 رشد حرفه ای

در اکثر شرکت ها برای دریافت حقوق خوب باید از نردبان شغلی بالا بروید. یک توسعه دهنده نرم افزار فقط باید یک توسعه دهنده نرم افزار باشد. شما مجبور نخواهید بود که از یک توسعه دهنده به مدیر دیگر صلاحیت شوید یا سعی کنید در موقعیتی پیشرو باشید. تنها کاری که باید انجام دهید رشد حرفه ای است. توسعه دهندگانی که 5 تا 10 سال سابقه کار دارند به صورت سلطنتی حقوق دریافت می کنند.

5 تحرک بین المللی بالا.

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

چرا جاوا؟

مجموع سه عامل زیر باعث شد افراد را برای توسعه دهندگان جاوا بازآموزی کنم.

1. جاوا - یکی از ساده ترین زبان ها برای یادگیری است.

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

2. تقاضای بالا در بازار کار.

شما می توانید بدون تجربه قبلی کار پیدا کنید. شرکت ها کارآموزان را مشتاقانه استخدام می کنند و به آموزش آنها ادامه می دهند.

3. بالاترین حقوق در این زمینه.

یکی از بالاترین. این امر به ویژه برای توسعه دهندگان جوان بسیار مهم است.  

برنامه نویسی یک مهارت است

سطح قدیمی 05 - 2شما نمی توانید کتاب بخوانید و برنامه نویس کامپیوتر شوید. حداقل به 500 ساعت تمرین نیاز دارید. درست مثل بوکس. شما نمی توانید به سادگی مسابقات را تماشا کنید و حرفه ای شوید. شما باید سالها تمرین کنید. (به همین دلیل است که CodeGym وظایف عملی زیادی دارد). همه پیشنهادات آموزش برنامه نویسی در 10 ساعت به شما شبیه به آموزش برنامه نویسی در 10 ساعت است. و سپس شما را در یک رینگ بوکس انداخت! این کار را نکن گاهی اوقات وقتی یک مبتدی در انجمن می پرسد که چگونه یک توسعه دهنده نرم افزار شود، به او گفته می شود که کارهایی را برای خودش اختراع کند و آنها را انجام دهد. این کار نخواهد کرد. مسئله این است که انسان نمی تواند کاری فراتر از دانش خود انجام دهد. شما یا چیزی می دانید یا نمی دانید. فقط فردی که به خوبی در موضوع مسلط است، قادر به ایجاد مجموعه ای از وظایف متوالی برای شما است، که هر کدام از آنها چیزهای جدیدی به شما می آموزد و حل آنها هفته ها طول نمی کشد. این کاری است که من در CodeGym انجام دادم.

روش نوین آموزش نوین

آموزش CodeGym به روشی متفاوت از تحصیلات دانشگاهی ساخته شده است. خیلی زود متوجه آن خواهید شد. خیلی موثرتره مطالعات شما در کالج احتمالاً به این صورت بوده است: سخنرانی های طولانی و تمرین برای به نتیجه رساندن آنچه یاد گرفته اید. با پیروی از این رویکرد، دانش خود را ارتقا می دهید، نه مهارت های خود را. صادقانه بگویم، مهارت‌هایی که از این طریق به دست می‌آیند، عملاً ارزشی ندارند. من رویکرد دیگری دارم. من معتقدم که یک شخص باید ابتدا سوال بپرسد و فقط بعد از آن پاسخ آن را دریافت کند. پاسخ قبل از سوال ارزشی ندارد. سخنرانی های من پاسخی به سوالات شماست. بنابراین ابتدا به شما کارهای عملی می دهم که حل آنها با دانش فعلی شما دشوار است. این کارها سوالاتی را ایجاد می کند و سپس شما پاسخ های من را دریافت می کنید که دانش و سخنرانی است. من دانش جدید را در سه مرحله به شما ارائه می کنم:
  1. مقدمه (حداقل تئوری و چند کار عملی)

  2. دانش بلوک اصلی (شما باید موضوع را کاملاً درک کنید)

  3. جزئیات و تفاوت های ظریف (من در اینجا شکاف ها را پر می کنم)

به این ترتیب حداقل سه بار با یک موضوع روبرو خواهید شد. و حتی قابل ذکر نیست که همه چیز تا حد زیادی به هم مرتبط است و توضیح کامل یک موضوع بدون توضیح موضوع قبل از آن، حداقل تا حدی، به سادگی غیرممکن است. حتی برخی از دانش‌آموزان از اینکه برخی از کارها خیلی سخت هستند، ناراحت هستند و می‌گویند هنوز آن را مطالعه نکرده‌اند. چنین وظایفی یک مکث برای فکر کردن است: چگونه آنها را با استفاده از سطح دانش فعلی خود حل می کنید؟ می توانید یک یا دو ساعت را صرف حل این کارها کنید، اما بعداً از پیدا کردن یک رویکرد اصلی جدید یا راه حل ظریف بسیار خوشحال خواهید شد. در واقع، در زندگی واقعی ابتدا یک وظیفه در محل کار به شما محول می شود و فقط بعداً دانش حل آن را خواهید یافت. این زندگی واقعی است، بچه ها. بنابراین، هر چه زودتر به چنین رویکردی عادت کنید، بهتر است.

سطح 5

سطح قدیمی 05 - 3

1 الی در مورد کلاس ها صحبت می کند

- هی، آمیگو! - سلام الی! - امروز می خوام براتون توضیح بدم که کلاس ها چیه. - توضیح شماره 1. من با یک قیاس شروع می کنم. همه چیز در جهان ما از اتم ساخته شده است. آنها می توانند انواع مختلفی داشته باشند: هیدروژن، اکسیژن، آهن، اورانیوم، ... ترکیب اتم ها باعث ایجاد چیزها یا اشیاء مختلف می شود. - همین امر در مورد جهان جاوا نیز صادق است. در اینجا برنامه ها از اشیاء انواع مختلفی تشکیل شده اند (که کلاس یک نوع است): عدد صحیح، رشته، فایل، شی، ... ترکیب اشیاء امکان ایجاد سرویس ها یا برنامه های مختلف وب را فراهم می کند. - اتم های مختلف ساختار داخلی متفاوتی دارند. آنها حاوی تعدادی الکترون، پروتون و نوترون هستند. - کلاس های مختلف (انواع شی در جاوا) ساختار داخلی متفاوتی نیز دارند. آنها شامل متغیرها و روش های مختلفی هستند. - بله، من تصور کلی از ساختار اتم دارم. من یک ربات هستم، نه؟ - بیایید به برنامه به عنوان یک کل نگاه کنیم: اشیا مانند بلوک های ساختمانی هستند که برنامه را تشکیل می دهند. کلاس ها انواعی از آن بلوک ها هستند. بلوک های انواع مختلف اشیایی از کلاس های مختلف هستند. - یه جورایی فهمیدم. - توضیح شماره 2. زمانی که به نوع جدیدی از شی نیاز داریم یک کلاس جدید ایجاد می کنیم. در این کلاس رفتار مورد نظر اشیا را توصیف می کنیم. -خب من یه چیزی فهمیدم ولی مطمئن نیستم. - با در نظر گرفتن ساختار داخلی، کلاس شامل متدهای کلاسی است که کاری را انجام می دهند و از متغیرهای کلاسی که متدها داده های مشترک را ذخیره می کنند. - به عبارت ساده، کلاس مجموعه ای از متدها است؟ - تقریباً، به طور خاص، کلاس گروهی از متدها است که با هم کار می کنند و متغیرهایی که در آنها متدها مقادیر مختلفی را برای اشتراک گذاری ذخیره می کنند. - آره برای ایجاد یک کلاس جدید، باید این متدها را بنویسیم... - بله. ما همچنین باید تصمیم بگیریم که کدام متغیرها توسط متدهای مختلف به اشتراک گذاشته شوند، و سپس متغیرها را از یک متد به کلاس خارج کنیم: متغیرهای متد را به متغیرهای کلاس تبدیل کنیم. - کلاس ها بر اساس الگوی زیر ایجاد می شوند: 1 برنامه نویس تصمیم می گیرد که به چه چیزهای دیگری نیاز دارد. 2 برنامه نویس این اشیا را بسته به کاری که انجام می دهند به انواع مختلفی تقسیم می کند. 3 برنامه نویس برای هر نوع یک کلاس جداگانه می نویسد. 4 در کلاس متدها و متغیرهای لازم را اعلام می کند. 5 دستور باید در هر متد نوشته شود تا متد کاری را که برنامه نویس می خواهد انجام دهد. 6 کلاس آماده است، اکنون می توانید اشیاء آن را ایجاد کنید. - عالی! طرح جالبی است من آن را به خاطر بسپارم. - باید حفظش کنی، مفید خواهد بود. رویکرد برنامه نویسی که در آن برنامه به اشیاء تقسیم می شود، برنامه نویسی شی گرا نامیده می شود( OOP ). - جاوا یک نمونه کلاسیک از رویکرد OOP است، زیرا در جاوا همه چیز شی است. - یادگیری جاوا از دو وظیفه اصلی تشکیل شده است: یادگیری نوشتن کلاس های خود و یادگیری استفاده از کلاس های دیگران . امروز با ساده ترین چیزها شروع می کنیم. شما یاد خواهید گرفت که کلاس های ساده بنویسید و البته اشیاء آنها را بسازید. اشیاء اغلب نمونه های کلاس ها نامیده می شوند. اینها مترادف هستند، در هر صورت صحیح است. - فهمیدم. - به طور خلاصه می توانم بگویم که کلاس یک miniprogram است: مجموعه ای از داده ها و توابع که با این داده ها کاری انجام می دهند. یکی از ویژگی های مهم کلاس ها امکان ایجاد نمونه هایی از این کلاس ها (اشیاء) است. - برای ایجاد یک شی کلاس، باید در کد «new class_name()» بنویسید . سطح قدیمی 05 - 4- یک شی کلاس دو ویژگی جالب دارد: - اول. هر شیء کلاس کپی خود را از متغیرهای کلاس ذخیره می کند. بنابراین، اگر متغیرهای x، y در کلاس اعلان شوند و 10 شی از این کلاس ایجاد شود، هر شی متغیرهای خاص خود را دارد. تغییر متغیرهای یک شی تأثیری بر متغیرهای شی دیگر ندارد. - دومین. هنگامی که یک شی جدید ایجاد می شود، پارامترهای مختلفی را می توان به آن ارسال کرد. اینها به اصطلاح «ارزش های راه اندازی» هستند. تقریباً مانند نامگذاری در بدو تولد است. بسیاری از اشیاء را نمی توان بدون عبور از چنین پارامترهایی ایجاد کرد. - کمی می فهمم. و در مورد متغیرهای کلاس چه گفتید؟ - هر شی دارای کپی از داده ها (متغیرهای کلاس) است. سطح قدیمی 05 - 5

2 ریشا در مورد بسته ها صحبت می کند

- هی، آمیگو! حالا در مورد بسته ها به شما می گویم. - فایل های موجود در رایانه در پوشه ها گروه بندی می شوند. کلاس ها در جاوا (هر کلاس در یک فایل جداگانه است) توسط بسته هایی که پوشه های روی یک دیسک هستند گروه بندی می شوند. این چیز جدیدی نیست. اما دو نکته وجود دارد. - ابتدا ، «نام کامل کلاس منحصر به فرد» «نام بسته» + «نام کلاس» است . مثال: سطح قدیمی 05 - 6- نام کامل کلاس همیشه منحصر به فرد است! - نوشتن یک نام طولانی، مانند java.util.ArrayList ، هر بار بسیار سخت است. بنابراین، در کد خود می توانید از نام های کوتاه سایر کلاس ها استفاده کنید. اما برای آن باید از جادو استفاده کنید. - چه جادویی؟ - می توانید از عبارت «import java.util.ArrayList;» استفاده کنید. - در ابتدای کلاس، بلافاصله پس از اعلام بسته، باید نام کامل کلاس ArrayList مورد استفاده در کد خود را مشخص کنید. فرض کنید از کلاس های java.util.ArrayList، sun.generic.ArrayList و com.oracle.ArrayList در کد خود استفاده می کنید. شما می توانید یکی از آنها را در import مشخص کنید (مثلا sun.generic.ArrayList؛) و از نام کوتاه آن استفاده کنید. فقط به یک کلاس مربوط می شود. - چرا اینقدر پیچیده است؟ آیا کلاس هایی با نام های یکسان وجود دارد؟ - بله، در بسته های مختلف می تواند کلاس هایی با همین نام وجود داشته باشد. اما ما نمی‌توانیم دو کلاس با یک نام را به کلاس خود وارد کنیم ، بنابراین باید یک نام کامل برای یکی از آنها اعمال کنیم. - این هم یک قیاس دیگر. شما بیل را در تیم خود دارید و هیچ مشکلی برای ارتباط وجود ندارد، زیرا همه می دانند که او کیست. اما اگر سه بیل وجود داشت، باید از نام‌های منحصربه‌فرد کامل آنها برای تمایز بین آنها استفاده کنید. - دوم اینکه بهتر است کلاس ها را در پکیج ها قرار دهید نه در پوشه ریشه src . وقتی کلاس‌های کمی وجود دارد، مشکلی وجود ندارد، اما وقتی تعداد آنها زیاد است، گیج شدن بسیار آسان است. بنابراین، همیشه کلاس ها را فقط در بسته ها ایجاد کنید. قاعده در جاوا این است که به کلاس ها و بسته ها نام های خود توضیحی داده شود. بسیاری از شرکت‌ها کتابخانه‌های خود را تولید می‌کنند (مجموعه‌های کلاسی) و برای جلوگیری از سردرگمی، بسته‌های این کلاس‌ها را بعد از شرکت / وب‌سایت نام می‌برند: سطح قدیمی 05 - 7

آموزش تصویری 3 کیم شو

- هی، آمیگو! در اینجا چند آموزش ویدیویی، نحوه ایجاد کلاس ها و بسته ها آورده شده است:
- ما قبلاً این کار را کردیم! - در زندگی روباتی خود هزاران بار این کار را انجام خواهید داد. بنابراین بهش عادت کن. و اکنون، شما باید تمرین کنید! ایجاد کلاس های جاوا ایجاد بسته ها

4 Elly، ایجاد اشیا، ارجاعات شی

- پس، ما آخرین بار کلاس ها را یاد گرفتیم. امروز می خواهم به شما بگویم که چگونه اشیا ایجاد کنید. خیلی ساده است: کلمه کلیدی new و نام کلاس را برای شیئی که می خواهیم ایجاد کنیم بنویسید: سطح قدیمی 05 - 8- اما قبلاً آن را شنیده بودم. -میدونم ولی لطفا گوش کن - هنگامی که یک شی جدید ایجاد می شود، پارامترهای مختلفی را می توان در پرانتز ارسال کرد. امروز کمی بعداً توضیح خواهم داد. بیایید کلاس Cat را در نظر بگیریم: - این گیرنده ها و ستترهاسطح قدیمی 05 - 9 چیست ؟ - متغیرهایی که از کلاس های دیگر قابل دسترسی نیستند در جاوا رایج هستند. به طور معمول، متغیرهای اعلام شده در یک کلاس دارای تعدیل کننده خصوصی هستند . - برای دسترسی به متغیر خصوصی باید دو روش get و set ایجاد کنید . هدف متد get این است که مقدار فعلی متغیر را به کسی که آن را فراخوانی کرده است برگرداند. هدف مجموعه متد تنظیم یک مقدار جدید است. - و چه فایده ای دارد؟ - اگر نمی خواهیم کسی مقادیر متغیرهای شی ما را تغییر دهد، فقط می توانیم هیچ متد را بنویسیم یا آن را خصوصی کنیم . همچنین می توانید بررسی داده های اضافی را به این روش اضافه کنید. اگر مقدار ارسال شده جدید نامعتبر است، چیزی را تغییر ندهید. - جالبه. - از آنجایی که ممکن است متغیرهای زیادی در کلاس وجود داشته باشد، نام متدهای get و set معمولاً شامل نام متغیری است که با آن کار می کنند. - اگر نام متغیری fullName باشد ، متدها باید getFullName و setFullName نامیده شوند . و غیره مشابه آن. - فهمیدم! به طور کلی این یک رویکرد قابل درک است. - در اینجا چند مثال از نحوه کار با یک شی جدید ایجاد شده است: سطح قدیمی 05 - 10

5 دیگو، وظایف برای ایجاد کلاس ها و اشیاء خود

- هی، آمیگو! در اینجا چند کار برای ایجاد کلاس ها و اشیاء وجود دارد:
وظایف
1 ایجاد یک کلاس گربه
ایجاد یک گربه کلاس. گربه باید نام خود (نام، رشته)، سن (سن، بین المللی)، وزن (وزن، وزن) و قدرت (قدرت، بین المللی) را داشته باشد.
2 مبارزه با روش پیاده
سازی روش مبارزه بولی (Cat AnotherCat): یک مکانیسم مبارزه را بسته به وزن، سن و قدرت گربه ها اجرا کنید. خودت وابستگی درست کن این روش باید تعیین کند که آیا گربه فعلی (شیئی که روش مبارزه با آن نامیده می شد) یا گربه دیگری برنده مبارزه شده است، یعنی اگر گربه فعلی برنده شد true و اگر برنده نشد، false را بازگرداند. شرط زیر باید رعایت شود:
if cat1.fight(cat2) == true, then cat2.fight(cat1) == false
3 گیرنده و تنظیم کننده برای کلاس سگ <
ایجاد کلاس سگ. سگ باید یک نام داشته باشد - نام رشته و سن - بین سن.
برای همه متغیرهای کلاس Dog getters و setter ایجاد کنید.
4 C reate سه شی از نوع Cat
سه شی از نوع Cat را در متد main ایجاد کنید و آنها را با داده پر کنید.
از کلاس Cat اولین کار استفاده کنید. کلاس Cat را ایجاد نکنید.
5 سه دعوای دو نفره بین گربه ها برگزار کنید
با استفاده از کلاس Cat سه گربه ایجاد کنید.
سه مبارزه دونفره بین گربه ها برگزار کنید.
کلاس Cat را ایجاد نکنید. برای مبارزه، از روش مبارزه بولی (Cat AnotherCat) استفاده کنید.
نمایش نتیجه هر مبارزه.

6 ریشا در مورد مقداردهی اولیه شی صحبت می کند

- می خواهم در مورد مقداردهی اولیه شی به شما بگویم. هنگامی که یک شی ایجاد می‌شود، لازم است که داده‌های راه‌اندازی را به متغیرهای آن اختصاص دهید تا از موقعیتی که سعی می‌کنید به یک شی دسترسی داشته باشید و برای درست کار کردن آن هیچ داده‌ای لازم نیست، اجتناب کنید. - بیایید یک شی از نوع File را در نظر بگیریم. حداقل اطلاعات لازم برای فایل نام آن است. فایل بدون نام مزخرف است. - فرض کنید در حال نوشتن نسخه خود از کلاس File (به عنوان مثال MyFileClass) برای کار با فایل ها هستید. برای هر شیء از این کلاس چه اطلاعاتی لازم است؟ - نام فایلی که این شی با آن کار خواهد کرد؟ - درست است. به همین دلیل است که متد ()initialize را به کلاس خود اضافه می کنیم. به این صورت خواهد بود: سطح قدیمی 05 - 11- ما متد مقداردهی اولیه را اضافه کرده ایم تا بتوانیم با یک شی کار کنیم - متدهای آن را فراخوانی کنیم. این می تواند بلافاصله پس از فراخوانی متد مقداردهی اولیه انجام شود. اگر نمی توانید با یک شی کار کنید، نامعتبر است، در غیر این صورت معتبر است . هدف اصلی روش مقداردهی اولیه – ارسال تمام داده های لازم به شیء برای معتبر ساختن آن است. - فهمیدم! - حالا بیایید کار را پیچیده کنیم. یا بهتر بگوییم ساده کنید. بسته به اینکه چگونه به آن نگاه کنید. تصور کنید که برای برنامه نویس دیگری که از کلاس ما استفاده می کند، انتقال نام کامل فایل، بلکه یک فهرست و نام فایل کوتاه آسان تر است. ما می‌توانیم این عملکرد را با استفاده از یک روش دیگر پیاده‌سازی کنیم ( جاوا ایجاد چندین روش با نام‌های یکسان را قادر می‌سازد ). سپس کلاس ما به این شکل خواهد بود: سطح قدیمی 05 - 12- علاوه بر این، اغلب لازم است یک کپی فایل موقت در کنار فایل فعلی ایجاد شود. - آیا می توانیم برای این مورد روشی بسازیم؟ - حتماً، به این نگاه کنید: سطح قدیمی 05 - 13- پس من می توانم هر تعداد از این روش ها را بخواهم درست کنم؟ - البته در حد منطق. اما در واقع به تعداد دلخواه شما. - و چه زمانی لازم است متد را مقدار دهی کنیم؟ - بلافاصله پس از ایجاد شی، برای تبدیل آن به یک شی معتبر: سطح قدیمی 05 - 14- و این متد getFolder() چیست؟ - از نام آن می بینید که این روش برای برگرداندن یک رشته حاوی نام پوشه ای است که فایل ما در آن قرار دارد. اما پیاده سازی آن را اینجا ننوشتیم، فقط برای نمایش است.

7 دیگو، وظایف مقداردهی اولیه شی

- هی، آمیگو! من بدون درس هایمان حوصله ام سر رفته است. در اینجا برخی از وظایف اولیه سازی شی وجود دارد:
وظایف
1 ایجاد یک کلاس Friend
ایجاد یک کلاس Friend با سه مقداردهی اولیه (سه روش اولیه):
- نام
- نام، سن
- نام، سن، جنسیت
2 ایجاد یک کلاس Cat
یک کلاس Cat با پنج مقدار اولیه ایجاد کنید:
- نام
- نام، وزن، سن
- نام، سن (وزن استاندارد)
- وزن، رنگ، (نام، آدرس و سن مشخص نیست، گربه کوچه است)
- وزن، رنگ، آدرس (این گربه خانه شخص دیگری است)
وظیفه Initializer این است که یک شی را معتبر کند. به عنوان مثال، اگر وزن نامشخص است، باید مقداری وزن متوسط ​​را مشخص کنید. یک گربه اصلاً نمی تواند وزن داشته باشد، به همین ترتیب سن. اما می تواند بدون نام (null) باشد. همین امر در مورد آدرس نیز صدق می کند - می تواند تهی باشد.
3 ایجاد یک کلاس Dog
یک کلاس Dog با سه مقداردهی اولیه ایجاد کنید:
- نام
- نام، ارتفاع
- نام، ارتفاع، رنگ
4 ایجاد یک دایره کلاس
ایجاد یک دایره کلاس با سه مقدار اولیه:
- centerX، centerY، شعاع
- centerX، مرکزY، شعاع، عرض
- مرکزX، مرکزY، شعاع، عرض، رنگ
5 یک کلاس Rectangle ایجاد کنید
یک کلاس Rectangle ایجاد کنید. داده های آن بالا، چپ، عرض و ارتفاع خواهد بود. تا جایی که ممکن است روش های مقداردهی اولیه (...) را برای آن بنویسید.

مثال ها:
- 4 پارامتر باید تنظیم شود: چپ، بالا، عرض، ارتفاع
- عرض/ارتفا تنظیم نشده است (هر دو برابر 0)
- ارتفاع تنظیم نشده است (برابر با عرض)، یک مربع ایجاد کنید
- یک کپی از مستطیل دیگر ایجاد کنید (در پارامترها ارسال می شود)

8 الی در مورد سازنده ها صحبت می کند

- وقت آن است که در مورد سازنده ها به شما بگویم. خیلی ساده است: برنامه نویسان یک نماد مختصر برای ایجاد و مقداردهی اولیه شی اختراع کردند: سطح قدیمی 05 - 15- اما من به تازگی آن مقادیر اولیه را درک کرده ام... - ناراحت نباشید. نگاه دقیقتری بینداز. استفاده از سازنده ها مفیدتر و صرفه جویی در فضا است. - آره به نظر خیلی بهتره اما یک سوال وجود دارد: من می دانم چگونه یک متد مقدار دهی اولیه را در کلاس بنویسم، اما چگونه می توانم یک سازنده در کلاس بنویسم؟ - ابتدا به یک مثال ساده نگاه کنید: سطح قدیمی 05 - 16- اعلان سازنده در کلاس بسیار آسان است. سازنده مانند روش مقداردهی اولیه است، اما دو تفاوت وجود دارد:
  • نام متد سازنده همان نام کلاس است (به جای مقداردهی اولیه ).
  • متد سازنده هیچ نوع بازگشتی ندارد (اصلاً نوع مشخصی ندارد).
- در واقع همان روش مقداردهی اولیه است، اما با چند تفاوت. یه جورایی گرفتم

9 دیگو، وظایف سازنده

- فکر می کنم کمی استراحت کردی. خوب. در اینجا برخی از وظایف ایجاد سازنده آورده شده است:
وظایف
1 ایجاد یک کلاس Friend
یک کلاس دوست با سه سازنده ایجاد کنید:
- نام
- نام، سن
- نام، سن، جنسیت
2 یک کلاس Cat ایجاد کنید
یک کلاس Cat با پنج سازنده ایجاد کنید:
- نام،
- نام، وزن، سن
- نام، سن (وزن استاندارد)
- وزن، رنگ، (نام، آدرس و سن نامشخص است. گربه کوچه است)
- وزن، رنگ، آدرس (این گربه خانه شخص دیگری است)
وظیفه Initializer این است که یک شی را معتبر کند. به عنوان مثال، اگر وزن نامشخص است، باید مقداری وزن متوسط ​​را مشخص کنید. یک گربه اصلاً نمی تواند وزن داشته باشد، به همین ترتیب سن. اما می تواند بدون نام (null) باشد. همین امر در مورد آدرس نیز صدق می کند - می تواند تهی باشد.
3 ایجاد یک کلاس Dog
یک کلاس Dog با سه سازنده ایجاد کنید:
- نام
- نام، ارتفاع
- نام، ارتفاع، رنگ
4 ایجاد یک دایره کلاس
ایجاد یک دایره کلاس با سه سازنده:
- centerX، centerY، شعاع
- centerX، مرکزY، شعاع، عرض
- مرکزX، مرکزY، شعاع، عرض، رنگ
5 یک کلاس Rectangle ایجاد کنید
یک کلاس Rectangle ایجاد کنید. داده های آن بالا، چپ، عرض و ارتفاع خواهد بود. تا حد امکان سازنده برای آن ایجاد کنید:

مثال‌ها:
- 4 پارامتر تنظیم شده است: چپ، بالا، عرض، ارتفاع
- عرض/ارتفاع تنظیم نشده است (هر دو برابر 0)
- ارتفاع تنظیم نشده است (برابر عرض)، یک مربع ایجاد کنید
- یک کپی از مستطیل دیگر ایجاد کنید (در پارامترها ارسال می شود)

10 استاد، کلاس ها و سازندگان

- بازم منم سخنرانی های ما به سادگی عالی هستند. من به شما پیوندی به سخنرانی های خسته کننده نمی دهم. این یک پیوند به چیزهای عالی است! - هنوز اینجایی؟ سریع برو بخون و باید برم آزمایشگاه. گفتگوی CodeGym Lecture 5

11 جولیو

- هی، آمیگو! کمی خسته ام. کمی استراحت کنیم و بعد درس را شروع کنیم. من یک قسمت جدید پیدا کردم:

12 جان سنجاب

- سلام سرباز! - صبح بخیر آقا! - یه خبر عالی برات دارم. در اینجا وظایفی برای تقویت مهارت های شما وجود دارد. این کار را هر روز انجام دهید، و به سرعت مهارت های خود را افزایش خواهید داد. وظایف به طور ویژه برای انجام در Intellij IDEA طراحی شده اند.
کارهای اضافی برای انجام در Intellij Idea
1 1. سه کلاس
1. کلاس Cat and Dog را با قیاس با کلاس Duck ایجاد کنید.
2. به این فکر کنید که متد toString باید چه چیزی را در کلاس‌های Cat و Dog برگرداند.
3. در متد main در هر کلاس دو شی بسازید و نمایش دهید.
4. اشیاء کلاس Duck ایجاد و نمایش داده می شوند.
2 مرد و زن
1. ایجاد کلاس های استاتیک عمومی Man and Woman در کلاس Solution.
2. کلاس ها باید دارای فیلدهایی باشند: name(String)، age(int)، address(String).
3. سازنده هایی ایجاد کنید تا تمام پارامترهای ممکن را به آنها منتقل کنید.
4. از سازنده برای ایجاد دو شی از هر کلاس با تمام داده ها استفاده کنید.
5. نمایش اشیاء در قالب [نام + " " + سن + " " + آدرس].
3 3. ایجاد کلاس های استاتیک عمومی Dog and Cat.
به انتخاب خود سه فیلد به هر کلاس اضافه کنید.
برای شخصیت های کارتونی تام و جری، تا جایی که به یاد دارید، اشیایی ایجاد کنید.

مثال:
موش jerryMouse = ماوس جدید ("جری"، 12 (ارتفاع، سانتی متر)، 5 (طول دم، سانتی متر))
4 4. نمایش تاریخ فعلی
تاریخ جاری را به شکلی شبیه به «21 02 2014» روی صفحه نمایش دهید.
5 5. اعداد را از صفحه کلید بخوانید و
مجموع آنها را محاسبه کنید. نمایش کل به صفحه نمایش
- آن وظایف برای سبزها بود. وظایف جایزه با پیچیدگی بالاتر را اضافه کردم. فقط برای اسلحه های بالا
وظایف پاداش
1 1. برنامه کامپایل و اجرا نمی شود. درستش کن
وظیفه: برنامه باید دو عدد را از صفحه کلید خوانده و مجموع آنها را نمایش دهد.
2 2. قابلیت جدیدی به برنامه اضافه کنید.
وظیفه قدیمی: یک تابع جدید اضافه کنید که دو عدد را از صفحه کلید خوانده و حداقل آنها را نمایش دهد.
وظیفه جدید: یک تابع جدید اضافه کنید که پنج عدد را از صفحه کلید خوانده و حداقل آنها را نمایش دهد.
3 3. الگوریتم یادگیری و تمرین.
وظیفه: برنامه ای بنویسید که
1. از عدد کنسول N که بزرگتر از 2 است بخواند
. سپس N عدد را از کنسول
3 بخواند. حداکثر N عدد وارد شده را نمایش دهد.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION