PDA

View Full Version : گفتگو: کلاس ها در وی بی



MP.C-Writer
شنبه 25 تیر 1390, 18:49 عصر
سلام بر همه دوستان و اساتید محترم:

می خواستم در مورد کلاس ها، موارد استفاده شون، طریقه ایجاد کردن و استفاده کردنشون برای بچه ها توضیح بدین. ممنون :قلب:

returnx
شنبه 25 تیر 1390, 19:26 عصر
می خواستم در مورد کلاس ها، موارد استفاده شون،
کلاس الگویی از یک شی هست ، برای ایجاد یک شی ابتدا یک کلاس ایجاد میکنیم بعد یک شی از اون کلاس میسازیم ...
موارد استفاده از کلاس:
خوب بدیهی هست برای ساخت یک شی ما نیاز به کلاس اون داریم ،شما از شی فرم استفاده میکنید ، فرم Vb یک شی ساخته شده از کلاس فرم هاست ، یعنی بجای اینکه هر باز کد ساخت یک فرم رو VB بیاد برای شما بنویسه ، یک بار یک کلاس ایجاد کرده ، توابع رو نوشته ، مثلا رویداد Form Load ، رویداد Form Load یک تابع کلاس هست ، که هر بار شی ساخته شد اون باید اجرا بشه...
حالا فرض کنید Vb از کلاس ها استفاده نمیکرد ، شما هم در زمان انتخاب فرم یکبار Standard Form رو انتخاب کردید ، یک فرم دیگه هم از نوع Splash Form میسازید اونموقع یا باید خودتون زحمت کدنویسی سخت Win32 رو انجام میدادید و یک فرم با خواص جدید میساختید یا Vb باید زحمتش میکشید...
اما VB اومد از قانون شی گرایی استفاده کرد و یک کلاس بنام کلاس فرم ساخت ، براش Property های مختلف مثل طول ، ارتفاع ، Border و ... تعریف کرد و برای ساخت یک فرم جدید فقط یک شی از این کلاس میسازه با خاصیت ها جدید...
بزارید خیالتون رو راحت کنم هر شی ای که در VB ایجاد میکنید خودشون از یک کلاس ساخته میشند....
مزیت : شی گرایی در این است که شما یک بار یک کلاس ایجاد میکنید کد ها رو مینویسید و با دو خط n تا شی ایجاد میتونید کنید...
کلاس ها رو میشه به صورت inline در برنامه ایجاد کرد یا اون رو در یک کتابخانه مثل فایل های DLL ذخیره کرد و هر وقت که احتیاج داشتید کامپایل بشه...

طریقه ایجاد کردن و استفاده کردنشون
این دیگه خودش یک شاهنامه هست، برای اینگونه چیزها به کتاب باید مرا جع کنید...
اما یک نصیحت ، اگه میخواین شی گرایی رو یاد بگیرید ابتدا شی گرایی در C++ رو یاد بگیرید تا کامل با مفهوم شی و کلاس ، دوست یک کلاس ، توابع Private و Public و ... آشنا بشید بعد بیاید شی گرایی در VB رو شروع کنید ، چون VB به طور کامل شی گرایی رو پشیبانی نمیکنه ، اما میشه توش شی ساخت...

MP.C-Writer
یک شنبه 26 تیر 1390, 12:22 عصر
با کلاس ها توی ++c آشنایی دارم. می خواستم ببینم تو وی بی چی کار میشه کرد؟ مثلا توی ++C اینجوری می نوشتیم:
class students
{
public:
...

}

ولی وقتی تو وی بی یه class module درست می کنم. توش رویدادهای Initialize و Terminate هست که هر چند معانیش رو می دونم ولی نمی فهمم که برای چی هستند. یعنی چه وقت کلاس به وجود می یاد و کی از بین می ره؟ توابع کلاس و متغیر ها رو باید کجا نوشت؟ تو این رویدادها یا تو قسمت جنرال؟

محسن واژدی
یک شنبه 26 تیر 1390, 16:47 عصر
وقتی تو وی بی یه class module درست می کنم. توش رویدادهای Initialize و Terminate هست که هر چند معانیش رو می دونم ولی نمی فهمم که برای چی هستند. یعنی چه وقت کلاس به وجود می یاد و کی از بین می ره؟

سلام
کلاس ها توسط New ایجاد میشوند و تا زمانی که ایجاد نشوند در حافظه ایجاد نخواهند شد، کلاس ها بدوصورت ایجاد خواهند شد:
1- توسط Dim CName As New ClassName
2- توسط Set

CName : نام شی
ClassName: کلاس اصلی

1: اگر لازم است از اول تا پایان برنامه یک کلاس مورد استفاده قرار گیرد شماره 1 مناسب تر خواهد بود
2: اما اگر یک کلاس در زمانی موقت مورد نیاز است و پس از آن نیاز به استفاده آن نیست میتوانید از شماره 2 استفاده کنید، برای ایجاد یک کلاس در زمان لزوم توسط Set:
اعلان زیر را در بخش عمومی فرم یا ماژول کد قرار دهید:

Dim CName As ClassName

همانگونه که قبلا" نیز عرض شد تا زمانی که از New استفاده نشود کلاس ایجاد نشده است، برای ایجاد این کلاس در ابتدای دستورات آنرا بصورت زیر ایجاد کنید:

Set CName=New ClassName


و در انتها نیز برای حذف کلاس از Nothig استفاده کنید:

Set CName=Nothing


رویدادهای Initialize و Terminate به ترتیب اولی همزمان با اولین اجرای اولین تابع، خاصیت ، تغییر متغیر و ... اجرا و دومی نیز همزمان با از بین رفتن کلاس اجرا خواهد شد



توابع کلاس و متغیر ها رو باید کجا نوشت؟ تو این رویدادها یا تو قسمت جنرال؟

مکان نوشتن توابع و متغیر های کلاس هیچ فرقی با ماژول های کد و فرم ندارد (در واقع در قسمت جنرال کلاس) و تنها فرق موجود این است که این کدها در کلاس نوشته میشوند و آنها در ماژول عمومی یا خصوصی همچنین کلاس کدهای موجود را کپسوله میکند و تنها توابعی مورد استفاده عموم قرار میگیرند که آنها را عمومی کرده باشید


موفق باشید

MP.C-Writer
یک شنبه 26 تیر 1390, 17:42 عصر
ممنون داداش