Inheritance and Method Overriding

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

C# เบื้องต้น ก่อนการเขียนเกมด้วย XNA
Object-Oriented Programming IUP02 At Exceep camp.
คืออะไร? คือ queue ที่ access element ตามความสำคัญของตัว element นั้น
Object and classes.
Inheritance.
05_3_Constructor.
Object-Oriented Programming
Object Oriented Programing
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
Selected Topics in IT (Java)
Network programming Asst. Prof. Dr. Choopan Rattanapoka
การสืบทอด (Inheritance)
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
OOP (Object-Oriented Programming)
C# Programming Exceed Camp: Day 3.
Generalization & Specialization
Lecture 9 Class (คลาส) To do: Hand back assignments
Inheritance การสืบทอดคลาส
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
บทที่ 6 เมธอด.
JAVA PROGRAMMING PART IV.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
Method of Class อ.สุพจน์ สิงหัษฐิต
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD)
Lec05 :: การสืบทอด (inheritance)
Nattapong Songneam BankAccount – Example Nattapong Songneam
Object-Oriented Programming
Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai
บทที่ 3 Class and Object (2).
Java Programming Java Structure and Datatype,Variable
Midterm outline Object-oriented programming Wattanapong suttapak, Software Engineering, school of Information communication Technology, university of phayao.
Object Oriented Programming : OOP
การสืบทอด (inheritance)
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
Object-Oriented Programming
เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป
chapter 2 - Construction and destruction - Overloading method
Chapter 6 Abstract Class and Interface
บทที่ 3 การสืบทอด (Inheritance)
Object and classes.
Object Oriented Software Analysis and Design
The Unified Modelling Language (UML)
Object-Oriented Programming Paradigm
Chapter 5 การจัดการข้อผิดพลาด (Exception Handling)
Class Diagram.
Object Roles and the Importance of Polymorphism
UML (Unified Modeling Language)
Abstract Class and Interface
Starting JAVA : JAVA PROGRAMMING (การ โปรแกรมภาษาจาวา) มัลลิกา เกลี้ยงเคล้า | SC1419.
Java Translation Object and Class ในมุมมองคอมพิวเตอร์ Objects หรือ Instances หมายถึงวัตถุที่กำเนิดตัวตนจริงๆจากต้นแบบที่กำหนดโดยคลาส Object.
Method and Encapsulation
Inheritance and Encapsulation
Inheritance Chapter 07.
Overload Method and Poly Morphism
Class Inheritance and Interfaces.
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
Class Diagram.
ใบสำเนางานนำเสนอ:

Inheritance and Method Overriding อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tkorinp@hotmail.com)

Inheritance and Method Overriding เข้าใจวิธีการใช้คลาสนามธรรมเพื่อสะท้อนคุณลักษณะทั่วไป ใช้ UML แสดงการสืบทอด การทำ method Overriding การแทนที่เมธอด ความเหมาะสมในการใช้ “Super” Implement ในภาษา Java

Object Oriented Programming using Java Object Families Generalisation and Specialisation Inheritance Implementing Inheritance in Java Constructors Constructor Rules Access Control Abstract Classes Overriding Methods The ‘Object’ Class Overriding toString() defined in ‘Object’

Object Families สิ่งมีชีวิตบนโลกมีความเกี่ยวข้องกัน แบบครอบครัว แนวคิดการส่งต่อ มรดก ไปยังลูกหลานของ พ่อแม่ เป็นแนวคิดที่สำคัญของหลักการ OOP ปกติการใช้ constructors and access control (public/private) ปัญหาเฉพาะที่เกี่ยวข้องกับการสืบทอด คือ การพิจารณาคลาสแบบนามธรรมและเมธอดที่สำคัญในการสืบทอด

Generalisation and Specialisation Class เป็นรูปแบบในการพิจารณารายละเอียดและสร้างวัตถุที่แตกต่างกัน เช่นนักศึกษารหัส 594602001 เป็นตัวอย่างของนักศึกษา รหัส 594602001 คือนักศึกษา Class สามารถหาความสัมพันธ์ที่คล้ายกัน เพื่อจัดกลุ่มและลำดับชั้น ตัวอย่างเช่น อาณาจักรสัตว์ทางชีววิทยา การจำแนกสิ่งของตามเกณฑ์

Inheritance การระบุลักษณะทั่วไปไว้ด้านบนของลำดับชั้นและเฉพาะเจาะจงมากขึ้นในลำดับถัดไป ตามหลักการเชิงวัตถุ (generalization and specialization) ลักษณะด้านบนจะถูกถ่ายทอดให้ Class หรือ Object ในลำดับถัดไปแบบอัตโนมัติ เรียกว่า “inheritance” ตัวอย่างเช่น เมื่อพิจารณาสิ่งพิมพ์ทั้งสองประเภท คือ หนังสือและนิตยสาร UML Class

Inheritance วิเคราะห์สิ่งที่เหมือนและต่างกัน สามารถรวมกันได้เป็น สามารถสืบทอดเป็นBook และ Magazine

Inheritance

Implementing Inheritance in Java Superclass เป็นคลาสที่มีคุณสมบัติพื้นฐาน Subclass สามารถระบุการสืบทอดคุณสมบัติจาก superclass โดยใช้คำหลัก extends ตัวอย่างเช่น class MySubclass extends MySuperclass { // additional instance variables and // additional methods }

Constructors แต่ละClass (ไม่ว่าจะSub หรือ Super) ควรมีการห่อหุ้ม มีการกำหนดเริ่มต้นของตัวแปร การตั้งค่าที่เกี่ยวข้องกับสถานะ Constructors ใช้สำหรับกำหนดค่าเริ่มต้นทั่วไปของ Class Subclass สามารถมีคอนสตรัคเตอร์ของตัวเองสำหรับกำหนดค่าเริ่มต้น แต่หากต้องการใช้ค่าเริ่มต้นของ Superclass ต้องใช้คำหลัก “super” Class MySubClass extends MySuperClass { public MySubClass (sub-parameters) super(super-parameters); // other initialization }

Constructors ในการสร้าง Class โดยการเรียกใช้ Constructors ถือเป็นคำสั่งแรก พารามิเตอร์ที่ส่งผ่านไปยังSubclass public Publication (String pTitle, double pPrice, int pCopies) { title = pTitle; // etc. } public Book (String pTitle, String pAuthor, double pPrice, int pCopies) { super(pTitle, pPrice, pCopies); author = pAuthor; //etc. }

Constructor Rules หาก superclass มี parameterless (หรือเริ่มต้น) คอนสตรัคเตอร์นี้จะถูกเรียกโดยอัตโนมัติ หากไม่มีการเรียกใช้อย่างชัดเจนกับซูเปอร์จะต้องสร้าง constructor ของ subclass

Access Control การใช้ protected เพื่อให้เข้าถึงได้จาก Subclass การสร้างเมธอดในการเข้าถึงและปรับเปลี่ยนค่า private int copies; public int getCopies () { return copies; } public void setCopies(int pCopies) copies = pCopies; // in Book public void orderCopies(int pCopies) { setCopies(getCopies() + pCopies); } // and in Magazine public void recvNewIssue(String pNewIssue) { setCopies(orderQty); currIssue = pNewIssue; } วิธีการเหล่านี้ช่วยให้ superclass ควบคุมการเข้าถึงตัวแปรแบบ Private

Abstract Classes แนวคิดในการสร้างคลาสที่ร่างขึ้น และป้องกันการสร้างวัตถุจากคลาสประเภทนี้ การรวบรวมคุณลักษณะทั่วไป สำหรับสืบทอดไปเป็น Subclass โดยประกาศ “abstract” abstract class SuperClassName { // etc. }

Overriding Methods Subclass สามารถสืบทอดเมธอดของ Superclass ได้ ซึ่งเป็นคุณสมบัติหนึ่งของการสืบทอด (inherited) สามารถปรับปรุงเมธอดและทำให้เมธอดเหมาะสมกับ Subclass ยิ่งขึ้น public class DiscMag extends Magazine { // the constructor public DiscMag (String pTitle, double pPrice, int pOrderQt, String pCurrIssue, int pCopies) { super(pTitle, pPrice, pOrderQty, pCurrIssue, pCopies); } // the overridden method public void recvNewIssue(String pNewIssue) super.recvNewIssue(pNewIssue); System.out.println("Check discs attached to this magazine");

The ‘Object’ Class Object หรือวัตถุ เป็นเสมือนตัวแทนของทุกอย่างในคลาสที่กำหนดขึ้น โดยเป็นส่วนบนสุดในการเข้าถึงสิ่งต่าง ๆ ที่อยู่ภายใน ประกาศ เพื่อใช้งาน object จาก Class “new” เพื่อกำหนดค่าเริ่มต้นจาก Class ให้กับ object

Overriding toString() defined in ‘Object’

Summary Inheritance ช่วยให้สะท้อนคุณสมบัติทั่วไปและพฤติกรรม โดยจำลองไว้ใน superclass subclass ถูกนำมาใช้ในการจำลองคุณลักษณะเฉพาะและพฤติกรรม code ที่เขียนใน superclass สืบทอดไปยัง subclasses ทั้งหมด ถ้าต้องการแก้ไขหรือปรับปรุง code สามารถปรับที่ superclass จะส่งผลกระทบต่อ subclasses ทั้งหมด ช่วยลดการเขียนCode ในโปรแกรม constructors ที่สามารถนำไปใช้กับ Subclass superclass สามารถกำหนดเป็น Abstract เพื่อป้องกันการสร้างวัตถุ สามารถทำ override เพื่อปรับปรุงเมธอดให้สอดคล้องกับ Subclass ใน Java ทุกคลาสสืบทอดมาจาก Class “Object” Object เป็นการกำหนดการดำเนินการแบบสากล เป็นตัวแทนในการใช้ประโยชน์จากคลาสที่กำหนด