علوم مهندسی کامپیوتر و IT و اینترنت

ارث بری استفاده ی مجدد از کلاس توسط وراثت

ersbari

در نمایش آنلاین پاورپوینت، ممکن است بعضی علائم، اعداد و حتی فونت‌ها به خوبی نمایش داده نشود. این مشکل در فایل اصلی پاورپوینت وجود ندارد.






  • جزئیات
  • امتیاز و نظرات
  • متن پاورپوینت

امتیاز

درحال ارسال
امتیاز کاربر [0 رای]

نقد و بررسی ها

هیچ نظری برای این پاورپوینت نوشته نشده است.

اولین کسی باشید که نظری می نویسد “ارث بری استفاده ی مجدد از کلاس توسط وراثت”

ارث بری استفاده ی مجدد از کلاس توسط وراثت

اسلاید 1: مظفر بگ محمدیدانشگاه ایلامارث بری استفاده ی مجدد از کلاس توسط وراثت

اسلاید 2: استفاده ی مجدد از کلاس2ما دیدیم که چگونه کلاسها و کد آنها در ترکیب استفاده شدند.در ترکیب، شی یک یا چند شی دیگر را به عنوان متغییر استفاده می کرد. ترکیب را بطه ی ”داشتن“ را مدل می کند. هر Person یک نام (String) دارد.ماشین موتور دارد.کتاب صفحه دارد.

اسلاید 3: ارتباط اشیاء3شی می تواند نوع خاصی از یک شی دیگر باشد. ماشین یک وسیله ی نقلیه است.مثلث یک چند ضلعی است. دانشجو از نوع Person است. این نوع ارتباط تحت نام ”نوعی از“ شناخته می شود. در OOP، این مدل ارتباطی توسط تکنیک برنامه نویسی وراثت مدل می شود. وراثت با اضافه کردن به کلاسهای جاری، کلاسهای جدیدی ایجاد می کند. یعنی کلاس جاری بدون دستکاری استفاده می شود.

اسلاید 4: 4وراثتوراثت از تکنیکهای اصلی OOP است. نحوه ی استفاده از وراثت:ابتدا یک کلاس عمومی تعریف می شود. سپس نسخه های خصوصی تر کلاس را با اضافه کردن متدها و متغییرهای جدید تعریف می کنیم.می گوییم که نسخه ی خصوصی متدها و متغییرهای نسخه ی عمومی کلاس را به ارث برده است.

اسلاید 5: 5کلاسهای مشتق شده معمولا هنگام طراحی بعضی کلاسها وراثت بصورت طبیعی خود را نمایان می کند:در برنامه ی حقوق کارمندان یک اداره دو نوع کارمند داریم: ساعتی و حقوقیکارمندان ساعتی می توانند پاره وقت یا کامل باشند.کارمندان با حقوق ماهانه ی مشخص نیز به دو دسته ی فنی و اداری تقسیم می شوند.

اسلاید 6: 6کلاسهای مشتق شدهتمام کارمندان مشخصات مشترکی دارند:اسم و تاریخ استخداممتدهای دسترسی و تغییر نام و تاریخ استخدامبعضی کارمندان مشخصات خصوصی تری دارند:میزان پرداختکارمند ساعتی: دستمزد هر ساعت کارکارمند پیمانی: میزان پایه ی حقوقنحوه ی محاسبه میزان پرداختی برای این دو نوع کارمند متفاوت است.

اسلاید 7: وراثت و OOP7وراثت نوعی انتزاع است که به منظور:اشتراک مشابتهای بین کلاسها (مثل نام و تاریخ استخدام) و حفظ تفاوتها (مثل نحوه محاسبه ی میزان پرداختی) انجام می شود. وراثت به ما اجازه می دهد که کلاسها را بصورت خانواده هایی از نوع مرتبط دسته بندی کنیم و متدها و خصوصیات مشترک آنها را به اشتراک بگذاریم.

اسلاید 8: 8کلاسهای عمومیمی توان برای تمام کارمندان یک کلاس عمومی به نام Employee تعریف کرد.سپس می توان کارمندان ساعتی و پیمانی را از روی این کلاس تعریف کرد.سپس می توان از کلاس HourlyEmployee برای تعریف کلاس PartTimeHourlyEmployee استفاده کرد و ....

اسلاید 9: 9A Class Hierarchy

اسلاید 10: کلاس Employee10/** Class Invariant: All objects have a name string and hire date. A name string of No name indicates no real name specified yet. A hire date of Jan 1, 1000 indicates no real hire date specified yet.*/public class Employee{ private String name; private Date hireDate;// no-argument constructor public Employee( ) { name = No name; hireDate = new Date(Jan, 1, 1000); //Just a placeholder. }// alternate constructor public Employee(String theName, Date theDate){ /* code here */ }// copy constructor public Employee(Employee originalObject){ /* code here */ }(continued)

اسلاید 11: کلاس Employee 11// some accessors and mutators public String getName( ){ /* code here */ } public Date getHireDate( ){ /* code here */ } public void setName(String newName){ /* code here */ } public void setHireDate(Date newDate){ /* code here */ }// everyone gets the same raisepublic double calcRaise( ){ return 200.00; }// toString and equals public String toString( ){ /* code here */ } public boolean equals(Employee otherEmployee){ /* code here */ } } // end of Employee Class

اسلاید 12: 12کلاسهای مشتق شدهچون کارمند ساعتی نوعی از کارمند است، می گوییم که از کلاس Employee مشتق شده است. کلاس مشتق شده را می توان با اضافه کردن متد یا خوصصیت به یک کلاس جاری تعریف نمود. کلاس مشتق شده از کلاس مبنا مشتق می شود. هنگام تعریف کلاس مشتق شده باید عبارت extends BaseClass استفاده شود. public class HourlyEmployee extends Employee

اسلاید 13: کلاس HourlyEmployee 13/** Class Invariant: All objects have a name string, hire date, nonnegative wage rate, and nonnegative number of hours worked. */public class HourlyEmployee extends Employee {// instance variables unique to HourlyEmployee private double wageRate; private double hours; //for the month// no-argument Constructorpublic HourlyEmployee( ){ /* code here */}// alternative constructorpublic HourlyEmployee(String theName, Date theDate, double theWageRate, double theHours) { /* code here */}// copy constructor public HourlyEmployee(HourlyEmployee originalHE){ /* code here */}(continued)

اسلاید 14: کلاس HourlyEmployee 14// accessors and mutator specific to HourlyEmployeepublic double getRate( ){ /* code here */ } public double getHours( ){ /* code here */ }public void setHours(double hoursWorked){ /* code here */ } public void setRate(double newWageRate){ /* code here */ }// toString and equals specific for HourlyEmployee public String toString( ){ /* code here */ } public boolean equals(HourlyEmployee otherHE){ /* code here */ }}// end of HourlyEmployee Class

اسلاید 15: 15زیر کلاسبه کلاس مشتق شده زیر کلاس هم می گویند.کلاس والد تحت اسم کلاس مبنا یا کلاس پایه نیز شناخته می شود. زیر کلاس موارد زیر را از کلاس مبنا به ارث می برد:متدهای عمومیمتغیرهای عمومی و خصوصیمتغیرهای عمومی و خصوصی استاتیککلاس مشتق شده می تواند متغییر، متغییر استاتیک و متد داشته باشند.

اسلاید 16: 16اعضایی که به ارث برده می شوند. A derived class automatically has all of theinstance variables, static variables, and public methodsof the base classDefinitions for the inherited variables and methods do not appear in the derived class.The code is reused without having to explicitly copy it, unless the creator of the derived class redefines one or more of the base class methods.

اسلاید 17: استفاده از HourlyEmployee17public class HourlyEmployeeExample{public static void main(String[] args){ HourlyEmployee joe =new HourlyEmployee(Joe Worker, new Date(1, 1, 2004), 50.50, 160);// getName is defined in Employee System.out.println(joes name is + joe.getName( ));// setName is defined in Employee System.out.println(Changing joes name to Josephine.); joe.setName(Josephine);// setRate is specific for HourlyEmployeeSystem.out.println(“Giving Josephine a raise”);joe.setRate( 65.00 );// calcRaise is defined in Employeedouble raise = joe.calcRaise( );System.out.println(“Joe’s raise is “ + raise );}}

اسلاید 18: 18بازنویسی یک متدکلاس مشتق شده می تواند کلاسهای به ارث برده شده را بازنویسی کند.برای بازنویسی یک متد، آن متد در کلاس مشتق شده دوباره تعریف و پیاده می شود. بعنوان مثال، کلاس HourlyEmployee روش خود را برای محاسبه ی افزایش حقوق دارد. لذا، متد calcRaise( ) از کلاس Employee را دوباره باز نویسی می کند.

اسلاید 19: مثال بازنویسی19public class Employee{....public double calcRaise( ) { return 200.00; }}public class HourlyEmployee extends Employee{. . . .// overriding calcRaise – same signature as in Employeepublic double calcRaise( ) {return 500.00; }}حالا کد:HourlyEmployee joe = new HourlyEmployee( );double raise = joe.calcRaise( );متد calcRaise را از کلاس HourlyEmployee فراخوانی می کند.جهت بازنویسی یک متد در کلاس مشتق شده، امضای متد در کلاس مشتق شده باید با امضای متد در کلاس پایه یکسان باشد.

اسلاید 20: 20بازنویسی و بارگذاری مجدددقت کنید که بازنویسی و بارگذاری مجدد متد را با هم قاطی نکنید. در بازنویسی متد، امضای متد در کلاس مشتق شده با امضای متد در کلاس پایه یکسان است. اما اگر امضای متدی در کلاس مشتق شده یا در کلاس پایه با امضای متد در کلاس پایه متفاوت باشد (اما اسم متدها یکسان باشد)، می گوییم که متد دوباره بارگذاری شده است. دقت کنید که در هر دو حالت، کلاس مشتق شده به متد کلاس پایه دسترسی دارد و می تواند از آن استفاده کند.

اسلاید 21: 21اصلاح کننده ی finalاگر کلمه final قبل از تعریف متد قرار گیرد، متد را نمی توان در کلاسهای مشتق شده بازنویسی کرد. اگر کلمه final قبل از تعریف کلاس قرار گیرد، نمی توان از آن کلاس اشتقاق نمود و ارث بری کرد.

اسلاید 22: 22 استفاده از متغییرهای خصوصی کلاس پایهدر متدهای کلاس مشتق شده، نمی توان متغییر خصوصی را با اسم فراخوانی کرد. یک شی از نوع HourlyEmployee به متغییر hireDate خصوصی دسترسی ندارد اگر چه از کلاس پایه ی Employee ارث بری نموده است. اما با استفاده از متدهای accessor و mutator تعریف شده در کلاس پایه، می توان در کلاس مشتق شده به متغییرهای کلاس پایه دسترسی داشت. یک شی از نوع HourlyEmployee با استفاده از متدهای getHireDate و setHireDate به متغییر hireDate خصوصی دسترسی دارد.

اسلاید 23: 23 استفاده از متغییرهای خصوصی کلاس پایه ...اگر کلاس مشتق شده به متغییرهای خصوصی دسترسی داشته باشد، هر کس که بخواهد اصول کپسوله سازی را نقض کند، می تواند با استفاده از وراثت از روی کلاس پایه یک کلاس مشتق شده بسازد و به متغییرهای خصوصی کلاس پایه دسترسی داشته باشد. یعنی ممکن است به اشتباه یا عمداً متغییرهای خصوصی را بصورت نادرست تغییر داد.

اسلاید 24: 24دلیل عدم ارث بری متدها در کلاسهای مشتق شده متدهای خصوصی کلاس پایه نیز مثل متغییرهای خصوصی قابل ارث بری نیستند. متد خصوصی کاملاً غیر قابل دسترسی است مگر این که بصورت غیر مستقیم صدا زده شود. یعنی ما متدی عمومی از کلاس پایه را صدا بزنیم و داخل آن متد یک متد خصوصی کلاس پایه صدا زده شود. این موضوع ایجاد اشکال نمی کند زیرا متدهای خصوصی بعنوان متد کمکی تعریف شده اند و متد اصلی نیستند.

17,000 تومان

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

در صورت عدم رضایت سفارش برگشت و وجه به حساب شما برگشت داده خواهد شد.

در صورت نیاز با شماره 09353405883 در واتساپ، ایتا و روبیکا تماس بگیرید.

افزودن به سبد خرید