PDA

View Full Version : چند سوال در مورد متد های static و interface ها



unix_svr4
چهارشنبه 29 اسفند 1386, 14:16 عصر
سلام

1-چرا نمی توان متد های غیر استاتیک (non-static) را از داخل متد های استاتیک (static) صدا زد؟؟؟؟

2-من کتاب های زیادی در مورد شئ گرایی خواندم! ولی همه آنها توضیحات کمی در مورد اینترفیس ها (interface) و کاربرد آنها در زبان جاوا داده بودند! لطفا کمی در مورد اینترفیس ها و کاربرد آنها توضیح دهید.

فرا رسیدن سال نو را به تمامی ایرانیان مخصوصا برنامه نویسان عزیز تبریک می گویم. و سالی پر از موفقییت و سلامتی را برای شما دوستان عزیز از خداوند متعال خواستارم. عید نوروز بر تمامی شما عزیزان مبارک.

موفق باشید.

javaphantom
چهارشنبه 29 اسفند 1386, 14:54 عصر
سلام

1-چرا نمی توان متد های غیر استاتیک (non-static) را از داخل متد های استاتیک (static) صدا زد؟؟؟؟

2-من کتاب های زیادی در مورد شئ گرایی خواندم! ولی همه آنها توضیحات کمی در مورد اینترفیس ها (interface) و کاربرد آنها در زبان جاوا داده بودند! لطفا کمی در مورد اینترفیس ها و کاربرد آنها توضیح دهید.

فرا رسیدن سال نو را به تمامی ایرانیان مخصوصا برنامه نویسان عزیز را تبریک می گوییم. و سالی پر از موفقییت و سلامتی را برای شما دوستان عزیز از خداوند متعال خواستارم. عید نوروز بر تمامی شما عزیزان مبارک.

موفق باشید.

جواب سوال یکتون بسیار ساده می باشه
متدود static به متدود هایی گفته می شود که مستقل از کلاس هستند و وابستگی به این که از کلاس instance گرفته شود بعد به آن دسترسی داشته باشیم را ندارد
علت اینکه متدود main هم بصورت همیشه static هست برای اینکه اول از همه از کلاسی که شما نوشتید مستقل هست پس این امکان را می دهد که بتوانید از کلاستان new یا همان instance بگیرد. برای همین هست که نمی تواند متدود متعلق به کلاستان را در متدودی صدا کنید که متعلق به کلاستان نیست

جواب سوال دوتون هم بسیار سادست
interface کلاسی است کاملا abstract که هر موقعه بخواهید به کلاسی بگویید که چه کار کند یعنی چه رفتارهایی داشته باشد ولی چگونگی پیاده سازی این رفتار رو تعریف نکنید از interface استفاده می کنید. خوبی این کار این هست اگر شما بدانید که کلاسی interfaceی را پیاده سازی کرده ۱۰۰٪ مطمعن هستید که متدودهای موجود در interface در کلاس وجود دارد و شما می توانید در صورت لزوم آن متدودها رو override کنید. در قسمت component نویسی inteface ها بسیار بکار می آیند و همچنین در قسمت develop کردن یک سیستم بزرگ در قسمت معماری کار نیز بسیار بکار می آیید که شما از قبل بتوانید از طریق این interface ها ارتباط و امینت باقی کلاسها رو تضمین کنید. برای framework نویسی خیلی بدرد می خوره

سال نوتم مبارک