SlideShare a Scribd company logo
1 of 11
Download to read offline
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
ความหมายของโอโอพี หรือ OOP เป็นคาย่อของ Object-Oriented Programming หมายถึงการเขียนโปรแกรมเชิงวัตถุ หรือเขียนโปรแกรมแบบ
ออบเจ็ค เป็นการสร้างข้อมูลเป็นวัตถุหรือออบเจ็ค แล้วเขียนโปแกรมประมวลกับออบเจ็คนั้นๆ ให้ทางานตามต้องการ นอกจากนั้นยังเขียนโปรแกรม
ประมวลผลกับออบเจ็คได้ ซึ่งออบเจ็คจะมีลักษณะ 3 ประการดังต่อไปนี้
state เป็นคุณลักษณะของออบเจ็คนั้นๆ ที่บอกว่าออบเจ็คนั้นเป็นอะไรบ้าง หรือเรียกอีกอย่างหนึ่งว่าเป็นคุณลักษณะประจา โดยคุณสมบัติขึ้นกับ
มุมมองของแต่ละคน ในการเขียนโปรแกรมเชิงวัตถุ คุณลักษณะประจานี้มักจะเป็นข้อมูล หรือตัวแปรต่างๆ ของออบเจ็คนั้น
Behavior หมายถึง พฤติกรรมของออบเจ็ค
Identity เป็นคุณลักษณะที่ทาให้ออบเจ็คแต่ละออบเจ็คต่างกัน
ในการเขียนโปรแกรมนั้นออบเจ็คมีได้หลายตัว โดยออบเจ็คแต่ละตัวจะเป็นอิสระ ไม่ขึ้นต่อกันแต่ละออบเจ็คสามารถที่จะสื่อสารหรือโต้ตอบกันได้
โดยวิธีส่งเมสเสจ ถึงกัน
คลาสและออบเจ็ค
ส่วนสาคัญสองส่วนของออบเจ็คคือ คุณลักษณะซึ่งเป็นข้อมูลประจาตัวของออบเจ็คและพฤติกรรมหรือเมธอด ซึ่งบอกว่าออบเจ็คกาลังทาสิ่งใดอยู่ถ้า
หากมีการสร้างออบเจ็คขึ้นมาและโปรแกรมต้องการจัดการกับข้อมูลที่เป็นคุณลักษณะของออบเจ็คก็จะกระทาผ่านเมธอด
สาหรับคลาสจะเป็นที่รวบรวมของออบเจ็คหลายๆ ออบเจ็คที่มีลักษณะเดียวกัน แต่อาจมีข้อมูลประจาตัวหรือคุณลักษณะต่างๆดังนั้นในการเขียน
โปรแกรมเชิงวัตถุนั้นจะต้องรู้จักการนิยาม คลาส จากที่กล่าวมาแล้วจะพบว่าคลาสเป็นการจัดกลุ่มของ
ในการเขียนโปรแกรมเชิงวัตถุนั้นจะไม่มีการใช้งานคลาสตรงๆ แต่จะใช่คลาสเป็นพิมพ์เขียวเพื่อสร้างออบเจ็คต่างๆขึ้นมา ออบเจ็คที่ถูกสร้างจาก
คลาสจะเรียนกว่า อินสแตนซ์ ของคลาสนั้นโดยที่คลาสใดคลาสหนึ่งสามารถสร้างออบเจ็คออกมาได้หลายตัว แต่ละตัวจะมีชื่อแตกต่างกันไป
การนิยามคลาส
ในภาษาจาวาสามารถนิยามคลาสหรือประกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้
AccessSpecifier เป็นความสามารถในการเข้าถึงคลาสนั้นๆ
class เป็นคีย์เวิร์ดในภาษาจาวาเพท่อใช้ในการประกาศคลาส
Name เป็นชื่อคลาสมี่ประกาศขึ้น
Members เป็นคุณลักษณะหรือเมธอดต่างๆ ของคลาสที่นิยามขึ้น
การสร้างออบเจ็กต์
หลังจากนิยามคลาสขึ้นมาแล้ว ถ้าหากโปรแกรมต้องการใช้งานจะต้องสร้างออบเจ็กต์ขึ้นมา เพื่อบอกว่าออบเจ็กต์เป็นของคลาสใด โดยจะต้อง
ประกาศออบเจ็กต์ขึ้นมาก่อนซึ่งมี รูปแบบดังนี้
ClassName ObjectName;
การประกาศออบเจ็กต์นี้จะทาให้คอมไพเลอร์รับทราบว่ามีตัวแปร ObjectName แต่จะยังไม่มีหน่วยความจาสาหรับข้อมูลของออบเจ็กต์ที่
ประกาศขึ้น ซึ่งจะต้องสร้างออบเจ็กต์ขึ้นมาก่อนโดยใช้คาว่า new ซึ่งมีรูปแบบดังนี้
objecyName = new ClassName([arguments])
เมือมีการสร้างออบเจ็กต์ขึ้นมาแล้ว สมาชิกของออบเจ็กต์คือสมาชิกของคลาสนั้น ซึ่งได้แก่คุณลักษณะหรือตัวแปรและเมธอดต่างๆ ออบเจ็กต์จะ
สามารถเข้าถึงข้อมูลที่เป็นคุณลักษณะหรือเรียกใช้เมธอดได้ไม่ขึ้นกับaccessSpecifier ที่ถูกประกาศไว้ตอนนิยามคลาส โดยการเรียกใช้สมาชิกจะทา
โดยใช้เครื่องหมายจุด แล้วตามด้วยสมาชิกที่ต้องการเรียกใช้
[AccessSpecifier] Class Name
{
Members
}
สแตติก(static)
ในจาวามีคลาสต่างๆให้ใช้งานมากมาย การสร้างคลาสขึ้นมาใหม่นี้ทาให้เราสามารถสร้างเมธอดใหม่ๆขึ้นมาใช้งานแล้วรวมกันเป็นคลาสได้ และที่
ผ่านมาในบทนี้จะเห็นว่าถ้าหากมีการประกาศออบเจ็คต้องการใช้งานสร้างออบเจ็คด้วยคาสั่ง new เช่น
import java.util.Scanner;
public class Cal_Max {
public static void main(String args[])
{
int num1,num2;
Scanner stdin = new Scanner(System.in);
System.out.print("Input Number 1 : ");
num1 = stdin.nextInt();
System.out.print("Input Number 2 : ");
num2 = stdin.nextInt();
int larger = TestMax.max(num1,num2);
System.out.println("Max Data is "+larger);
}
}
class TestMax {
static int max(int num1, int num2)
{
if(num1 > num2)
return num1;
else
return num2;
}
}
Constructors
เป็นฟังก์ชันในคลาสที่จะถูกเรียกอัตโนมัติเมื่อเราสร้างอ็อบเจ็คให้กับคลาสนั้น ๆ ด้วยคาสั่ง new ซึ่งมันจะเป็นฟังก์ชัน Constructors ได้ก็ต่อเมื่อ
ชื่อของมันเหมือนชื่อคลาส ถ้าภายในคลาสไม่มี constructor ดังนั้นมันจะทาการเรียก constructure ของ base class (ถ้ามันมี) เช่น
<?php
class Auto_Cart extends Cart
{
function Auto_Cart() {
$this->add_item("10", 1);
}
}
?>
Constructors function นั้นสามารถรับค่าพารามิเตอร์ได้เช่นกัน ดังนี้
<?php
class Constructor_Cart extends Cart
{
function Constructor_Cart(
$item = "10", $num = 1) { $this->add_item($item, $num);
}
}
การส่งออบเจ็กต์ไปยังเมธอด
ในการเขียนโปรแกรมที่มีการสร้างคลาสขึ้นมาหลายๆคลาสนั้น ออบเจ็คของคลาสหนึ่งสามารถใช้เป็นอาร์กิวเมนต์เพื่อส่งผ่านไปยังเมธอดของ
คลาสอีกคลาสหนึ่งได้ เช่น โปรแกรม Student.Java เป็นโปรแกรมคลาสสาหรับเก็บข้อมูลนักเรียน ได้แก่ ชื่อและอีเมล์โดยมีเมธอดสาหรับกาหนดและ
เรียกดูชื่อและอีเมล์สาหรับใช้งาน
public class Student3 {
private String name;
private String email;
public Student3()
{
name = "Unassigned";
email = "Unassigned";
}
public String getEmail(){
return email;
}
public String getName(){
return name;
}
public void setEmail(String address){
email = address;
}
public void setName(String studentName){
name = studentName;
}
}
ตัวอย่างการประยุกต์การเขียนโปรแกรมเชิงวัตถุ
จะเป็นแบบการออกแบบคลาสแล้วนามาเขียนโปรแกรมประยุกต์สาหรับใช้งานจริง โดยอธิบายขั้นตอนสาคัญในการทางานแต่ละขั้นตอนโดยมี
โปรแกรมตัวอย่างการเขียนโปรแกรมสาหรับเข้ารหัสข้อมูลโดยส่งข้อมูลผ่านเข้าไปในเครือข่ายคอมพิวเตอร ์์เพื่อความปลอดภัยได้นาเทคโนโลยีการ
เข้ารหัสมาใช้ ทาโดยการเลื่อนข้อมูล แต่ถ้าเป็นตัวอักขระตัวสุดท้ายของภาษาอังกฤษการเลื่อนข้อมูลจะกลับมาเริ่มต้นที่ตวั แรกใหม่
- ถ้าหากเป็น 2-shift ข้อมูลจะแทนได้ดังนี้
A แทนด้วย C
B แทนด้วย D
………………..
Y แทนด้วย A
Z แทนด้วย B
ถ้าข้อมูลต้นฉบับเป็น “DIZZY” แล้วเข้ารหัสแบบ 2- shift ข้อมูลที่เข้ารหัสแล้วจะเป็น “FKBBA”
อธิบายการทางานของโปรแกรม
1.ถ้าหากพิมพ์คาว่า Teerawut ลงไป จะทาให้ตัวแปร message ชี้ไปยังออบเจ็กต์สตริง “Teerawut”
2.ต่อมาถ้าหากกดคีย์ตัวเลข 5 ลงไป จะทาให้ตัวแปร shift มีค่าเป็น 5
3.เมื่อโปรแกรมเรียกใช้เมธอด encrypt จะทาให้ msg ซึ่งเป็นพารามิเตอร์ของเมธอดชี้ไปยังออบเจ็กต์เดียวกับ message และพารามิเตอร์ shift มีค่า
เป็น 5 เช่นกัน
4.เมื่อเมธอด encrypt ทางาน ทาให้ตัวแปร encryptedMessage ชี้ไปยังหน่อยความจาออบเจ็กต์สตริงที่สร้างขึ้นมาใหม่
5.จากนั้นจะทาให้ตัวแปร msg ชี้ไปยังสตริงชุดใหม่ที่ผ่านการเข้ารหัสแล้ว
6.หลังจากนั้นจะให้ encryptedMessage มีค่าสตริงที่เข้ารหัสแล้ว
ตัวอย่างโปรแกรม จะแสดงการสร้างคลาสของการนาตัวอักขระ[]มาสร้างเป็นรูปสามเหลี่ยม โดยการสร้างคลาสสามารถทาได้ดังต่อไปนี้
1.สร้างโปรเจ็กต์ใหม่
2.สร้างคลาสใหม่ โดยเลือกเมนู New>Class
3.กาหนดชื่อคลาส แล้วกด Next
4.โปรแกรมจะแสดงคลาสใหม่ขึ้นมา
5.จากนั้นให้เติมโค้ด แล้วรันโปรแกรม
สรุป
คลาสเปรียบเสมือนพิมพ์เขียวสาหรับสร้างออบเจ็คต่างๆออกมาที่มีลักษณะคล้ายกันมาอยู่รวมกัน ในการสร้างคลาสนั้น ภายในประกอบด้วยส่วนที่
เป็นคุณลักษณะหรือตัวแปรต่างๆและส่วนที่เป็นเมธอดโดยที่ตัวแปรและเมธอดนี้ผู้ที่นิยามคลาสสามารถกาหนดได้ว่าจะให้ผู้ใช้ภายนอกสามารถเข้าถึงได้
ในระดับใด เมื่อมีการออบเจ็คของคลาสขึ้นมาแล้วต้องการให้ทาเมธอดใดทันที ในการนิยามคลาสนั้นจะต้องสร้างเมธอดที่มีชื่อเดียวกับคลาสที่เรียกว่า
คอนสตรัคเตอร์ ขึ้นมา
คลาสและการเขียนโปรแกรมวัตถุเบื้องต้น
จัดทาโดย
นายภูมิพชร สิทธิสร เลขที่ 2
นายอานนท์ ผาสุก เลขที่ 3
นายวีรภัทร ทองบุญเหลือ เลขที่ 4
นายสมพร มานพพนาไพร เลขที่ 5
นายวิทยากร พรหมชนะ เลขที่ 6
นางพุฒิพงศ์ ปิยะพันธ์ เลขที่ 7
นายเดช เดชาบูรพา เลขที่ 8
นักเรียนชั้น ม.6/1
โรงเรียนเฉลิมพระเกียรติสมเด็จพระศรีนครินทร์ กาญจนบุรี
วิชาการเขียนโปรแกรมประยุกต์ (ง30213)
เสนอ
ครูทรงศักดิ์โพธิ์เอี่ยม

More Related Content

Similar to คลาสและโปรแกรม

Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptIMC Institute
 
บทที่6 คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
บทที่6 คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นบทที่6 คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
บทที่6 คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นPat Sirikan Bungkaew
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นSirinat Sansom
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นFinian Nian
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นFinian Nian
 
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]Khon Kaen University
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นPornsitaintharak
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
Presentation 5
Presentation 5Presentation 5
Presentation 5kitkit1974
 
Presentation 5
Presentation 5Presentation 5
Presentation 5safdswqe
 

Similar to คลาสและโปรแกรม (20)

Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented Concept
 
บทที่6 คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
บทที่6 คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นบทที่6 คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
บทที่6 คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
Class1
Class1Class1
Class1
 
Java 7&12 6 2
Java 7&12 6 2Java 7&12 6 2
Java 7&12 6 2
 
Flex 101 ep-03
Flex 101 ep-03Flex 101 ep-03
Flex 101 ep-03
 
Lec12 oop in_php
Lec12 oop in_phpLec12 oop in_php
Lec12 oop in_php
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
#1
#1#1
#1
 
Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
Pbl2
Pbl2Pbl2
Pbl2
 
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
8.Inheritance
8.Inheritance8.Inheritance
8.Inheritance
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Know 1 1
Know 1 1Know 1 1
Know 1 1
 
Presentation 5
Presentation 5Presentation 5
Presentation 5
 
Presentation 5
Presentation 5Presentation 5
Presentation 5
 

คลาสและโปรแกรม