Chapter 4 Abstract & Interface.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Selected Topics in IT (Java)
Advertisements

โรงเรียนนวมินทราชินูทิศ เตรียมอุดมศึกษาพัฒนาการ
แบบจำลองฐานข้อมูล คือ เครื่องมือในเชิงแนวคิดที่ใช้ในการอธิบาย ข้อมูล
ชื่อผู้สอน : นางฐิติมา พิริยะ
ณ ห้องปฏิบัติการคอมพิวเตอร์ คณะพยาบาลศาสตร์ มหาวิทยาลัยเชียงใหม่
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
บทที่ 1 Probability.
การออกแบบออโตมาตาจำกัดเชิงกำหนด ( DFA )
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
DATA STRUCTURE AND ALGORITHM Linked List.
หน่วยที่ 6 แถวลำดับ (Array)
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
วิชาเทคโนโลยีสารสนเทศเพื่อชีวิต
อาจารย์อภิพงศ์ ปิงยศ Lab 05 : Microsoft Excel (Part3) พท 260 เทคโนโลยีสารสนเทศและการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์ ปิงยศ.
การตรวจสอบคุณภาพเครื่องมือ
เกม คณิตคิดเร็ว.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
Introduction SQLite Prawit Pimpisan Computer Science RERU.
อนุกรมอนันต์และการลู่เข้า
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
Introduction List View Prawit Pimpisan Computer Science RERU.
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
โครงสร้างภาษา C Arduino
การบัญชีต้นทุนช่วง (Process Costing).
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
Basic Input Output System
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
คำสั่ง Create , Insert, Delete, Update
The Collections Framework
บทที่ 3 แฟ้มข้อมูลและฐานข้อมูล
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
Object-Oriented Programming Paradigm
Abstract Class and Interface
วิธีการกำหนดค่า Microsoft SharePoint ของคุณ เว็บไซต์ออนไลน์
Java Translation Object and Class ในมุมมองคอมพิวเตอร์ Objects หรือ Instances หมายถึงวัตถุที่กำเนิดตัวตนจริงๆจากต้นแบบที่กำหนดโดยคลาส Object.
Method and Encapsulation
บริษัท พัฒนาวิชาการ (2535) จำกัด
Inheritance and Encapsulation
การเขียนภาษาจาวาเบื้องต้น
SMS News Distribute Service
บทที่7 ทฤษฎีกราฟเบื้องต้น
คณิตศาสตร์ 1 รหัสวิชา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
ตัวอย่างการจัดทำรายงานการผลิต และงบการเงิน
บรรยายครั้งที่ 8 - กราฟฟิกวิศวกรรม 1
BASIC STATISTICS MEAN / MODE / MEDIAN / SD / CV.
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
OPERATOR ภาษาปาสคาล (Pascal)
Chapter 10 Exception Handling
2 โครงสร้างข้อมูลแบบสแตก (STACK).
3 โครงสร้างข้อมูลแบบคิว (QUEUE).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
Array: One Dimension Programming I 9.
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ฟังก์ชันของโปรแกรม Computer Game Programming
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Decision: Single and Double Selection (if and if-else statement)
Class Diagram.
ใบสำเนางานนำเสนอ:

Chapter 4 Abstract & Interface

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

โปรแกรมการใช้งาน 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("เมื่อลบรายการที่ " + 4 + " ใน A แล้ว"); System.out.println("A = " + A);

โปรแกรมการใช้งาน 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 เป็นลิสต์ว่าง");

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

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

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

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

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

โปรแกรมการใช้งาน 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); }

โปรแกรมการใช้งาน 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);

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

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

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