تفاوت public و private

ehsan7xx

Member
سلام بچه ها
راستش یه خورده تو درک این مطلب گنگم چون مثال ندیدم معنی هر کدومو می دونم اما کاربردش رو نمیدونم اینکه در حالت public متدهای این کلاس در خارج از کلاس مربوطه قابل شناسایی می باشد و در صورتی که در حالت private متدها فقط در کلاس مربوطه قابل دسترس می باشند این اگه کسی می تونه برام یه مثال بزاره یا یه توضیحی بده ممنون میشم میدونم همه ی شما بلدین بیشتر قصدم اینه تو یه مثال تفاوت این دو رو بدونم
ممنون
 

ehsan7xx

Member
خوندم اما مثالش نمودونم کدومو چیزی پیدا نکردم من فقط مثال می خوام
 

++Hadi++

Active Member
مثالاشم تو همونجا آپ کردم...
شما یه کلاس می نویسی و از اون n تا شی می سازی ...
اگه یه property یا methode رو از نوع پابلیک تعریف کنی،رو اون شی ساخته شده(بعدش) یه نقطه یا همون دات رو بزنی،می تونی اون مشخصه یا متد Public رو ببینی و دست کاری کنی یا ...
ولی اگه private باشه نمی تونی اونو ببینی.. در ضمن private ها برا این private می شن چون تماما محاسباتی هستند و هیچ کاربری نباید از بیرون به اونها دست پیدا کنه،چون اگه دست پیدا کنه می تونه همه چیز رو به هم بریزه...یعنی به اون متد یا مشخصه private دست پیدا کنه و مقدارشو در حین محاسبات عوض کنه و عملکرد کلاس عملا به هم بریزه...
در نهایت به اینجا سر بزنید ...
برای دانلود فایل PDF فصل چهارم یا همان شی گرایی از سایت پرشین گیگ اینجا را کلیک کنید
دانلود فایل مجموعه پیوست های بحث شی گرایی از سایت persiangig
 

ehsan7xx

Member
PHP:
package//بسته بندی کلاس
{
    import flash.display.MovieClip;//ورود کلاس مووی ها
    import flash.events.MouseEvent;//ورود کلاس رویداد های موس
    public class Ball extends MovieClip//تعریف کلاسی همنام با نام کلاسی مووی کلیپ توپ که در کادر متنی نام کلاس وارد شده بود
    //این نام همان نامی است که در هنگام اکسپوردت فور اکشن اسکریپت 3 وارد شده بود
    //در هنگام اکسپورت ، ساب کلاس را از نوع مووی کلیپ ها قرار دادیم و اینجا با با دستور اکستندز این کلاس را زیر کلاس مووی کلیپ ا کردیم تا با سورس هماهنگی داشته باشد
    {
        public function Ball():void//تعریف تابع سازنده
        {
            this.alpha=0.7;//هر نمونه ساخته شده از کلاس مووی کلیپ توپ در صحنه در حالت عادی شفافیتش 7فت دهم خواهد بود
            this.addEventListener(MouseEvent.ROLL_OVER,OverFun);//به هر نمونه ساخته شده از کلاس مووی کلیپ توپ در حالت لمس موی ، متد لمس داده شد
            this.addEventListener(MouseEvent.ROLL_OUT,OutFun);// به هر نمونه ساخته شده از کلاس اصلی توپ در حالت رهایی از لمس موی متد خروج موس داده شد
        }
        public function OverFun(evt:MouseEvent):void//متد عمومی لمس
        {
            evt.target.alpha=1;//سی که به این متد پاس داده شد آلفایش 1 می شود
            evt.target.scaleX=1.3;//شی که به این متد پاس داده شد اندازه سایز جهت ایکسش 1.3 اندازه اولیه اش می شود یعنی بیشتر
            evt.target.scaleY=1.3;//////////////////////////////////////ایگرگش///////////////////////
        }
        public function OutFun(evt:MouseEvent):void//متد خروج از لمس
        {
            evt.target.alpha=0.7;//شی که به این متد پاس داده شد آلفایش هفت دهم می شود یعنی مثل حالت پیش فرش در متد کانسترکتور
            evt.target.scaleX=1;//شی که به این متد پاس داده شد اندازه سایز ایکسش صد در صد یا کمتر از حالت لمس و برابر حالت پیش فرض می شود
            evt.target.scaleY=1;/////////////////////////////////////////////////////////ایگرگش////////////////////////////////////////
        }
    }
}
 

ehsan7xx

Member
مثلا تو این مثال برای چی ماoverfun و outfun رو public در نظر گرفتیم مگه ما قصدمون اینه که جداگانه انارو هم فراخوانی کنیم یعنی
وقتی نقطه بذاریم نام این دو function برامون ظاهر میشه ؟
یعنی این دو فانکشن متدهای کلاس ما هستن
میشه توضبح بدین >
 

ehsan7xx

Member
درضمن من کد AS کلاس movieClip خود فلش رو چطوری می تونم پیداکنم >
سایتی هست که من کد کلاسهای خود فلش رو ببینم ؟مثلا کلاس movieclip ,Loader
سوال بعدیم اینه میشه کلاسی که خودمون تعریف کردیم یه کلاس خود فلش اضافه کرد مثلا یک کلاس برای package display تعریف کینم مه مستقیم از خود فلش بهش دسترسی داشته باشیم
 

ehsan7xx

Member
سوال اخرم اینه که مثلا تو همین مثال اگه بخواهیم مثلا فانکشن OutFun در کلاس دیگری فراخونی کنیم چطوریه میشه >

شرمنده این همه سوال کردم دیگه تموم شد
 

++Hadi++

Active Member
چون موارد استفاده از اولی تو سورس اصلی هست و اینا،خیلی مهم نیست که با چه فضای نامی (namespace) اونا رو تعریف کردین.یعنی تو این مورد لازم نیست خیلی به public یا private گیر بدین.البته شاید اگر این swf شما تو یکی دیگه لود شه و از طریق content به این swf دست پیدا کنید،نمی دونم بشه به private هاش هم دست پیدا کنید یا نه...
در مورد سوال دومتون:کلاسهای اصلیشو فکر می کنم با C++ از پوشه فلش می تونین بش دست پیدا کنین البته یکی می گفت.اگر هم نشه شاید با C++ اونا رو انجام دادن...در مورد کلاس همپوشان،سعی کنید یه بار مقاله بنده رو بخونید....چون کامل توضیح دادم مخصوصا کلاسهای همپوشان رو ببینید.
در مورد سوال آخرتون،بستگی داره به طریقه استفادتون از کلاس.اگه کلاسی رو در کلاس دیگری نمونه سازی کنیم می تونیم با زدن دات بعد از اسم شی ساخته شده ،به اون property یا methode البته از نوعی که تو اون فضای نام مورد دسترسی قرار می گیره،دست پیدا کنیم.باز پیشنهاد می دم اون pdf رو یه بار بخونید...
 

جدیدترین ارسال ها

بالا