Chapter 4 Abstract & Interface.

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


งานนำเสนอเรื่อง: "Chapter 4 Abstract & Interface."— ใบสำเนางานนำเสนอ:

1 Chapter 4 Abstract & Interface

2 รู้จักกับ Abstract Class
เป็นคลาสที่มีอย่างน้อยหนึ่งเมธอดเป็นประเภท Abstract Method Abstract Method คือเมธอดที่มีแต่ชื่อ ไม่มี การทำงานภายในเมธอด การสร้างออบเจ็กต์จากคลาสประเภทนี้ จึง ต้องนำไปถ่ายทอดสร้างเป็นคลาสลูก และ กำหนดหน้าที่การทำงานให้เมธอดดังกล่าว ก่อน จึงจะสร้างออบเจ็กต์ได้ ซึ่งเรียกวิธีการ ดังกล่าวว่า การทำ Override Method

3 รู้จักกับ Abstract Class
คลาสลูกที่สืบทอดจาก Abstract Class จะต้องกำหนดการทำงานของ Abstract Method ให้ครบทุกเมธอดก่อน จึงจะ นำไปใช้งานได้ Abstract Class อนุญาตให้มีเมธอดที่การ กำหนดการทำงานแล้วได้ เรียกว่า Concrete Method

4 การสร้างและใช้งาน Abstract Class (1)
abstract class AbstractClassName { [AbstractMethodNames] [ConcreteMethodNames] โดยที่ AbstractClassName เป็นชื่อ Abstract Class AbstractMethodNames เป็นส่วนของการ ประกาศ Abstract Method ConcreteMethodNames เป็นส่วนของการ ประกาศ Concrete Method

5 การสร้างและใช้งาน Abstract Class (2)
การนำ Abstract Class ไปถ่ายทอดสร้าง เป็นคลาสลูก และกำหนดหน้าที่การทำงานให้ Abstract Method ต้องมีการทำ Overriding Method มีรูปแบบดังนี้ class ClassName extends AbstractClassName { AbstractMethodNames() { [Statements]; }

6 การสร้างและใช้งาน Abstract Class (2)
โดยที่ ClassName เป็นชื่อคลาส AbstractClassName เป็นชื่อ Abstract Class ที่ต้องการสืบทอด AbstractMethodNames เป็น Abstract Method ที่ต้องการ ทำ Override Statements เป็นส่วนของ ชุดคำสั่งที่ override เมธอดใน Abstract Class

7 โปรแกรมการสร้างและใช้งาน Abstractss

8 รู้จักกับ Interface เป็นคลาสที่มีทุกเมธอดเป็น Abstract Method ซึ่งกำหนดเพียงว่ามีการรับค่าด้วย ข้อมูลชนิดใด และคืนค่าข้อมูลเป็นข้อมูล ชนิดใด เปรียบเสมือนข้อตกลงที่มีไว้ให้ออบเจ็กต์ ติดต่อสื่อสารถึงกันได้นั้นเอง การสร้างและใช้งาน Interface มีคีย์เวิร์ด “interface” อยู่ข้างหน้า class มี รูปแบบ ดังนี้

9 รู้จักกับ Interface [modifier] interface interfaceName { } โดยที่ modifier เป็นคีย์เวิร์ดที่กำหนด คุณสมบัติการเข้าถึงคลาส interfaceName เป็นชื่อ interface ที่ ต้องการใช้งาน

10 การสร้างและใช้งาน Interface
ต้อง implements อินเตอร์เฟสเพื่อกำหนดหน้าที่ การทำงานให้ Abstract Method จึงต้องมีการทำ Overriding Method ก่อนเสมอ เพราะ Interface ประกอบด้วย Abstract Method ซึ่งรูปแบบการใช้งาน Interface (implements) ดังนี้ [modifier] class ClassName implements InterfaceName { AbstractMethodNames() { [Statements]; }

11 การสร้างและใช้งาน Interface
โดยที่ modifier เป็นคีย์เวิร์ดที่กำหนดคุณสมบัติการเข้าถึง คลาส ClassName เป็นชื่อคลาส interfaceName เป็นชื่อ interface ที่ต้องการใช้ งาน AbstractMethodNames เป็น Abstract Method ที่ ต้องการทำ Override Statements เป็นส่วนของชุดคำสั่งที่ทำ Overriding Method

12 โปรแกรมการสร้างและใช้งาน Interface

13 ข้อแตกต่างระหว่าง Abstract Class และ Interface
Abstract Class เป็นคลาสที่ประกอบด้วยเมธอด 2 แบบ คือ แบบที่กำหนดการทำงาน (Concrete Method) และแบบที่ไม่กำหนดการ ทำงาน (Abstract Method) เรานำ Abstract Class มาใช้งานจะมีบางเมธอดที่สามารถ กำหนดการทำงานในคลาสลูกภายหลังได้ Interface เป็นคลาสที่ยังไม่กำหนดการทำงาน เมื่อเรานำ Interface มาใช้งานในคลาส เรา จะต้องกำหนดการทำงานให้กับเมธอดใน Interface นั้นก่อนเสมอ เรียกว่า เป็นการทำ implements interface

14 ข้อแตกต่างระหว่าง Abstract Class และ Interface
คลาสใด ๆ จะใช้งาน Interface ได้ มากกว่าหนึ่ง Interface เราจึงใช้ Interface สร้าง Multiple Inheritance ได้

15 รู้จักกับ Multiple Inheritance
คลาสที่สืบทอดคุณลักษณะจาก SuperClass มาหลายๆ คลาส และถ่ายทอดสู่ SubClass เพียงคลาสเดียว เช่น คลาส Amphibian สืบทอดคุณสมบัติมาจาก คลาส Car กับคลาส Boat ดังนั้น คลาส Amphibian จึงมีแอตทริบิวต์ และเมธอดมา จากทั้งสองคลาส

16 การสร้างและใช้งาน Multiple Inheritance
มีรูปแบบดังนี้ [modifier] class ClassName implements interfaceName_1,. ., interfaceName_n {  }   โดยที่ modifier เป็นคีย์เวิร์ดที่กำหนด คุณสมบัติการเข้าถึงคลาส ClassName เป็นชื่อคลาส interfaceName_n เป็นชื่อ interface ตัว ที่ n ที่ต้องการใช้งาน

17 การสร้างและใช้งาน Multiple Inheritance

18 รู้จักกับ Interface Collection
เป็นอินเตอร์เฟสที่มีเมธอดเก็บรวบรวมข้อมูลหรือ วัตถุต่างๆ ได้โดยไม่ต้องรู้ขนาด อินเตอร์เฟสที่มีการสืบทอดแบบ Interface Collection มี 2 ประเภท คือ ลิสต์ (List) และเซต (Set) โดย List จะเก็บข้อมูลหรือวัตถุแบบเรียงกันเป็น รายการและมีลำดับ ส่วน Set จะเก็บข้อมูล หรือวัตถุที่ไม่ซ้ำกัน

19 รู้จักกับ Interface Collection
การใช้งาน List List เป็นอินเตอร์เฟสที่มีการสืบทอดข้อมูลแบบ เรียงกันเป็นรายการและมีลำดับ สามารถเข้าถึงข้อมูลสมาชิกแต่ละตัว (element) ใน List ได้โดยใช้ index มีค่าเริ่มจากศูนย์ และสมาชิกมีค่าเป็น null ได้

20 เมธอดของ List (1) เมธอด add() เป็นเมธอดเพิ่ม element ต่อท้าย List มีรูปแบบ ดังนี้   listName.add(element);   โดยที่ listName เป็นชื่อ List ที่ต้องการ เพิ่มข้อมูล element เป็นข้อมูลสมาชิกที่จะเพิ่มต่อท้าย listName

21 เมธอดของ List (1) เมธอด add() สามารถเพิ่ม element ใน ตําแหน่งที่ต้องการ มีรูปแบบ ดังนี้   listName.add(index, element);   โดยที่ listName เป็นชื่อ List ที่ต้องการ แทรกข้อมูล index เป็นตําแหน่งที่ต้องการแทรก element element เป็นข้อมูลสมาชิกที่จะต้องการแทรก ใน listName

22 เมธอดของ List (2) เมธอด clear() เป็นเมธอดลบ element ทั้งหมดใน List มีรูปแบบ ดังนี้   listName.clear(); โดยที่ listName เป็นชื่อ List ที่ต้องการลบ ข้อมูล

23 เมธอดของ List (2) เมธอด contains() เป็นเมธอดตรวจสอบ ข้อมูลใน List มีรูปแบบ ดังนี้   listName.contains(Obj);   โดยที่ listName เป็นชื่อ List ที่ต้องการ ตรวจสอบข้อมูล Obj เป็นข้อมูลออบเจ็กต์ที่ใช้ตรวจสอบ   ผลที่ได้ คือ คืนค่าเป็น true ถ้าตรวจสอบพบ ข้อมูล Obj ใน listName

24 เมธอดของ List (3) เมธอด equals() เป็นเมธอดเปรียบเทียบข้อมูลใน List มีรูปแบบ ดังนี้   listName.equals(Obj);   โดยที่ listName เป็นชื่อ List ที่ต้องการ เปรียบเทียบข้อมูล Obj เป็นข้อมูลออบเจ็กต์ที่ใช้เปรียบเทียบ  ผลที่ได้ คือ คืนค่าเป็น true ถ้าจำนวนค่าข้อมูล และลําดับสมาชิกของ Obj และ listName เหมือนกัน

25 เมธอดของ List (3)  เมธอด get() เป็นเมธอดอ่านข้อมูลใน ตําแหน่งที่ต้องการจาก List มีรูปแบบ ดังนี้   listName.get(index);   โดยที่ listName เป็นชื่อ List ที่ต้องการ อ่านข้อมูล index เป็นตําแหน่งของสมาชิกใน listName ที่ต้องการอ่านค่า   ผลที่ได้ คือ ข้อมูลสมาชิก ณ ตําแหน่งที่ index

26 เมธอดของ List (4) เมธอด indexOf() เป็นเมธอดค้นหาตําแหน่งของ ข้อมูลใน List มีรูปแบบ ดังนี้   listName.indexOf(Obj);   โดยที่ listName เป็นชื่อ List ที่ต้องการค้นหา ตําแหน่งของข้อมูล Obj เป็นข้อมูลออบเจ็กต์ที่ต้องการค้นหา   ผลที่ได้ คือ ค่าตําแหน่งข้อมูลของ Obj ใน listName ในกรณีที่ไม่ค่าข้อมูล จะคืนค่าเป็นจำนวนลบ

27 เมธอดของ List (4) เมธอด isEmpty() เป็นเมธอดตรวจสอบว่า เป็น List ว่างหรือไม่ มีรูปแบบ ดังนี้   listName.isEmpty();   โดยที่ listName เป็นชื่อ List ที่ต้องการ ตรวจสอบ ผลที่ได้ คือ ถ้าเป็น List ว่าง จะคืนค่า true และถ้าไม่เป็น List ว่าง จะคืนค่า false

28 เมธอดของ List (5) เมธอด remove() เป็นเมธอดลบสมาชิกใน ตําแหน่ง ที่ต้องการออกจาก List มีรูปแบบ ดังนี้ listName.remove(index); โดยที่ listName เป็นชื่อ List ที่ต้องการลบ สมาชิก index เป็นตําแหน่งของสมาชิกที่ต้องการ ลบออกจาก listName

29 เมธอดของ List (5) เมธอด set() เป็นเมธอดกำหนดค่าให้สมาชิก ในตําแหน่งที่ต้องการ มีรูปแบบ ดังนี้ listName.set(index, element); โดยที่ listName เป็นชื่อ List ที่ต้องการลบ สมาชิก index เป็นตําแหน่งของสมาชิกที่ต้องการ กำหนดค่า element เป็นค่าข้อมูลที่ต้องการกำหนดให้ สมาชิก เมธอด size() เป็นเมธอดนับจำนวน สมาชิกใน List มีรูปแบบ ดังนี้ listName.size(); โดยที่ listName เป็นชื่อ List ที่ต้องการนับ จำนวนสมาชิกผลที่ได้ คือ จำนวนข้อมูลใน listName

30 โปรแกรมการใช้งาน List
import java.util.*; public class ListTest { public static void main(String[] args) { LinkedList A = new LinkedList(); LinkedList B = new LinkedList(); A.add("โดราเอมอน"); A.add("อิ๊กคิวซัง"); A.add("ฮาโตริ"); A.add("ดราก้อนบอล"); A.add(2, "โคนัน"); System.out.print("จำนวนสมาชิกใน A = " + A.size()); System.out.println(" ประกอบด้วย\n" + A); if (A.contains("โคนัน")) { System.out.println("โคนันอยู่ในลำดับที่ " + (A.indexOf("โคนัน") + 1)); } A.remove(3); System.out.println("เมื่อลบรายการที่ " " ใน A แล้ว"); System.out.println("A = " + A);

31 โปรแกรมการใช้งาน List
for (int i = 0; i < A.size(); i++) { B.add(A.get(i)); } B.set(2, "ฮาโตริ"); System.out.println("B = " + B); if (!(A.equals(B))) { System.out.println("A ไม่เท่ากับ B"); A.clear(); System.out.println("ลบรายการของ A ทั้งหมดแล้ว"); System.out.println("A = " + A); if (A.isEmpty()) { System.out.println("A เป็นลิสต์ว่าง");

32 การใช้งาน Set เมธอดของ Set
Set เป็น Interface ที่มีเมธอดช่วยในการเก็บข้อมูล สืบทอดมาจาก Interface Collection โดยค่าข้อมูล ของสมาชิกจะไม่สามารถซ้ำกันได้ และลำดับของ สมาชิกไม่มีความสำคัญ คลาสสำคัญที่ implement อินเตอร์เฟส Set คือ คลาส HashSet เมธอดของ Set เมธอด add() เป็นเมธอดเพิ่ม element เข้าใน Set มีรูปแบบ ดังนี้   setName.add(element);   โดยที่ setName เป็นชื่อ Set ที่ต้องการเพิ่มข้อมูล element เป็นข้อมูลสมาชิกที่จะเพิ่มใน setName

33 เมธอดของ Set (1) เมธอด equals() เป็นเมธอดเปรียบเทียบข้อมูล ใน Set มีรูปแบบ ดังนี้   setName.equals(Obj);   โดยที่ setName เป็นชื่อ Set ที่ต้องการ เปรียบเทียบข้อมูล Obj เป็นข้อมูลออบเจ็กต์ที่ใช้เปรียบเทียบ   ผลที่ได้ คือ คืนค่าเป็น true ถ้าจำนวน และค่า ข้อมูลสมาชิกของ Obj และเซต setName เหมือนกัน

34 เมธอดของ Set (1)  เมธอด addAll() เป็นเมธอดดำเนินการ union มีรูปแบบ ดังนี้   setName_1.addAll(setName_2);   โดยที่ setName_1 เป็นชื่อ Set ที่ต้องการ ดำเนินการ union setName_2 เป็นชื่อ Set ที่ต้องการ ดำเนินการ union กัน   ผลที่ได้ คือ ข้อมูลสมาชิกใน setName_1 กับ setName_2 รวมกันใน setName_1 โดยมีสมาชิกที่ไม่ซ้ำกัน

35 เมธอดของ Set (2) เมธอด removeAll() เป็นเมธอดการ ดำเนินการ difference มีรูปแบบ ดังนี้ setName_1.removeAll(setName_2); โดยที่ setName_1 เป็นชื่อ Set ที่ต้องการ ดำเนินการ difference setName_2 เป็นชื่อ Set ที่ต้องการ ดำเนินการ difference กัน ผลที่ได้ คือ ข้อมูลสมาชิกที่มีใน setName_1 แต่ไม่มีใน setName_2 และเก็บค่าใน setName_1

36 เมธอดของ Set (2) เมธอด retainAll() เป็นเมธอดดำเนินการ intersect มีรูปแบบ ดังนี้ setName_1.retainAll(setName_2); โดยที่ setName_1 เป็นชื่อ Set ที่ต้องการ ดำเนินการ intersect setName_2 เป็นชื่อ Set ที่ต้องการ ดำเนินการ intersect กัน ผลที่ได้ คือ ข้อมูลสมาชิกที่มีใน setName_1 และมีใน setName_2 ด้วย โดยเก็บค่าใน setName_1

37 โปรแกรมการใช้งาน Set import java.util.*; public class SetTest { public static void main(String args[]) { Set X = new HashSet(); Set Y = new HashSet(); Set Z = new HashSet(); for (int i=0; i<args.length; i++){ if (!(X.add(args[i]))) Y.add(args[i]); } System.out.println("X = " + X); System.out.println("Y = " + Y); Z = intersect(X, Y); System.out.println("X intersect Y = " + Z); Z = union(X, Y); System.out.println("X union Y = " + Z); Z = difference(X, Y);; System.out.println("X difference Y = " + Z); }

38 โปรแกรมการใช้งาน Set public static Set intersect(Set s1, Set s2) {
Set ans = new HashSet(s1); ans.retainAll(s2); return ans; }   public static Set union(Set s1, Set s2) { ans.addAll(s2);   public static Set difference(Set s1, Set s2) { ans.removeAll(s2);

39 การป้อนข้อมูลอาร์กิวเมนต์ ผ่านโปรแกรม NetBean

40 การป้อนข้อมูลอาร์กิวเมนต์ ผ่านโปรแกรม NetBean

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


ดาวน์โหลด ppt Chapter 4 Abstract & Interface.

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


Ads by Google