Inheritance and Encapsulation

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
05_3_Constructor.
Advertisements

การสืบทอด (Inheritance)
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
Inheritance การสืบทอดคลาส
Object-Oriented Programming
บทที่ 3 Class and Object (2).
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
บทที่ 3 การสืบทอด (Inheritance)
เป็นการนำความรู้ด้าน Microsoft Excel ที่มีความพิเศษตรงที่สามารถ กำหนดสูตรการคำนวณในแต่ละเซลล์ ของ Sheet งานนั้นๆได้ โดยอาศัย ความแม่นยำในการคีย์ข้อมูลเข้าไป.
แบบจำลองฐานข้อมูล คือ เครื่องมือในเชิงแนวคิดที่ใช้ในการอธิบาย ข้อมูล
JSP ติดต่อฐานข้อมูล.
Knowledge- Base Systems XML. Agents FRODO - เป็นการรวมกันของ - การพัฒนาการแก้ไขปัญหาความทรงจำขององค์กรและระบบ เดิมขององค์กร ( ฐานข้อมูล ) ที่ทำแยกกัน.
คอมพิวเตอร์ช่วยสอน (CAI)
แนวทางการสอน เพื่อพัฒนาทักษะเด็กตามรูปแบบการสอน
หน่วยที่ 3 ภาษาคำสั่งพื้นฐานที่ใช้เขียนโปรแกรม PLC
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
เรื่อง หลักการเขียนโปรแกรม เบื้องต้น จัดทำโดย นางสาวชาดา ศักดิ์บุญญารัตน์
นาย สรวิศ เตธัญญวรากูล ปวช.3/2 นาย ศิวกร มาลี ปวช.3/2.
จัดทำโดย นางสาวพิจิตรา ปันเต เลขที่ 18 นางสาวปิยธิดา อุตมา เลขที่ 19 ใบงานที่ 2 เรื่อง ความหมายและความสำคัญของโครงงาน.
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ ครูชาญณรงค์ ปานเลิศ โรงเรียนพระบางวิทยา ครูชาญณรงค์
ซอร์ฟแวร์ ( Software ). Microsoft excel Microsoft excel Microsoft power point.. Link Link.
เทคนิคการสร้าง ภาพเคลื่อนไหว คอมพิวเตอร์ Computer Animation ง
ง21101 การงานอาชีพและเทคโนโลยี ม. 1 เจตคติต่อการประกอบอาชีพ
แนวข้อสอบ Final (จดด่วน)
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
Introduction SQLite Prawit Pimpisan Computer Science RERU.
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
เขียนโปรแกรม Java เบื้องต้น
Inheritance and Method Overriding
Chapter 5 การจัดการข้อผิดพลาด (Exception Handling)
โครงสร้างภาษา C Arduino
การตรวจสอบ การคัดลอกผลงานทางวิชาการ ด้วยโปรแกรม Turnitin
Basic Input Output System
หลักการเชิงวัตถุ (Object Oriented Concept)
กรณีศึกษา : นักเรียน ระดับ ปวช.2 สาขาวิชาการบัญชี
ประกาศกระทรวงทรัพยากรธรรมชาติและสิ่งแวดล้อม
กลุ่มสาระการเรียนรู้วิทยาศาสตร์
Abstract Class and Interface
วิธีการกำหนดค่า Microsoft SharePoint ของคุณ เว็บไซต์ออนไลน์
Object-Oriented Programming การเขียนโปรแกรมเชิงอ็อบเจ็กต์
คุณสมบัติเชิงวัตถุ Chapter 6 Edit
Java Translation Object and Class ในมุมมองคอมพิวเตอร์ Objects หรือ Instances หมายถึงวัตถุที่กำเนิดตัวตนจริงๆจากต้นแบบที่กำหนดโดยคลาส Object.
งานนโยบายและแผนและพัฒนาคุณภาพ คณะวิทยาศาสตร์
Method and Encapsulation
บริษัท พัฒนาวิชาการ (2535) จำกัด
การเขียนภาษาจาวาเบื้องต้น
Week 5 C Programming.
SMS News Distribute Service
Inheritance Chapter 07.
Computer Game Programming
Chapter 3 : Array.
Array: One Dimension Programming I 9.
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ฟังก์ชันของโปรแกรม Computer Game Programming
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
ระบบการส่งต่อข้อมูลอาการไม่พึงประสงค์จากการแพ้ยา
Computer Game Programming
ใบสำเนางานนำเสนอ:

Inheritance and Encapsulation Chapter 3 Inheritance and Encapsulation

ความหมายของ Inheritance การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่มีอยู่ แล้ว คลาสใหม่จะนำแอตทริบิวต์และเมธอดของคลาส เดิมมาใช้ เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก คลาสหนึ่งนั่นเอง เรียกคลาสที่ถ่ายทอดคุณสมบัติของคลาสว่า คลาสแม่ (Superclass) เรียกคลาสที่ได้รับการถ่ายทอดว่า คลาสลูก (Subclass) คลาสลูกสามารถพัฒนาต่อเติมแอตทริบิวต์และเมธ อดของตัวเองได้ คลาสลูกสามารถปรับปรุงแก้ไขแอตทริบิวต์และ เมธอดเดิมที่ได้รับ มาจากคลาสแม่ได้

ตัวอย่างการสร้างคลาสแม่ - คลาสลูก คลาส Car เป็นคลาสรถทั่วไปที่มี สามารถ สตาร์ทเครื่องได้ – start() เปลี่ยนเกียร์ได้ – ChangeGear() ดับเครื่องได้ – stop() คลาส Bus เป็นคลาสรถบัสที่มี สามารถ สตาร์ทเครื่องได้ เปลี่ยนเกียร์ได้ ดับ เครื่องได้ มีผู้โดยสาร - Seat

ตัวอย่างการสร้างคลาสแม่ - คลาสลูก ดังนั้น คลาส Car เป็นคลาสแม่ และ คลาส Bus เป็นคลาสลูกที่สืบทอด คุณสมบัติจากคลาส Car

รู้จักกับคลาสแม่ (Superclass) เป็นคลาสที่เป็นต้นแบบของแอตทริบิวต์และเมธอด อนุญาตให้คลาสอื่นสืบทอดแอตทริบิวต์และเมธอดไป ได้ทั้งหมด ยกเว้นแอตทริบิวต์ที่มีระดับการเข้าถึงเป็น private และ เมธอดที่เป็น constructor ระดับการเข้าถึงแอตทริบิวต์และเมธอดของคลาสแม่ เป็น protected มีรูปแบบการใช้งาน ดังนี้ [modifier] class SuperClassName { [AttributeName] [MethodName] }

รู้จักกับคลาสแม่ (SuperClass) โดยที่ modifier เป็นคีย์เวิร์ดที่กำหนดคุณสมบัติการเข้าถึงคลาส SuperClassName เป็นชื่อคลาสแม่ AttributeName เป็นส่วนของการประกาศแอตทริบิวต์ MethodName เป็นส่วนของการประกาศเมธอด

รู้จักกับคลาสลูก (SubClass) เป็นคลาสที่สืบทอดแอตทริบิวต์และเมธอดจาก คลาสแม่ คลาสลูกสามารถเรียกใช้แอตทริบิวต์และเมธอด จากคลาสแม่ได้ และคลาสลูกมีแอตทริบิวต์และเมธอดเพิ่มเติม เป็นของตัวเองได้ การระบุความสัมพันธ์ให้คลาสเป็นคลาสลูกต้อง ใช้คีย์เวิร์ด extends มีรูปแบบการใช้งาน ดังนี้ [modifier] class SubClassName extends SuperClassName { [AttributeName] [MethodName] }

รู้จักกับคลาสลูก (SubClass) โดยที่ modifier เป็นคีย์เวิร์ดที่กำหนดคุณสมบัติการเข้าถึงคลาส SubClassName เป็นชื่อคลาสลูก SuperClassName เป็นชื่อคลาสแม่ AttributeName เป็นส่วนของการประกาศแอตทริบิวต์ MethodName เป็นส่วนของการประกาศเมธอด

โปรแกรมกำหนดค่าแรงรายวัน ให้กับคลาสแม่-คลาสลูก import java.util.Scanner; class employee { protected float rate=300.0f; } class daily_emp extends employee { } class monthly_emp extends employee {

โปรแกรมกำหนดค่าแรงรายวันให้กับคลาสแม่-คลาสลูก public class SupSubClassTest { public static void main(String[] args) { float r; employee emp1 = new employee(); System.out.println("\"Employee\"\nRate per Day=" +emp1.rate+"BAHT"); Scanner scan = new Scanner(System.in); System.out.print("\"Daily Employee\"\nEnter Rate = "); r = scan.nextFloat();  daily_emp emp2 = new daily_emp(); emp2.rate = r; System.out.println("Rate per Day = " + emp2.rate + " BAHT");  System.out.print("\"Monthly Employee\"\nEnter Salary : "); monthly_emp emp3 = new monthly_emp(); emp3.rate = r; System.out.println("Rate per Day = " + emp3.rate/30 +" BAHT"); }

รู้จักกับ Overriding method ที่สืบทอดมาจากคลาสแม่ เมธอดในคลาสลูกจะมีชื่อเมธอด, ชนิดข้อมูลที่คืนค่า, จำนวนและชนิดข้อมูลของอาร์กิวเมนต์ที่เหมือนกับ คลาสแม่ สามารถพัฒนาเมธอดให้มีการทำงานในเรื่องเดียวกัน แต่แตกต่างกัน ในรายละเอียดของการทำงาน เช่น การคำนวณหาพื้นที่ของรูปทรงเรขาคณิตต่าง ๆ ที่มีสูตร คำนวณที่แตกต่างกัน การคำนวณค่าแรงของพนักงานที่มีวิธีคำนวณที่แตกต่างกัน ไปในแต่ละตำแหน่ง

โปรแกรมคำนวณค่าแรงรวม Override เมธอด calOT() class daily_emp extends employee { } class monthly_emp extends employee { float pay, bonus; float calOT() { pay = hour*rate/work; if (hour>100) pay += bonus; return pay; import java.util.Scanner; class employee { protected float rate = 300.0f, work=10.0f; int hour; float calOT() { return hour*rate/work; }

โปรแกรมคำนวณค่าแรงรวม Override เมธอด calOT() public class InheritOverRideTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("Enter total OT hour : "); employee emp1 = new employee(); emp1.hour = scan.nextInt(); System.out.println("\"Employee\"\nTotal OT Pay = (" + emp1.rate + " * " + emp1.hour + ") = " + emp1.calOT() + " BAHT");  daily_emp emp2 = new daily_emp(); emp2.hour = emp1.hour; System.out.print("\"Daily Employee\"\nRate per Day = "); emp2.rate = scan.nextFloat(); System.out.println("Total OT Pay = (" + emp2.rate + " * " + emp2.hour + ") = " + emp2.calOT()+ " BAHT"); 

โปรแกรมคำนวณค่าแรงรวม Override เมธอด calOT() monthly_emp emp3 = new monthly_emp(); emp3.hour = emp1.hour; System.out.print("\"Monthly Employee\"\nEnter Salary = "); emp3.rate = scan.nextFloat()/30; System.out.print("Enter Bonus = "); emp3.bonus = scan.nextFloat(); System.out.println("Total OT Pay = (" + emp3.rate + " * " + emp3.hour + ") + " + emp3.bonus + " = " + emp3.calOT() + " BAHT"); }

รู้จักกับ Overload Constructor โดยใช้คีย์เวิร์ด super จึงสามารถทำ overload constructor ใน คลาสแม่ได้ตามปกติ

โปรแกรมคำนวณค่าแรงรวม Overload Constructor public employee(int h, float r) { pay = h*r/work; } public employee(int h, float r, float b) { this(h,r); if (h>100) pay += b; } import java.util.Scanner; class employee { protected float rate = 300.0f, work=10.0f, pay; public employee(int h) { pay = h*rate/work; }

โปรแกรมคำนวณค่าแรงรวม Overload Constructor class daily_emp extends employee { public daily_emp (int h,float r) { super(h,r); } }  class monthly_emp extends employee { public monthly_emp (int h, float r, float b) { super(h,r,b);

โปรแกรมคำนวณค่าแรงรวม Overload Constructor public class InheritOverLoadTest { public static void main(String[] args) { float rate; Scanner scan = new Scanner(System.in); System.out.print("Enter total OT hour : "); int hour = scan.nextInt(); employee emp1 = new employee(hour); System.out.println("\"Employee\"\nTotal OT Pay = (" + emp1.rate + " * " + hour + ") = " + emp1.pay + " BAHT"); 

โปรแกรมคำนวณค่าแรงรวม Overload Constructor System.out.print("\"Daily Employee\"\nRate per Day = "); rate = scan.nextFloat(); daily_emp emp2 = new daily_emp(hour,rate); System.out.println("Total OT Pay = (" + emp2.rate + " * " + hour + ") = " + emp2.pay + " BAHT");   System.out.print("\"Monthly Employee\"\nEnter Salary = "); System.out.print("Enter Bonus = "); float bonus = scan.nextFloat(); monthly_emp emp3 = new monthly_emp(hour,rate/30,bonus); System.out.println("Total OT Pay = (" + emp3.rate + " * " + hour + ") + " + bonus + " = " + emp3.pay + " BAHT"); }

รู้จักกับ FinalClass และ FinalMethod ทำให้มีคุณสมบัติดังนี้ ตัวแปรเป็นค่าคงที่ ไม่สามารถเปลี่ยนแปลงค่าได้ เมธอดไม่สามารถถูก override ได้ คลาสไม่สามารถถ่ายทอดคุณสมบัติได้ คือไม่สามารถเป็นคลาสแม่ได้

โปรแกรมการคำนวณค่าแรงรวม โดยใช้ FinalClass import java.util.Scanner; final class employee { float rate = 300.0f, work=10.0f; int hour; float calOT() { return hour * rate / work; } float calOT(float bonus) { float pay = hour*rate/work; if (hour>100) pay += bonus; return pay; }

โปรแกรมการคำนวณค่าแรงรวม โดยใช้ FinalClass  public class FinalTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); employee emp = new employee(); System.out.print("Enter total OT hour : "); emp.hour = scan.nextInt(); System.out.println("\"Employee\"\nTotal OT Pay = (" + emp.rate + " * " + emp.hour + ") = " + emp.calOT() + " BAHT");   employee daily_emp = new employee(); daily_emp.hour = emp.hour; System.out.print("\"Daily Employee\"\nRate per Day = "); daily_emp.rate = scan.nextFloat(); System.out.println("Total OT Pay = (" + daily_emp.rate + " * " + daily_emp.hour + ") = " + daily_emp.calOT()+ " BAHT");

โปรแกรมการคำนวณค่าแรงรวม โดยใช้ FinalClass employee monthly_emp = new employee(); monthly_emp.hour = emp.hour; System.out.print("\"Monthly Employee\"\nEnter Salary = "); monthly_emp.rate = scan.nextFloat(); monthly_emp.rate = monthly_emp.rate/30; System.out.print("Enter Bonus = "); int b = scan.nextInt(); System.out.println("Total OT Pay = (" + monthly_emp.rate + " * " + monthly_emp.hour + ") + " + b + " = " + monthly_emp.calOT(b) + " BAHT"); }

โปรแกรมการคำนวณค่าแรงรวม โดยใช้ FinalMethod class daily_emp extends employee { } class monthly_emp extends employee { float calmOT(float bonus) { float pay = hour*rate/work; if (hour>100) pay += bonus; return pay; } import java.util.Scanner; class employee { float rate = 300.0f, work=10.0f; int hour; final float calOT() { return hour*rate/work; } }

โปรแกรมการคำนวณค่าแรงรวม โดยใช้ FinalMethod public class FinalMethod { public static void main(String[] args) { Scanner scan = new Scanner(System.in); employee emp1 = new employee(); System.out.print("Enter total OT hour : "); emp1.hour = scan.nextInt(); System.out.println("\"Employee\"\nTotal OT Pay = (" + emp1.rate + " * " + emp1.hour + ") = " + emp1.calOT() + " BAHT");   daily_emp emp2 = new daily_emp(); emp2.hour = emp1.hour; System.out.print("\"Daily Employee\"\nRate per Day = "); emp2.rate = scan.nextFloat(); System.out.println("Total OT Pay = (" + emp2.rate + " * " + emp2.hour + ") = " + emp2.calOT()+ " BAHT"); 

โปรแกรมการคำนวณค่าแรงรวม โดยใช้ FinalMethod monthly_emp emp3 = new monthly_emp(); emp3.hour = emp1.hour; System.out.print("\"Monthly Employee\"\nEnter Salary = "); emp3.rate = scan.nextFloat(); emp3.rate = emp3.rate/30; System.out.print("Enter Bonus = "); int b = scan.nextInt(); System.out.println("Total OT Pay = (" + emp3.rate + " * " + emp3.hour + ") + " + b + " = " + emp3.calmOT(b) + " BAHT"); }

Encapsulation เป็นการซ่อนรายละเอียดเพื่อป้องกันไม่ให้ ออบเจ็กต์ภายนอกเข้าถึงข้อมูล ได้อย่างอิสระ ออบเจ็กต์ไม่สามารถเรียกใช้หรือเปลี่ยนแปลงค่า ข้อมูลได้ สามารถจำกัดสิทธิการใช้งานแอตทริบิวต์และเมธ อดได้ด้วย ระดับการเข้าใช้งานของ access modifier หากต้องการซ่อนรายละเอียด ให้กำหนดเป็นแบบ private หากต้องการใช้งานแอตทริบิวต์หรือเมธอดใดๆ ให้กำหนดเป็นแบบ public

โปรแกรมคำนวณค่าแรงรวม ใช้ Encapsulation

Reference ผศ.สุดา เธียรมนตรี, คู่มือเรียนเขียน โปรแกรมภาษา Java .บริษัท ไอดีซี พรีเมียร์ จำกัด .กรุงเทพฯ: 2555.