تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ ابوالفضل رضایی
enum‌ها در پروژه
جامعه جاوا (اندروید) ایجاد شده در ۰۲ آبان ۱۳۹۹

سلام

یه سوالی که برام پیش اومده اینکه ما چرا اصلا متغییر enum ایجاد میکنیم..؟

اصن این متغیر جایی چک نمیشه و فقط ما state اون رو تغییر میدیم..

متوجهش نشدم.. ممنون میشم برام توضیح بدید..:)

سلام ابولفضل جان

همونطور که میدونی دیتا تایپ Boolean دو تا حالت بیشتر نمیگیره (True,False) .

خب این موضوع باعث شد برنامه نویس‌های زبان x به این فکر بیفتن که برنامه نویس‌ها بتونن به صورت پیشفرض یه چیزی شبیه دیتا تایپ Boolean بسازند که کاستوم باشه و حالت‌های مختلفی رو در اون بتونیم نگه داری کنیم 

که نتیجه این فکر شد enum ها

enum‌ها یه نوع کلاس هستن که از چند کانستنت ساخته شده اند.

مثلا ما در برنامه ای یه enum میسازیم که حالت‌های مختلف چراغ راهنمایی رانندگی رو چون از 

 حالت بیشترن در اون قرار بدیم (سبز...قرمز...زرد) یا حالت‌های فصول سال رو قرار بدیم و...

این جواب قسمت اول سوالت بود که چرا enum ایجاد میکنیم 

لزوما هم نباید برای چنین کاری از enum استفاده کنیم و میتونیم با متغیرهایی این اعمال رو هندل کنیم ولی مسلما کد ما به دور از حرفه ای کد زدن هست .

پس ما در این مثال موزیک پلیر اومدیم سه حالت PLAY,PAUSE,STOP قرار دادیم که حالت‌های یک موزیک پلیر هستن 

یه نکته فرعی : حروف حالت‌ها رو به صورت uppercase نوشتیم چون ثابتن و قرار نیست تغییر کنن مثلا ما بجز  فصل سال ..فصل دیکه ای در اینده اضافه نمیکنیم.

یا مثلا تصور کن یه برنامه نوشتیم که قراره در فصل زمستان والپیپر گوشی به زمستان تغییر کنه پس ما صرفا می‌ایم با کانستنت فصل زمستان در کلاس enum ی که ساختیم state رو تغییر میدیم

پس به طور کل دلیل ایجاد اینام در این سر فصل این بود تمیز کد بزنیم .

و حتما هم برای اینگونه مسایل از اینام استفاده کنین 

ممنون سالم و سلامت باشی.

آپدیت:توی زبان کاتلین یه نمونه جدید از اینام اومده که در اینده با اون اشنا میشی

پوریا شفیعی ۰۲ آبان ۱۳۹۹، ۱۶:۲۲

ممنون از تعریف خوبتون پوریا جان..

سوال اصلیم این بودش که این enum که در پروژه تعریف کردیم اصن جایی چک نمیشد که ازش استفاده بشه... فقط در حالت‌های مختلف state اون تغییر میکرد، برای چی باید تعریف بشه داخل این پروژه..؟

 این بیشتر برام سوال بود..

ابوالفضل رضایی ۰۳ آبان ۱۳۹۹، ۰۳:۰۲