++Hadi++
Active Member
آموزش اکشن اسکریپت 3 - درس بیستم
در پست اولhttp://www.forum.majidonline.com/showthread.php?t=113351&page=6
سلام عرض می کنم خدمت دوستان عزیز
در ابتدا از همه دوستانی که این تایپیکو به اینجا رسوندن بخصوص آقا جواد تشکر می کنم و با کسب اجازه از ایشون و شما سروران محترم ، بحث کلاس رو شروع می کنم . محض اطلاع قرار شده این مبحثو بنده آموزش بدم .
برای شروع بحث در مورد کلاسها لازم دیدم که مقدمه ای بر مفهومObject Oriented Programin یا همون OOP داشته باشم تا اگه دوستانی در این مورد اطلاعاتی نداشته باشن ، از این مطالب استفاده کنن .چرا که این شروع لازمه تفهیم مبحث کلاسه. امیدوارم بتونم رضایت شما رو جلب کنم.
دیدگاه object oriented از چند دهه اخیر ، تحولی عظیم در دنیای برنامه نویسی ایجاد کرد (اوایل دهه 1970 میلادی توسط آلن کی((alan kay )) و اصول اون بر مبنای طراحی کلاس بود و جالبه تا این حد بدونین که ایده اولیه اون از سلولها و رفتار ها و مشخصات و روابط بین اونها آغاز شد.همونطوری که در دنیای کامپیوتر و سیستم عامل ، همه چیز از حالت نوشتاری جدا می شد و به سمت انتخابی شدن و گزینه ای شدن پیش می رفت ، برنامه نویسان هم به این اصل رسیدند که بهتره برنامه هاشونو از حالت کد نویسی تو در تو و از صفر شروع کردن در بیارن و به یه حالتی شبیه انتخابی شدن گزینه ها ببرن . پس به فکر افتادن که دیگه هر دستور و هر چیزی رو در کلاسهای مخصوصی قرار بدن.
کلاس در حقیقت به ساختار، نقشه و یا طرحی از چیزی گفته می شه که باید باشه یا می تونه باشه ، می تونه پارامتر هایی رو از انواع گوناگون به خودش اختصاص بده و با استفاده از این مشخصات و خصوصیات، رفتار ها و اعمالی خاص رو انجام می ده و این مشخصات (properties) و رفتار ها (methode) در ساختار کلاس ، کپسوله یا بسته بندی می شن. برای درک بهتر کلاس ، متغیر ها می تونند نقش مشخصه ها و توابع می تونند نقش رفتارها رو بازی کنن.
پس از طراحی کلاس ، نمونه های مختلفی (گاه میلیونها و حتی بیشتر) از این کلاس بوجود می یان و به هر کدوم از این نمونه ها در هنگام تولدشون ، مشخصاتی خاص و گاه یکتا تعلق می گیره و هر نمونه ، با استفاده از مشخصاتش ، رفتار خاص خودشو بروز می ده.لازم به ذکره که این متد (همون تابع ) در کلاس به صورت کلی تعریف شده. با دیدی بهتر می تونیم بگیم این نمونه ها یا اشیا (object) ، مشخصات و متد های کلاس مادر رو به ارث می برند.
مثالی ملموس از کلاس : کلاسی مثل کلاس انسان رو در نظر بگیرید . یک انسان نرمال انسانی هست با یک سر و دو دست و دو پا و یک تنه و شکم و ...
نمونه های مختلف انسانی در داشتن مشخصاتی مثل ژن ، جنس گوشت ، جنس خون ، اثر انگشت ، قد ، وزن و غیره ...از همدیگر کاملا مجزا و یکتا هستند و شاید هیچ دو انسانی در این چرخه از یک قیافه کاملا یکسان یا از یک اثر انگشت کاملا یکسان برخوردار نباشه و در داشتن گروهی از مشخصات قراردادی مثل اسم ،فامیلی،نام پدر و ... می تونن مثل و مانندهای زیادی رو داشته باشن ولی اصولا هر کدوم از این مشخصات مختلف برای تفکیک هر نمونه از بقیه نمونه هاست و گوناگونی این مشخصات ، گوناگونی در رفتارها رو سبب می شه. به این شکل توجه کنین:
البته بحث انسان پیچیده تر از این حرفهاست و مثلا در شرایط یکسان به اون اختیار اعمال گوناگونی اعم از خوب و قبیح داده شده و شاید مثالی درست برای این بحث نباشه ولی یکی از ملموس ترین مثالهایی هست که می شه گفت . با این گفتار یکی از چیزهایی که ثابت می شه اینه که انسان واقعا موجود پیچیده اییه.
پس از متولد شدن این نمونه ها ، یکی از این نمونه ها مثلا به اسم آرنولد از مشخصه قدرت زیاد برخوردار می شه و این یه خصیصه است که مثلا برای تعریف اون ، متغیر عددی به نام قدرت به عموم نمونه های انسانی تخصیص داده شده و به مشخصه عددی قدرت آرنولد مقدار 100 اختصاص داده شده و به خاطر این ، از رفتاری مثل غرور زیاد برخوردار می شه .در این مثال فرض بر اینه که غرور یه تابع هست و پارامتر ورودی اون ، مشخصه قدرت هست و هر چی قدرت بیشتر باشه ، غرور هم با یه فرمولی بیشتر می شه.
کلاس مثل نقشه ساختمونی می مونه که بعد از تکمیل اون ، گاهی هزاران ساختمان شبیه به هم از روی اون می سازن با این تفاوت که بحث کلاس از این چیزا هم داینامیکتره و می تونیم هزاران نمونه مختلف رو با مشخصات و صفات مختلف بوجود بیاریم که همگی در یه رده و یه ساختار خاص فعالیت می کنن و برا هر کدوم محدودیتهایی تعیین می شه .(گروهی مشخصات و گروهی رفتارهایی که از مشخصات سرچشمه می گیرن) .
اینک فرض کنین ویرایش کلاسی مثل کلاس انسان رو به شما بدهند و بگند که اختیار اینو داریند که تغییراتی در کلاس کلی اون اعمال کنین و شما در تعریف اون ، مثلا دو سر و سه دست و پنج پا به اون بدیند. بعد از ویرایش ، مشاهده خواهید کرد که بنده حقیر و شما و همه نمونه های مختلف از این کلاس در هر زمانی(حال و آینده) ، دارای دو سر و سه دست و پنج پا خواهیم بود بدون اینکه نیازی به زحمت زیادی و کار اضافی با تک تک نمونه ها باشه و فقط کافیه تایید ویرایش رو بزنین و این یعنی تار و پود بحث کلاس.
در مسائل کلاس و در اکثر اوقات با نمونه هایی سر و کار داریم که محصول مشترک گاه هزاران کلاس مختلفند که این کلاسها برخی از برخی ارث بری دارند و از متدها یا خصوصیتهای هم استفاده می کنند و در نهایت ، کلاسی ، کار نهایی را با هماهنگی عملکرد تمامی این کلاسها به پایان می رسونه.
برای مثال عینی ، انسان رو در نظر بگیرین که می تونیم اونو در کلاس موجودات خشکی قرار بدیم و در این کلاس اونو جزء کلاس مهره داران به حساب بیاریم و از این نمونه مثالها.
بسم الله الرحمن الرحیم
بحث کلاس و برنامه نویسی شی گرا (Object oriented Programing and OOP)
توجه : فایل PDF کلی بحث شی گرایی در آدرس های زیر قرار گرفته شد .بحث کلاس و برنامه نویسی شی گرا (Object oriented Programing and OOP)
در پست اولhttp://www.forum.majidonline.com/showthread.php?t=113351&page=6
سلام عرض می کنم خدمت دوستان عزیز
در ابتدا از همه دوستانی که این تایپیکو به اینجا رسوندن بخصوص آقا جواد تشکر می کنم و با کسب اجازه از ایشون و شما سروران محترم ، بحث کلاس رو شروع می کنم . محض اطلاع قرار شده این مبحثو بنده آموزش بدم .
برای شروع بحث در مورد کلاسها لازم دیدم که مقدمه ای بر مفهومObject Oriented Programin یا همون OOP داشته باشم تا اگه دوستانی در این مورد اطلاعاتی نداشته باشن ، از این مطالب استفاده کنن .چرا که این شروع لازمه تفهیم مبحث کلاسه. امیدوارم بتونم رضایت شما رو جلب کنم.
دیدگاه object oriented از چند دهه اخیر ، تحولی عظیم در دنیای برنامه نویسی ایجاد کرد (اوایل دهه 1970 میلادی توسط آلن کی((alan kay )) و اصول اون بر مبنای طراحی کلاس بود و جالبه تا این حد بدونین که ایده اولیه اون از سلولها و رفتار ها و مشخصات و روابط بین اونها آغاز شد.همونطوری که در دنیای کامپیوتر و سیستم عامل ، همه چیز از حالت نوشتاری جدا می شد و به سمت انتخابی شدن و گزینه ای شدن پیش می رفت ، برنامه نویسان هم به این اصل رسیدند که بهتره برنامه هاشونو از حالت کد نویسی تو در تو و از صفر شروع کردن در بیارن و به یه حالتی شبیه انتخابی شدن گزینه ها ببرن . پس به فکر افتادن که دیگه هر دستور و هر چیزی رو در کلاسهای مخصوصی قرار بدن.
کلاس در حقیقت به ساختار، نقشه و یا طرحی از چیزی گفته می شه که باید باشه یا می تونه باشه ، می تونه پارامتر هایی رو از انواع گوناگون به خودش اختصاص بده و با استفاده از این مشخصات و خصوصیات، رفتار ها و اعمالی خاص رو انجام می ده و این مشخصات (properties) و رفتار ها (methode) در ساختار کلاس ، کپسوله یا بسته بندی می شن. برای درک بهتر کلاس ، متغیر ها می تونند نقش مشخصه ها و توابع می تونند نقش رفتارها رو بازی کنن.
پس از طراحی کلاس ، نمونه های مختلفی (گاه میلیونها و حتی بیشتر) از این کلاس بوجود می یان و به هر کدوم از این نمونه ها در هنگام تولدشون ، مشخصاتی خاص و گاه یکتا تعلق می گیره و هر نمونه ، با استفاده از مشخصاتش ، رفتار خاص خودشو بروز می ده.لازم به ذکره که این متد (همون تابع ) در کلاس به صورت کلی تعریف شده. با دیدی بهتر می تونیم بگیم این نمونه ها یا اشیا (object) ، مشخصات و متد های کلاس مادر رو به ارث می برند.
مثالی ملموس از کلاس : کلاسی مثل کلاس انسان رو در نظر بگیرید . یک انسان نرمال انسانی هست با یک سر و دو دست و دو پا و یک تنه و شکم و ...
نمونه های مختلف انسانی در داشتن مشخصاتی مثل ژن ، جنس گوشت ، جنس خون ، اثر انگشت ، قد ، وزن و غیره ...از همدیگر کاملا مجزا و یکتا هستند و شاید هیچ دو انسانی در این چرخه از یک قیافه کاملا یکسان یا از یک اثر انگشت کاملا یکسان برخوردار نباشه و در داشتن گروهی از مشخصات قراردادی مثل اسم ،فامیلی،نام پدر و ... می تونن مثل و مانندهای زیادی رو داشته باشن ولی اصولا هر کدوم از این مشخصات مختلف برای تفکیک هر نمونه از بقیه نمونه هاست و گوناگونی این مشخصات ، گوناگونی در رفتارها رو سبب می شه. به این شکل توجه کنین:

پس از متولد شدن این نمونه ها ، یکی از این نمونه ها مثلا به اسم آرنولد از مشخصه قدرت زیاد برخوردار می شه و این یه خصیصه است که مثلا برای تعریف اون ، متغیر عددی به نام قدرت به عموم نمونه های انسانی تخصیص داده شده و به مشخصه عددی قدرت آرنولد مقدار 100 اختصاص داده شده و به خاطر این ، از رفتاری مثل غرور زیاد برخوردار می شه .در این مثال فرض بر اینه که غرور یه تابع هست و پارامتر ورودی اون ، مشخصه قدرت هست و هر چی قدرت بیشتر باشه ، غرور هم با یه فرمولی بیشتر می شه.
کلاس مثل نقشه ساختمونی می مونه که بعد از تکمیل اون ، گاهی هزاران ساختمان شبیه به هم از روی اون می سازن با این تفاوت که بحث کلاس از این چیزا هم داینامیکتره و می تونیم هزاران نمونه مختلف رو با مشخصات و صفات مختلف بوجود بیاریم که همگی در یه رده و یه ساختار خاص فعالیت می کنن و برا هر کدوم محدودیتهایی تعیین می شه .(گروهی مشخصات و گروهی رفتارهایی که از مشخصات سرچشمه می گیرن) .
اینک فرض کنین ویرایش کلاسی مثل کلاس انسان رو به شما بدهند و بگند که اختیار اینو داریند که تغییراتی در کلاس کلی اون اعمال کنین و شما در تعریف اون ، مثلا دو سر و سه دست و پنج پا به اون بدیند. بعد از ویرایش ، مشاهده خواهید کرد که بنده حقیر و شما و همه نمونه های مختلف از این کلاس در هر زمانی(حال و آینده) ، دارای دو سر و سه دست و پنج پا خواهیم بود بدون اینکه نیازی به زحمت زیادی و کار اضافی با تک تک نمونه ها باشه و فقط کافیه تایید ویرایش رو بزنین و این یعنی تار و پود بحث کلاس.
در مسائل کلاس و در اکثر اوقات با نمونه هایی سر و کار داریم که محصول مشترک گاه هزاران کلاس مختلفند که این کلاسها برخی از برخی ارث بری دارند و از متدها یا خصوصیتهای هم استفاده می کنند و در نهایت ، کلاسی ، کار نهایی را با هماهنگی عملکرد تمامی این کلاسها به پایان می رسونه.
برای مثال عینی ، انسان رو در نظر بگیرین که می تونیم اونو در کلاس موجودات خشکی قرار بدیم و در این کلاس اونو جزء کلاس مهره داران به حساب بیاریم و از این نمونه مثالها.
انشاءا... در اینده ای نزدیک ، این بحث رو تا ساختن کلاس و کار کردن با اون ادامه خواهیم داد...
در ضمن به این لینک مراجعه کنین چون برا شروع کلاس ، بحث خوبیه:
http://www.forum.majidonline.com/showthread.php?t=76624 در ضمن سعی می کنم pdf این بحثو آماده کنم و در اسرع وقت اونو پیوست کنم.
بای...
آخرین ویرایش: