Lec03 :: หลักการเชิงออปเจ็ค (Object Oriented Concept)

Slides:



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

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Structure Programming
05_3_Constructor.
Object-Oriented Programming
Object Oriented Programing
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
Selected Topics in IT (Java)
การสืบทอด (Inheritance)
การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 5 การพัฒนาซอฟต์แวร์ด้วย MS Visual Basic 2010 ปริญญา น้อยดอนไพร สาขาวิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
หน่วยที่ 1 แนวคิดของการเขียนโปรแกรมเชิงวัตถุ
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (4) (Class & Object)
บทที่ 4 Method (2).
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
คลาสและวัตถุ (4) (Class & Object)
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
ข้อมูลพื้นฐานและตัวดำเนินการ
OOP (Object-Oriented Programming)
C# Programming Exceed Camp: Day 3.
Lecture 9 Class (คลาส) To do: Hand back assignments
Inheritance การสืบทอดคลาส
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
บทที่ 8 อาร์เรย์.
บทที่ 6 เมธอด.
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
เมธอดคือหน้าที่การงานของวัตถุให้เรียกใช้
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
ตัวแปรกับชนิดของข้อมูล
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
โดย อ. นัฐพงศ์ ส่งเนียม การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอรทึ่ม ( ) Lec04 : [ การแปลงจาก FlowChart.
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD)
การวิเคราะห์และออกแบบระบบเชิงวัตถุ Object Oriented Analysis and Design
Lec05 :: การสืบทอด (inheritance)
Object-Oriented Programming
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
บทที่ 3 Class and Object (2).
คำสั่งรับค่าและฟังก์ชันทางคณิตศาสตร์
บทที่ 3 ชนิดข้อมูล ตัวแปร นิพจน์และตัวดำเนินการ
Java Programming Java Structure and Datatype,Variable
Midterm outline Object-oriented programming Wattanapong suttapak, Software Engineering, school of Information communication Technology, university of phayao.
BCS 121 บท 5 การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
สายอักขระ เขียนโปรแกรม Java เบื้องต้น.
Object Oriented Programming : OOP
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
Object-Oriented Programming
คอนสตรัคเตอร์ (Constructor)
chapter 2 - Construction and destruction - Overloading method
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
เริ่มต้นเขียนโปรแกรมภาษาจา วา (Introduction to JAVA Programming)
Chapter 6 Abstract Class and Interface
บทที่ 3 การสืบทอด (Inheritance)
หลักการเชิงวัตถุ (Object Oriented Concept)
ใบสำเนางานนำเสนอ:

Lec03 :: หลักการเชิงออปเจ็ค (Object Oriented Concept) วิชา การเขียนโปรแกรมเชิงวัตถุ โดย อ. นัฐพงศ์ ส่งเนียม http://www.siam2dev.com xnattapong@hotmail.com

วัตถุประสงค์ แนะนำออปเจ็คและคลาส อธิบายคุณลักษณะและเมธอด อธิบายการเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวา แนะนำการเขียนโปรแกรมโดยใช้คุณลักษณะเด่นของโปรแกรมเชิงออปเจ็ค แนะนำ Unified Modelling Language

หลักการเชิงออปเจ็ค ภาษาจาวาเป็นภาษาคอมพิวเตอร์ที่ใช้หลักการเชิงออปเจ็ค OOP (Object Oriented Programming) OOP เป็นขบวนการการพัฒนาโปรแกรมโดยการจำลองปัญหาว่าประกอบไปด้วยออปเจ็คใดบ้าง นิยามที่สำคัญคือ - ออปเจ็ค (object) - คลาส (class)

ออปเจ็ค ออปเจ็คคือสิ่งต่าง ๆ ที่มีอยู่ในชีวิตประจำวัน - ออปเจ็คที่เป็นรูปธรรมเช่น นักศึกษา ใบลงทะเบียน ปากกา และรถ - ออปเจ็คที่เป็นนามธรรมเช่น คะแนน รายชื่อวิชา บัญชีเงินฝาก และตารางเที่ยวบิน ออปเจ็คประกอบด้วย - คุณลักษณะ (attribute) หรือข้อมูล (data) - พฤติกรรม (behavior) หรือ (method)

ออปเจ็ค คุณลักษณะ - ข้อมูลของออปเจ็ค - ข้อมูลของออปเจ็ค - แต่ละออปเจ็คอาจมีค่าของคุณลักษณะที่ต่างกัน เมธอด - สิ่งที่ออปเจ็คสามารถกระทำได้ - คำสั่งในการทำงานของโปรแกรมเชิงออปเจ็ค - โปรแกรมจะจัดการกับข้อมูลโดยเรียกใช้เมธอด

ตัวอย่างของออปเจ็ค นักศึกษา - อาจจะมีคุณลักษณะเช่น รหัส ชื่อ และเกรดเฉลี่ย - อาจจะมีเมธอดเช่น ลงทะเบียน สอบ และเดิน รถยนต์ - อาจจะมีคุณลักษณะเช่น ยี่ห้อ รุ่น และสี - อาจจะมีเมธอดเช่น เคลื่อนที่ หยุด และเลี้ยว สุนัข - อาจจะมีคุณลักษณะเช่น ชื่อ พันธ์ และสี - อาจจะมีเมธอดเช่น เห่า คลาน และกระดิกหาง

ตัวอย่างของโปรแกรมเชิงออปเจ็ค โปรแกรมระบบจัดการบัญชีเงินฝากของธนาคาร ตัวอย่างของออปเจ็ค - Account - Customer - Transaction - ATM Account - อาจมีคุณลักษณะเช่น เลขที่บัญชี ชื่อเจ้าของบัญชี วันที่เปิดบัญชี และยอดเงินคงเหลือ - อาจมีเมธอดเช่น ฝาก ถอน และโอนเงิน

คลาส เปรียบเสมือนพิมพ์เขียวของออปเจ็ค ออปเจ็คจะถูกสร้างมาจากคลาส บางครั้งเรียกว่าเป็น instance ของคลาส คลาสหนึ่งคลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค อาทิเช่น คลาสชื่อ Student อาจสร้างออปเจ็คชื่อ s1, s2 หรือ s3 ซึ่งเป็นออปเจ็คชนิด Student

รูปแสดงการสร้างออปเจ็คจากคลาส Student

คุณลักษณะของออปเจ็ค ข้อมูลที่เก็บอยู่ในออปเจ็ค แบ่งเป็นตัวแปร (variable) และค่าคงที่ (constant) - ตัวแปรคือคุณลักษณะที่สามารถเปลี่ยนค่าได้ - ค่าคงที่คือคุณลักษณะที่ไม่สามารถเปลี่ยนค่าได้

ตัวอย่างคุณลักษณะของออปเจ็ค

คุณลักษณะของคลาส เป็นคุณลักษณะที่ใช้ร่วมกันของทุกออปเจ็ค ทุกออปเจ็คจะใช้คุณลักษณะร่วมกันทำให้ประหยัดพื้นที่ในหน่วยความจำ ตัวอย่างเช่น คุณลักษณะที่กำหนดให้เป็นค่าคงที่ชื่อ MIN_GPA

ตัวอย่างคุณลักษณะของคลาส

เมธอด วิธีการหรือการกระทำที่นิยามอยู่ในคลาสหรือออปเจ็คเพื่อใช้ในการจัดการกับคุณลักษณะของออปเจ็ค เปรียบเทียบได้กับ function, procedure หรือ subroutine ของโปรแกรมเชิงกระบวนการ ตัวอย่างเช่น เมธอด deposit () เพื่อเป็นเมธอดสำหรับฝากเงิน

การสื่อสารระหว่างออปเจ็ค การสื่อสารระหว่างกันของออปเจ็คทำได้โดยการผ่านข่าวสาร (message) ObjB คือชื่อออปเจ็ค method4 คือชื่อเมธอด (1, 2) คือ argument

การสื่อสารระหว่างออปเจ็ค ข่าวสารจะส่งผ่านจากออปเจ็ค objA ที่เป็นผู้ส่ง (sender) เพื่อเรียกการทำงานของเมธอดที่ชื่อ method4 จากออปเจ็ค objB ที่เป็นผู้รับ (receiver) ObjB อาจส่งค่า (return value) บางค่ากลับมายัง objA

การเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวา การประกาศคลาส การประกาศคุณลักษณะ การประกาศเมธอด การประกาศและสร้างออปเจ็ค การเรียกใช้สมาชิกของออปเจ็ค

การประกาศคลาส โปรแกรมภาษาจาวาแต่ละโปรแกรมจะประกอบไปด้วยคลาสอย่างน้อยหนึ่งคลาส โดยมีรูปแบบการประกาศดังนี้ [modifier] class Classname { [class member] } - modifier คือคีย์เวิร์ด (keyword) ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (access modifier) - class คือคีย์เวิร์ดของภาษาจาวาเพื่อระบุว่าเป็นการประกาศคลาส - Classname คือชื่อคลาส - class member คือเมธอดหรือคุณลักษณะ ตัวอย่าง public class Student {

การประกาศคุณลักษณะ คุณลักษณะของออปเจ็คคือตัวแปรหรือค่าคงที่ซึ่งประกาศภายในออปเจ็คโดยมีรูปแบบการประกาศดังนี้ [modifier] dataType attributeName; - modifier คือคีย์เวิร์ดของภาษาจาวาที่อธิบายคุณสมบัติต่าง ๆ ของตัวแปรหรือค่าคงที่ - dataType คือชนิดข้อมูลซึ่งอาจเป็นชนิดข้อมูลพื้นฐานหรือชนิดคลาส - attributeName คือชื่อของคุณลักษณะ ตัวอย่าง public class Student { public String id; public String name; public double gpa; }

การประกาศเมธอด ภาษาวาจากำหนดรูปแบบของการประกาศเมธอดที่อยู่ในคลาสไว้ดังนี้ [modifier] return_type methodName ( [argument]) { [method_body] } - modifier คือคีย์เวิร์ดของภาษาจาวาที่ใช้อธิบายระดับการเข้าถึง - return_type คือชนิดข้อมูลของค่าที่จะมีการส่งกลับ - methodName คือชื่อของเมธอด - arguments คือ ตัวแปรที่ใช้ในการรับข้อมูลที่ออปเจ็คส่งมาให้ - method_body คือคำสั่งต่าง ๆ ของภาษาจาวาที่อยู่ในเมธอด

ตัวอย่างโปรแกรม public class Student { public String id; public String name; public double gpa; public static final double minGPA =2.00 ; public void setID(String ID) { id = ID; } public void setName(String n) { name = n; public void setGPA(double GPA) { gpa = GPA; public void showDetails() { System.out.println(“ID: “+id); System.out.printlN(“Name: “+name); System.out.println(“GPA: “+gpa);

เมธอดที่ชื่อ main() โปรแกรมจาวาประยุกต์ (Java Application) จะเริ่มต้นการทำงานในคลาสที่มีเมธอดที่ชื่อ main โดยมีรูปแบบของเมธอดดังนี้ public static void main (String args[]) { [method_body] }

การประกาศออปเจ็ค ออปเจ็คทุกออปเจ็คในโปรแกรมภาษาจาวาจะต้องมีคำสั่งประกาศเพื่อระบุว่าออปเจ็คนั้นเป็นออปเจ็คของคลาสใด โดยมีรูปแบบการประกาศดังนี้ [modifier] ClassName objectName; - modifier คือคีย์เวิร์ดที่อธิบายคุณสมบัติต่าง ๆ ของออปเจ็ค - ClassName คือชื่อของคลาสสำหรับออปเจ็คนั้น - objectName คือชื่อของออปเจ็ค ตัวอย่าง Student s1;

การสร้างออปเจ็ค คำสั่งที่ใช้ในการสร้างออปเจ็คจะมีรูปแบบดังนี้ ตัวอย่าง objectName = new ClassName ([argument]); objectName คือชื่อของออปเจ็ค new คือคีย์เวิร์ดของภาษาจาวาเพื่อใช้ในการสร้างออปเจ็ค ClassName คือชื่อของคลาส - arguments คือค่าที่ต้องการส่งผ่านในการเรียกเมธอด ตัวอย่าง s1 = new Student ();

การประกาศและสร้างออปเจ็ค คำสั่งในการประกาศและสร้างออปเจ็คสามารถที่จะรวมเป็นคำสั่งเดียวกันโดยมีรูปแบบคำสั่งดังนี้ [modifier] ClassName objectName = new className ([argument]); ตัวอย่าง Student s1 = new Student () ;

การเรียกใช้สมาชิกของออปเจ็ค การเรียกใช้คุณลักษณะของออปเจ็คมีรูปแบบดังนี้ objectName.attributeName; การเรียกใช้เมธอดของออปเจ็คมีรูปแบบดังนี้ objectName.methodName ([arguments]); - objectName คือชื่อของออปเจ็คที่สร้างขึ้น - methodName คือชื่อของเมธอดของออปเจ็คนั้น - arguments คือ ค่าที่ต้องการส่งผ่านไปให้กับเมธอดของออปเจ็คนั้น ตัวอย่าง s1.setName(“Thana”);

ตัวอย่างโปรแกรม public class Sample { public static void main (String args[]) { Student s1 = new Student (); Student s2 = new Student (); Student s3 = new Student (); s1.setID (“1234”); s1.setName (“Thana”); s1.setGPA(3.25); s1.showDetails(); s2.setID (“1122”); s2.setName (“Somchai”); s2.setGPA(2.90); s2.showDetails(); s3.setID (“2211”); s3.setName (“Somsri”); s3.setGPA(3.00); s3.showDetails(); }

คุณลักษณะเด่นของโปรแกรมเชิงออปเจ็ค การห่อหุ้ม การสืบทอด การมีได้หลายรูปแบบ

การห่อหุ้ม หมายถึงการจะเรียกใช้คุณลักษณะของออปเจ็คจะทำได้โดยการเรียกผ่านเมธอดเท่านั้น หลักการของการห่อหุ้มคือการกำหนดให้คุณลักษณะของออปเจ็คมีคุณสมบัติเป็น private และกำหนดให้เมธอดมีคุณสมบัติเป็น public

ตัวอย่างโปรแกรม public class Student { private String id; private String name; private double gpa; public static final double minGPA =2.00 ; public void setID(String ID) { id = ID; } public void setName(String n) { name = n; public void setGPA(double GPA) { gpa = GPA; public void showDetails() { System.out.printIn(“ID: “+id); System.out.printIn(“Name: “+name); System.out.printIn(“GPA: “+gpa);

การสืบทอด หมายถึงการนิยามคลาสใหม่จากรูปแบบของคลาสที่มีอยู่แล้ว โดยคลาสใหม่จะนำคุณลักษณะและเมธอดของคลาสเดิมมาใช้ได้ โดยในภาษาจาวาจะใช้คีย์เวิร์ด extends เพื่อระบุการสืบทอด ตัวอย่าง

ตัวอย่างโปรแกรม public class PartTimeStudent extends Student {} public class FullTimeStudent extends Student {} public class GradStudent extends Student { private String thesisTitle; private String supervisor; public void setThesisTitle (String t) { thesisTitle = t; } public void setSupervisor (String s) { supervisor = s; public class PhDStudent extends GradStudent { public boolean passQualify; public boolean isPassQualify() { return passQualify;

การมีได้หลายรูปแบบ หมายถึงการที่สามารถตอบสนองต่อข่าวสาร (เมธอด) เดียวกันด้วยวิธีการที่ต่างกัน และสามารถกำหนดออปเจ็คได้หลายรูปแบบ ตัวอย่าง

ตัวอย่างโปรแกรม public class Ball { public void throw () {} } public class SoccerBall extends Ball { public void throw() { System.out.printIn(“Throwing soccerball”); public class TennisBall extends Ball { public void throw () { System.out.printIn(“Throwing tennisball”); public class TestBall { public static void main (String args[]) { Ball b1 = new Ball (); SoccerBall b2 = new SoccerBall(); Ball b3 = new SoccerBall();

สรุปเนื้อหาของบท ออปเจ็คต่าง ๆ จะประกอบไปด้วยคุณลักษณะและเมธอด ออปเจ็คหลายออปเจ็คสามารถถูกสร้างจากคลาสหนึ่งคลาสได้ คุณลักษณะแบ่งออกเป็นสองประเภทคือ - คุณลักษณะของออปเจ็ค คือข้อมูลที่เก็บอยู่ในแต่ละออปเจ็ค - คุณลักษณะของคลาส คือคุณลักษณะที่ใช้ร่วมกันของทุกออปเจ็ค เมธอดคือวิธีการเพื่อใช้ในการจัดการกับคุณลักษณะของ ออปเจ็คหรือคุณลักษณะของคลาส

สรุปเนื้อหาของบท การเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวามีรูปแบบต่าง ๆ ดังนี้ - การประกาศคลาส [modifier] class Classname { [class member] } - การประกาศคุณลักษณะ [modifier] dataType attributeName; - การประกาศเมธอด [modifier] return_type methodName ([arguments]) { [method_body]

สรุปเนื้อหาของบท การเขียนโปรแกรมเชิงออปเจ็คโดยใช้ภาษาจาวามีรูปแบบต่าง ๆ ดังนี้ (ต่อ) - การประกาศออปเจ็ค [modifier] ClassName objectName; - การสร้างออปเจ็ค objectName = new ClassName ([arguments]); - การเรียกใช้คุณลักษณะของออปเจ็ค objectName.attributeName; - การเรียกใช้เมธอดของออปเจ็ค objectName.methodName ([arguments]);

สรุปเนื้อหาของบท คุณลักษณะเด่นของโปรแกรมเชิงออปเจ็ค - การห่อหุ้ม คือการที่ให้คุณลักษณะถูกห่อหุ้มอยู่ภายในเมธอดโดยกำหนดให้คุณลักษณะมี access modifier เป็น private และกำหนดให้เมธอดมี access modifier เป็น public - การสืบทอด คือการที่คลาสใหม่สามารถนำเอาคุณลักษณะและเมธอดของคลาสที่ออกแบบไว้แล้วมาใช้ได้โดยใช้คีย์เวิร์ด extends ระบุการสืบทอด - การมีได้หลายรูปแบบ คือการที่สามารถตอบสนองต่อ เมธอดเดียวกันด้วยวิธีการที่ต่างกันได้ และสามารถกำหนดออปเจ็คได้หลายรูปแบบ