منظور از in out یعنی پارامتر خروجی می باشد .
DefaultValue یعنی مقداری که بصورت پیشفرض می گیرد .
I= PersianDate.ToGregorian
در مثال فوق چون پارامتر نداده ایم مقدار پیشفرض به I ریخته می شود .
در قسمت فوق اگر جای property بنویسیم
Sequential یعنی فراخوانی باید به صورت متوالی باشد .
Guarded یعنی فراخوانی می تواند همزمان باشد ولی اجرا متوالی است .
Concurrent یعنی اجرای همزمان .
Isquery اگر انتخاب شود بدون تغییر در وضعیت شی کلاس می ماند.
مثلا Show از کلاس فرم isquery می باشد چرا که در وضعیت کلاس تاثیری نمی گذارد :
بنابراین برای مقداردهی به خصایص به شرح زیر عمل می کنیم :
• Navigation پیمایش :
بنابراین جهت فلش از person به mavitalType ربط دارد.
بنابراین ارتباط فاکتور به فلش به این صورت است که باید کدام رابطه وجود داشته باشد ؟ فاکتور برای مشتری است یا مشتری برای فاکتور ؟
در نتیجه جهت فلش از فاکتور به مشتری می رود.
درواقع navigation عبارتست از جهت اتصال، جهت دسترسی کلاس ها به یکدیگر یعنی کدام کلاس به کدام کلاس دسترسی دارد ؟ این به آن دسترسی دارد یا آن به این ؟
برای ایجاد ارتباط کلاس Person به Marital Type خصیصه status را پاک می کنیم و آن را روی Qualifier می نویسیم به شکل زیر:
Qualifier ویژگی ارتباط دهنده کلاس ها می باشد.
Posted: Tue May 31, 2011 4:54 pm Post subject: Polymorphism
چندریختی : polymorphism
باید بحث توارث و Generalization داشته باشیم
فرض کنیم کلاسی به نام Line و Circle داریم.
خصایص Line مثل x1y1 , x2y2 داشته باشد.
خصایص Circle مثل x,y,r
در نتیجه این د و میتوانند از کلاسی به نام Shape که خصیصه Color دارند.ارث ببرند.
هر سه اینها عملیات Show دارند اما Show که مربوط به Shape می باشد حالت انتزاعی دارد چون واقعا Show وجود ندارد .
Dim c ac new Circle()
C.show();
حال اگر بگوییم Shape.Show نمی تواند بکشد چون شکل خیلی کلی می باشد در نتیجه کلاس Shape انتزاعی است.
حال برنامه نویس می تواند به شکل زیر عمل کند
Dim S As Shape
I f condition1 then
S = new Circle()
Else
S = new Line();
البته چون Circle is a shape عملیات فوق درست است .
حال اگر بگوییم S.Show() در نتیجه هنگام runtime می توان فهمید که کدام Show اجرا میشود.
در نتیجه برنامه نویس می تواند بدون توجه به بلاک if به کار خود ادامه دهد .
در نتیجه برنامه نویس از این S چند ریخت استفاده می کند.
در نتیجه operation نیز می تواند abstract باشد.
در واقع چندریختی عبارتست از استفاده از یک شی کلی در جایگاه کلاس های اختصاصی.
درواقع بالایی Generalize شده پایینی Specialize (Circle,Line)می شود در جاوا می گویند Virtual هستند.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum