More Related Content
PDF
Java-Answer Chapter 05-06 PDF
Java-Answer Chapter 01-04 (For Print) PDF
Java-Chapter 12 Classes and Objects PDF
Java-Answer Chapter 12-13 (For Print) PDF
Java-Chapter 01 Introduction to Java Programming PDF
PDF
Java-Answer Chapter 05-06 (For Print) PDF
Java-Answer Chapter 12-13 What's hot
PDF
PDF
PDF
PDF
PDF
Java Programming: โครงสร้างควบคุม PPT
Java Programming [12/12] : Thread PDF
Java-Chapter 07 One Dimensional Arrays PDF
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์ PPT
Java Programming [8/12] : Arrays and Collection PDF
PDF
PDF
PPTX
PDF
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI) PDF
Java Programming: อะเรย์และคอลเล็กชั่น PPTX
PPTX
Reference :: Java :: เต็ม PDF
Java-Chapter 06 File Operations PDF
Java-Chapter 11 Recursions PDF
Java Programming: คลาสอินพุตและเอาต์พุต Similar to คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
PDF
PPT
Java Programming [4/12] : Object Oriented Concept PPTX
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น PDF
Java Programming: หลักการเชิงอ็อบเจกต์ PDF
Java-Chapter 02 Data Operations and Processing PPTX
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น PDF
Java-Chapter 13 Advanced Classes and Objects PPT
PDF
PPT
PDF
PPTX
PDF
PDF
PPTX
PPT
PDF
PPT
PDF
Applet 5 class_inheritance PDF
Applet 5 class_inheritance More from Finian Nian
PDF
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น PPTX
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น PDF
Microsoft power point วิธีการเชิงวัตถุและการออกแบบคลาส.pptx PDF
Microsoft power point วิธีการเชิงวัตถุและการออกแบบคลาส.pptx DOCX
DOCX
DOCX
DOCX
PDF
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
- 1.
ความหมายของโอโอพี โอโอพี หรื OOP เปนคํายอของ Object-Oriented Programming
หมายถึงการเขียนโปรแกรมเชิงวัตถุ หรือเขียนโปรแกรมแบบออบเจ็กต การเขียนโปแกรมในลักษณะนี้จะแตกตางจากกา เขียน ร
โปรแกรมที่ประมวลผลเชิงคําสั่งที่มีการทํางานทีละตําสั่งดังที่เคยศึกษามา แตจะเปนการสรางขอมูลเปนวัตถุหรือออบเจ็กต แลว
เขียนโปแกรมประมวลกับออบเจ็กตนั้นๆ ใหทํางานตามตองการ นอกจากนั้นยังเขียนโปรแกรมประมวลผลกับออบเจ็กตได ซึ่ง
ออบเจ็กตจะมีลักษณะ 3 ประการดังตอไปนี้
state เปนคุณลักษณะของออบเจ็กตนั้นๆ ที่บอกวาออบเจ็กตนั้นเปนอะไรบาง หรือเรียกอีกอยางหนึ่งวาเปน
คุณลักษณะประจํา โดยคุณสมบัติขึ้นกับมุมมองของแตละคน ในการเขียนโปรแกรมเชิงวัตถุ คุณลักษณะประจํานี้มักจะเปน
ขอมูล หรือตัวแปรตางๆ ของออบเจ็กตนั้น
Behavior หมายถึง พฤติกรรมของออบเจ็กต
I dentity เปนคุณลักษณะที่ทําใหออบเจ็กตแตละออบเจ็กตตางกัน
ในการเขียนโปรแกรมนั้นออบเจ็กตมีไดหลายตัว โดยออบเจ็กตแตละตัวจะเปนอิสระ ไมขึ้นตอกันแตละออบเจ็กต
สามารถที่จะสื่อสารหรือโตตอบกันไดโดยวิธีสงเมสเสจ ถึงกัน
- 2.
คลาสและออบเจ็กต การมองทุกอยางของปญหาเปนวัตถุหรืออบเจ็กตนั้น ถาหากวัตถุใดมีลักษณะคลายกันก็จะรวมทั้งหมดให
เปนคลาส ถาหากมีตัวแปรหรือสรางขอมูลขึ้นมา ขอมูลนั้นก็จะถูกใชในออบเจ็กตนั้นๆ การกระทํากับออบเจ็กตจะกระทําผานเมธอดของคลาส
นั้นๆ
สวนสําคัญสองสวนของออบเจ็กตคือ คุณลักษณะซึ่งเปนขอมูลประจําตัวของออบเจ็กตและพฤติกรรมหรือเมธอด ซึ่งบอกวา
ออบเจ็กตกําลังทําสิ่งใดอยูถาหากมีการสรางออบเจ็กตขึ้นมาและโปรแกรมตองการจัดการกับขอมูลทีเ่ ปนคุณลักษณะของออบเจ็กตก็จะกระทํา
ผานเมธอด
สําหรับคลาสจะเปนที่รวบรวมของออบเจ็กตหลายๆ ออบเจ็กตที่มีลักษณะเดียวกัน แตอาจมีขอมูลประจําตัวหรือคุณลักษณะ
ตางๆ
ดังนั้นในการเขียนโปรแกรมเชิงวัตถุนั้นจะตองรูจักการนิยาม คลาส จากทีกลาวมาแลวจะพบวาคลาสเปนการจัดกลุมของ
่
ออบเจ็กตที่มีคุณลักษณะและพฤติกรรมอยางเหมือนกัน เปรียบเสมือนเปนพิมพเขียวของออบเจ็กต หรือเปนแมแบบสําหรับออบเจ็กต
ในการเขียนโปรแกรมเชิงวัตถุนั้นจะไมมีการใชงานคลาสตรงๆ แตจะใชคลาสเปนพิมพเขียวเพื่อสรางออบเจ็กตตางๆขึ้นมา
ออบเจ็กตทถูกสรางจากคลาสจะเรียนกวา อินสแตนซ ของคลาสนั้นโดยที่คลาสใดคลาสหนึ่งสามารถสรางออบเจ็กตออกมาไดหลายตัวแตละ
ี่
ตัวจะมีชื่อแตกตางกันไป
สําหรับการเขียนโปรแกรมเชิงวัตถุดวยภาษตางๆนั้น จะมีคลาสมาตรฐานใหผูเขียนโปรแกรมใชงาน และผูเขียนโปรแกรมก็ตอง
เขาใจวิธีการสรางคลาสขึ้นมาเองดวย ดังนั้นในการเขียนโปรแกรมเชิงวัตถุจะตองพยายามจําแนกวาวัตถุที่เราสนใจนั้นตองมีตัวแปรใดที
สามารถแยกแยะวัตถุแตละตัวได และวัตถุดังกลาวมีพฤติกรรมอยางไร จากนั้นนํามารวมเปนคลาส และสรางคลาสนั้นขึ้นมา
- 3.
การนิยามคลาส
ในภาษาจาวาสามารถนิยามคลาสหรือประกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้
[AccessSpecifier] Class Name
{
Members
}
AccessSpecifier เปนความสามารถในการเขาถึงคลาสนั้นๆ
class เปนคียเวิรดในภาษาจาวาเพทอใชในการประกาศคลาส
Name เปนชื่อคลาสมี่ประกาศขึ้น
Members เปนคุณลักษณะหรือเมธอดตางๆ ของคลาสที่นิยามขึ้น
การสรางออบเจ็กต
หลังจากนิยามคลาสขึ้นมาแลว ถาหากโปรแกรมตองการใชงานจะตองสรางออบเจ็กตขึ้นมา เพื่อบอกวาออบเจ็กตเปนของคลาสใด โดยจะตองประกาศออบเจ็กตขึ้นมากอนซึ่งมี
รูปแบบดังนี้
ClassName ObjectName;
การประกาศออบเจ็กตนี้จะทําใหคอมไพเลอรรับทราบวามีตัวแปร ObjectName แตจะยังไมมีหนวยความจําสําหรับขอมูลของออบเจ็กตที่ประกาศขึ้น ซึ่ง
จะตองสรางออบเจ็กตขึ้นมากอนโดยใชคําวา new ซึ่งมีรูปแบบดังนี้
objecyName = new ClassName([arguments])
เมือมีการสรางออบเจ็กตขึ้นมาแลว สมาชิกของออบเจ็กตคือสมาชิกของคลาสนั้น ซึ่งไดแกคุณลักษณะหรือตัวแปรและเมธอดตางๆ ออบเจ็กตจะ
สามารถเขาถึงขอมูลที่เปนคุณลักษณะหรือเรียกใชเมธอดไดไมขึ้นกับaccessSpecifier ที่ถูกประกาศไวตอนนิยามคลาส โดยการเรียกใชสมาชิกจะทําโดยใชเครื่องหมายจุด แลว
ตามดวยสมาชิกที่ตองการเรียกใช
- 4.
สแตติก(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;
}
}
จากโปรแกรมนี้จะเปนวาเมธอดในคลาส Scanner ที่ใชรับขอมูลจะไมเปนแบบสแตติก ซึ่งจะตองสรางออบเจ็กตขึ้นมา แต
เมธอดชื่อmax ในคลาส TestMax ที่สรางขึ้นปนแบบสแตติก จึงเรียกชื่อคลาสและตามดวยเมธอดมาใชงานไดทันทีโดยไมตองสราง
ออบเจ็กต
- 5.
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);
}
}
// ในกรณีที่ไมสงคาพารามิเตอรใหกับ Constructor function $default_cart = new Constructor_Cart;
// ในกรณีนี้ฟงกชัน Constructor ของ Constructor_Cart นั้นไดกําหนดคา default ใหกับพารามิเตอรอยูแลว // ดังนั้น
เราก็ไมจําเปนตองสงคาพารามิเตอรก็ได ไมเกิด error
// กรณีที่สงคา parameter ไปดวย $different_cart = new Constructor_Cart("20", 17); ?>
- 6.
การสงออบเจ็กตไปยังเมธอด ในการเขียนโปรแกรมที่มีการสรางคลาสขึ้นมาหลายๆคลาสนั้น
ออบเจ็กตของคลาสหนึ่งสามารถใชเปนอารกิวเมนตเพื่อสงผานไปยังเมธอดของคลาสอีกคลาสหนึ่งได
เชนโปรแกรม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;
}
}
- 7.
ตัวอยางการประยุกตการเขียนโปรแกรมเชิงวัตถุ
จะเปนแบบการออกแบบคลาสแลวนํามาเขียนโปรแกรมประยุกตสําหรับใชงานจริง โดยอธิบายขั้นตอนสําคัญในการทํางานแตละขั้นตอน
โดยมีโปรแกรมตัวอยางการเขียนโปรแกรมสําหรับเขารหัสขอมูลโดยสงขอมูลผานเขาไปในเครือขายคอมพิวเตอรเพื่อความปลอดภัยไดนํา
เทคโนโลยีการเขารหัสมาใช ทําโดยการเลื่อนขอมูล แตถาเปนตัวอักขระตัวสุดทายของภาษาอังกฤษการเลื่อนขอมูลจะกลับมาเริ่มตนที่ตวแรกใหม
ั
- ถาหากเปน 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 มีคาสตริงที่เขารหัสแลว
- 8.
- 9.
คลาสและการเขียนโปรแกรมวัตถุเบื้องตน
จัดทําโดย
นายปตพงษ ปลีบุตร เลขที่10
ิ
นางสาว รุงทิวา ผดุงพัฒนดิษฐ เลขที20
่
นางสาวจณิสตา ลิ้มทอง เลขที่30
นางสาวจันทรา แสงสุริยาอุทัย เลขที31 ่
นางสาวนิศาชล ไทยพุทรา เลขที่33
นางสาวอาริษา งามขํา เลขที่37
นักเรียนชั้น ม.6/1
โรงเรียนเฉลิมพระเกียรติสมเด็จพระศรีนครินทร กาญจนบุรี
วิชาการเขียนโปรแกรมประยุกต (ง30213)
เสนอ
ครูทรงศักดิ์ โพธิ์เอี่ยม