หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์

Slides:



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

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
PHP LANGUAGE.
05_3_Constructor.
Object-Oriented Programming
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
ความรู้เบื้องต้นเกี่ยวกับ JAVA
SCC : Suthida Chaichomchuen
Classification Abstraction
Selected Topics in IT (Java)
Network programming Asst. Prof. Dr. Choopan Rattanapoka
การสืบทอด (Inheritance)
การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 5 การพัฒนาซอฟต์แวร์ด้วย MS Visual Basic 2010 ปริญญา น้อยดอนไพร สาขาวิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (4) (Class & Object)
คลาสและวัตถุ (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 เมธอด.
ทำงานกับ File และStream
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
Method of Class อ.สุพจน์ สิงหัษฐิต
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
Lec03 :: หลักการเชิงออปเจ็ค (Object Oriented Concept)
Lec05 :: การสืบทอด (inheritance)
Object-Oriented Programming
บทที่ 3 Class and Object (2).
บทที่ 3 การสร้าง Appication แบบ Windows Form
คำสั่งรับค่าและฟังก์ชันทางคณิตศาสตร์
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
การสืบทอด (inheritance)
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Class. ทบทวน Object ประกอบด้วย ชื่อ Attributes -> คุณลักษณะ Methods -> การกระทำ ให้ลองเขียน Object โดยใช้รูปแบบดังนี้ ชื่อ Attributes Methods.
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
Object-Oriented Programming
คอนสตรัคเตอร์ (Constructor)
การกระทำทางคณิตศาสตร์
การจัดการกับความผิดปกติ
chapter 2 - Construction and destruction - Overloading method
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
Chapter 6 Abstract Class and Interface
บทที่ 3 การสืบทอด (Inheritance)
หลักการเชิงวัตถุ (Object Oriented Concept)
Method and Encapsulation
ใบสำเนางานนำเสนอ:

หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์ อาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูวิชาการ สาขาวิชาคอมพิวเตอร์และเทคโนโลยี โรงเรียนมหิดลวิทยานุสรณ์

เนื้อหา องค์ประกอบของโปรแกรมเชิงวัตถุ ออปเจ็ค (Object) คลาส (Class) คุณลักษณะ (Attribute) เมธอด (Method) การเขียนโปรแกรมเชิงวัตถุโดยใช้ภาษาจาวา การประกาศคลาส การประกาศคุณลักษณะ การประกาศเมธอด การประกาศและสร้างออปเจ็ค การเรียกใช้สมาชิกของออปเจ็ค คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ

องค์ประกอบของโปรแกรมเชิงวัตถุ ภาษาจาวาเป็นภาษาคอมพิวเตอร์ที่ใช้หลักการพัฒนาโปรแกรมเชิงวัตถุ ซึ่งเป็นขบวนการวิเคราะห์ปัญหาโดยการจำลองปัญหาว่าประกอบไปด้วย object ใดบ้าง แล้วจึงเขียนให้อยู่ในรูปแบบของโปรแกรมคอมพิวเตอร์ โปรแกรมเชิงวัตถุจะมีคำนิยามที่สำคัญสองคำคือ object และ class รายละเอียดดังนี้ Object Object คือ สิ่งต่างๆ ที่มีอยู่ในชีวิตประจำวัน เช่น นักศึกษา ใบลงทะเบียน ปากกา รถ คะแนน รายชื่อวิชา บัญชีเงินฝาก ตารางเที่ยวบิน เป็นต้น Object ต่างๆ ประกอบไปด้วยคุณลักษณะ (attribute) และพฤติกรรม (behavior) Attribute คือ ข้อมูลของ Object Behavior หรือ Method คือ สิ่งที่ Object สามารถกระทำได้ Class Class เปรียบเสมือนพิมพ์เขียวของ Object

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

Object : attribute Attribute ของ object คือ ข้อมูลที่เก็บอยู่ใน object ซึ่งจะแบ่งออกเป็นสองประเภทคือตัวแปร(variable) และค่าคงที่(constant) โดยที่ attribute ที่เป็นตัวแปรจะสามารถเปลี่ยนค่าได้

Object : method

Java Application ตัวอย่าง ขั้นตอนการสร้าง Java Application public class HelloWorld{ public static void main(String args[]){ System.out.println("Hello World"); } ขั้นตอนการสร้าง Java Application

Modifier ในภาษาจาวา Modifier ในภาษาจาวาแบ่งออกเป็น 2 ประเภทใหญ่ๆ คือ access modifier และ non-access modifier access modifier ได้แก่ private, public, protected และ package non-access modifier ได้แก่ final, abstract, static, native, transient, volatile, synchronized, strictfp

ต่าง package กัน แต่เป็นคลาสแม่ คลาสลูกกัน Modifier ในภาษาจาวา ใช้ได้ทั้งหมด package เดียวกัน ต่าง package กัน ต่าง package กัน แต่เป็นคลาสแม่ คลาสลูกกัน คลาสเดียวกัน public  protected  package private

การเขียนโปรแกรมเชิงวัตถุโดยใช้ Java : การประกาศ class [modifier] class ClassName { [class member] } modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access modifier เช่น private, package, protected, public (ลำดับความเข้มงวดที่สุดไล่ลำดับถึงอิสระที่สุด) หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final class คือ keyword ของภาษาจาวาเพื่อระบุว่าเป็นการประกาศคลาส ClassName คือชื่อของ class ที่เป็นชื่อ identifier ใดๆ ที่สอดคล้องกับกฎการตั้งชื่อ class member คือ method หรือ attribute ของ class ตัวอย่างการประกาศคลาส student สามารถทำได้ดังนี้ public class Student{ }

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

การเขียนโปรแกรมเชิงวัตถุโดยใช้ Java : การประกาศ method [modifier] return_type methodName ([arguments]){ [method_body] } modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access modifier เช่น public หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final return_type คือชนิดข้อมูลของค่าที่ส่งกลับหลังจากเสร็จสิ้นการทำงานของคำสั่งใน method นี้ โดยชนิดข้อมูลของค่าที่ส่งกลับอาจเป็นชนิดข้อมูลแบบพื้นฐาน หรือชนิดข้อมูลแบบอ้างอิง ในกรณีที่ไม่มีการส่งค่าใดๆ กลับจะต้องระบุชนิดข้อมูลเป็น void methodName คือชื่อของ method ที่เป็นชื่อ identifier ใดๆ ที่สอดคล้องกับกฎการตั้งชื่อ arguments คือตัวแปรที่ใช้ในการรับข้อมูลที่ object ส่งมาให้ โดยอาจมีมากกว่าหนึ่งตัวแปร หรือไม่มีเลยก็ได้ขึ้นอยู่กับการกำหนด method method_body คือคำสั่งต่างๆ ของภาษาจาวาที่อยู่ใน method

การเขียนโปรแกรมเชิงวัตถุโดยใช้ Java : การประกาศ method ตัวอย่าง public class Student{ public string id; public string name; public double gpa; public static final double MIN_GPA = 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);

การเขียนโปรแกรมเชิงวัตถุโดยใช้ Java : การประกาศ object [modifier] ClassName objectName; modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access modifier เช่น public หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final ClassName คือชื่อของ class objectName คือชื่อของ object ที่เป็นชื่อ identifier ใดๆ ที่สอดคล้องกับกฎการตั้งชื่อ ตัวอย่าง Student s1;

การเขียนโปรแกรมเชิงวัตถุโดยใช้ Java : การสร้าง object objectName = new ClassName([argument]); objectName คือชื่อของ object new คือ keyword ของภาษาจาวาเพื่อใช้ในการสร้าง object ClassName คือชื่อของ class arguments คือตัวแปรที่ใช้ในการรับข้อมูลที่ object ส่งมาให้ โดยอาจมีมากกว่าหนึ่งตัวแปร หรือไม่มีเลยก็ได้ขึ้นอยู่กับการกำหนด method ตัวอย่าง s1 = new Student();

การเขียนโปรแกรมเชิงวัตถุโดยใช้ Java : การประกาศและการสร้าง object [modifier] ClassName objectName = new ClassName([argument]); ตัวอย่าง Student s1 = new Student();

การเขียนโปรแกรมเชิงวัตถุโดยใช้ Java : การเรียกใช้สมาชิกของ object objectName .attributeName; objectName คือชื่อของ object attributeName คือชื่อของคุณลักษณะที่เป็นชื่อ identifier ใดๆ ซึ่งสอดคล้องกับกฎการตั้งชื่อ

การเขียนโปรแกรมเชิงวัตถุโดยใช้ Java : การเรียกใช้ method ของ object objectName .methodName[(arguments)]; objectName คือชื่อของ object methodName คือชื่อ method ของ object นั้น arguments คือค่าที่ต้องการส่งผ่านไปให้กับ method ของ object นั้น โดยที่จะต้องมีชนิดข้อมูลและจำนวน argument ให้สอดคล้องกับที่ประกาศใน method ของ object นั้น ตัวอย่าง s1.setName(“Thana”);

หลักการของโปรแกรมเชิงวัตถุ การห่อหุ้ม (Encapsulation) เป็นคุณลักษณะที่ทำให้ object แต่ละตัวเป็นอิสระต่อกัน ซึ่งทำให้สามารถแบ่งการพัฒนาโปรแกรมออกเป็นส่วนๆ ได้ง่าย การสืบทอด (Inheritance) เป็นคุณลักษณะที่ทำให้สามารถนำโปรแกรมที่พัฒนาแล้วกลับมาใช้ใหม่ได้ง่ายกว่าการเขียนโปรแกรมแบบเชิงกระบวนการ การมีได้หลายรูปแบบ (Polymorphism) เป็นคุณลักษณะที่ทำให้นักพัฒนาโปรแกรมสามารถเพิ่มเติมส่วนต่างๆ ของโปรแกรมได้ง่าย

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : การห่อหุ้ม (Encapsulation) การห่อหุ้ม คือ กระบวนการซ่อนรายละเอียดการทำงานและข้อมูลไว้ภายในไม่ให้ภายนอกสามารถมองเห็นได้ และเมื่อภายนอกมองไม่เห็นส่งที่ถูกซ่อนไว้ภายในแล้ว ก็จะไม่สามารถทำการเปลี่ยนแปลง แก้ไข หรือสร้างความเสียหายให้กับสิ่งต่างๆ ที่อยู่ภายในได้ ข้อดีของการห่อหุ้ม คือสามารถสร้างความปลอดภัยให้กับข้อมูลได้เนื่องจากข้อมูลจะถูกเข้าถึงได้จากผู้ที่มีสิทธิ์เท่านั้น attribute method รูป หลักการห่อหุ้ม ตัวอย่าง ดังรูป การที่ attribute ของ object ถูกห่อหุ้มอยู่ภายในเพื่อไม่ให้ object อื่นๆ สามารถเข้าถึง attribute ได้โดยตรง การจะเรียกใช้คุณลักษณะของ object จะทำได้โดยการเรียกผ่าน method เท่านั้น

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : ตัวอย่างโปรแกรม การใช้หลักการห่อหุ้ม ตัวอย่างที่ 1 public class Student{ private string id; // ทำเป็น private เพื่อที่ object อื่นๆจะเข้ามาแก้ไขโดยตรงไม่ได้ private string name; // ทำเป็น private เพื่อที่ object อื่นๆจะเข้ามาแก้ไขโดยตรงไม่ได้ private double gpa; // ทำเป็น private เพื่อที่ object อื่นๆจะเข้ามาแก้ไขโดยตรงไม่ได้ public static final double MIN_GPA = 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);

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : ตัวอย่างโปรแกรม การใช้หลักการห่อหุ้ม ตัวอย่างที่ 2 public class Box { private int length; // ทำเป็น private เพื่อที่ object อื่นๆจะเข้ามาแก้ไขโดยตรงไม่ได้ private int width; // ทำเป็น private เพื่อที่ object อื่นๆจะเข้ามาแก้ไขโดยตรงไม่ได้ private int height; // ทำเป็น private เพื่อที่ object อื่นๆจะเข้ามาแก้ไขโดยตรงไม่ได้ public void setLength(int p) { length = p; } public void setWidth(int p) { width = p; public void setHeight(int p) { height = p; public int displayVolume() { System.out.println(length*width*height);

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : ตัวอย่างโปรแกรม การใช้หลักการห่อหุ้ม ตัวอย่างที่ 3 public class Test{ private int data = 10; // ทำเป็น private เพื่อที่ object อื่นๆจะเข้ามาแก้ไขโดยตรงไม่ได้ public void setData(int data){ // Interface ให้ object อื่นๆมาแก้ไข data this.data = data; } public int getData(){ // Interface ให้ object อื่นๆมารับค่า data data = doSomthing(); return data; private int doSomething(){ // ซ่อน method เพื่อไม่ให้ object อื่นๆเห็น หรือ เรียก method ได้โดยตรง data = data * 5;

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : การสืบทอด (Inheritance) การสืบทอด คือการนิยามคลาสใหม่จากรูปแบบของ class ที่มีอยู่แล้ว โดย class ใหม่จะนำ attribute และ method ของ class เดิมมาใช้ได้ ข้อดี คือ ความสามารถในการที่จะนำโปรแกรมเดิมมาพัฒนาเพิ่มเติมใหม่ได้ง่ายขึ้น และยังช่วยทำให้โปรแกรมแต่ละโปรแกรมมีขนาดเล็ก ซึ่งทำให้ง่ายต่อการเข้าใจและปรับปรุงแก้ไข โดยในภาษาจาวาจะใช้ keyword คือ extends เพื่อระบุการสืบทอด Student PartTimeStudent GradStudent FullTimeStudent PhDStudent รูป หลักการสืบทอด

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : ตัวอย่างโปรแกรม การใช้หลักการสืบทอด 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 passQulify; public class Student{ private string id; private string name; private double gpa; private static final double MIN_GPA = 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);

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : การมีได้หลายรูปแบบ(Polymorphism) การมีได้หลายรูปแบบ คือ คุณสมบัติที่สามารถตอบสนองต่อข่าวสาร (method) เดียวกันด้วยวิธีการที่ต่างกัน และสามารถกำหนด object ได้หลายรูปแบบ ข้อดี คือ ทำให้โปรแกรมสามารถปรับเปลี่ยนหรือเพิ่มเติมได้ง่ายขึ้น Ball SoccerBall TennisBall รูป หลักการมีได้หลายรูปแบบ

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : ตัวอย่างโปรแกรม การใช้หลักการมีได้หลายรูปแบบ public void calculate(int x) { } public void calculate(double y) { }

คุณลักษณะเด่นของโปรแกรมเชิงวัตถุ : ตัวอย่างโปรแกรม การใช้หลักการมีได้หลายรูปแบบ public class Ball{ public void throwBall(){} } public class SoccerBall extends Ball{ public void throwBall(){ System.out.println(“Throwing soccerball”); public class TennisBall extends Ball{ System.out.println(“Throwing tennisball”); public class TestBall{ public static void main(String args[]){ Ball b1 = new Ball(); SoccerBall b2 = new SoccerBall(); Ball b3 = new SoccerBall();

คำสั่ง input และ output ภาษาจาวามี object ที่เป็น input/output มาตรฐานคือ System.in, System.out และ System.err System.in เป็น object ที่มี method สำหรับการอ่านข้อมูลทางอุปกรณ์ input มาตรฐาน โดยทั่วไปคือ keyboard System.out เป็น object ที่มี method สำหรับการแสดงข้อมูลออกทางอุปกรณ์ output มาตรฐาน โดยทั่วไปคือ monitor System.err เป็น object ที่มี method สำหรับการแสดงข้อผิดพลาดออกทางอุปกรณ์ที่ใช้ในการแสดงข้อผิดพลาด โดยทั่วไปคือ monitor