SlideShare a Scribd company logo
1 of 15
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
สมาชิก
นายพณัฏฐ์ โชติกุญชร เลขที่ 2
นายฉัตรกาล สืบต้อย เลขที่ 5
นางสาวณัฐวรินทร์ ภังคานนท์ เลขที่ 23
นางสาวณัฐวดี สืบเรือง เลขที่ 33
นางสาวสุธิศา แสนพรม เลขที่ 35
นางสาวอิสรีย์ นาคศรีโภชน์ เลขที่ 36
ชั้น มัธยมศึกษาปีที่ 6/2
การเขียนโปรแกรมเชิงวัตถุ(OBJECT ORIENTED
PROGRAMMING: OOP)
ความหมายการโปรแกรมเชิงวัตถุ (Object Oriented
Programming)
การโปรแกรมเชิงวัตถุ (Object Oriented Programming)
หรือเรียกสั้น ๆ ว่า OOP เป็นวิธีการเขียนโปรแกรมโดยมองสิ่งต่างๆ ในระบบ เช่น
ตัวอักษร, รูปภาพ, หน้าต่าง, แบบฟอร์ม ฯลฯ เป็นวัตถุหนึ่งชิ้น
อ็อบเจ็กต์ (Object) จัดเป็นตัวแปรชนิดหนึ่ง
ของ Class ใช้ Object ในการเข้าถึงและจัดเก็บ
ข้อมูลต่างๆ ภายใน Class เช่น Class ของปุ่มคาสั่ง
ภายใน Form อาจประกอบไปด้วย Object : Add, Save,
Delete, Find และ Close เป็นต้น
หลักการสาคัญของการโปรแกรมเชิงวัตถุ
การเขียนโปรแกรมแบบ OOP จะเน้นที่ “Object & Class” นั่นก็หมายความว่า
พยายามมองทุกสิ่งทุกอย่างในมุมของการโปรแกรมให้เป็น Object ซึ่ง Object เป็นสมาชิก
ของ Class แต่นอกเหนือจากนี้ OOP ยังมีหลักการและความสามารถในเรื่องต่อไปนี้
วัตถุ (Object)
คือ การมองภาพสิ่งต่าง ๆ เป็นวัตถุ
เป้ าหมาย ภายใน Object ประกอบด้วย Properties (คุณสมบัติ
ของ Object) กับ Behavior (พฤติกรรมการตอบสนองต่อเหตุการณ์ :Event ต่าง ๆ
ของ Object)
- ตัวอย่างของ Object ในโลกแห่งความเป็นจริง เช่น
“Object : มนุษย์” ประกอบด้วยคุณสมบัติ (Properties) สีผม , สีผิว ,ความสูง, สัดส่วน เป็น
ต้น และมีพฤติกรรมการตอบสนองต่อเหตุการณ์ (Behavior) เช่น ตอบสนองต่อการถูกชก
ต่อย ตอบสนองต่อเหตุการณ์ถูกไล่ล่า เป็นต้น
“Object : จักรยาน” ประกอบด้วยคุณสมบัติ (Properties) สีรถ , ขนาด ,รุ่น, ประเภท เป็นต้น และ
มีพฤติกรรมการตอบสนองต่อเหตุการณ์ (Behavior) เช่น ตอบสนองต่อการปันจักรยาน ตอบสนองต่อ
เหตุการณ์เบรก เป็นต้น
- ตัวอย่างของ Object ในมุมมองทางด้านโปรแกรม
Object : ปุ่ม ประกอบด้วยคุณสมบัติ (Properties) ข้อความบนปุ่ม ,
ขนาดของปุ่ม ,สีของปุ่ม, Stye ของปุ่ม เป็นต้น และมีพฤติกรรมการตอบสนองต่อ
เหตุการณ์ (Behavior) เช่น ตอบสนองต่อการถูก Click เป็นต้น
คลาส (Class)
คือ เป็นต้นแบบหรือแม่พิมพ์ ที่ใช้ในการผนวกหลาย ๆ Object เข้าด้วยกัน โดยจัดกลุ่ม Object ที่มีความ
คล้ายคลึงกันอยู่ใน Class เดียวกัน
- ตัวอย่างของ Class ในโลกแห่งความเป็นจริง เช่น
“Class: มวยสากล” ประกอบด้วย
จะเห็นได้ว่าแต่ละ Object จะมี Properties และ Behavior ที่แตกต่างกัน
เช่น
“Object สมรักษ์” มีลักษณะตัวสูง พูดจาโอ้อวดนิด ๆ มีพฤติกรรมในการชกที่สามารถ
ออกหมัดได้เร็ว และแม่นยา ซึ่ง Properties และ Behavior นี้ก็จะมีลักษณะที่
แตกต่างไปจาก “Object สามารถ”
การสร้าง Class ก็เช่นเดียวกับการจัดกลุ่มข้อมูล เราจะไม่นา “Object ของมวย
ไทย” เข้ามาปะปนกับ “Object ของมวลสากล” เพราะทางานคนละลักษณะกัน
ตัวอย่างของ Class ในมุมมองทางด้านโปรแกรม
“Class: ปุ่มคาสั่ง” ประกอบด้วย
การนิยามคลาส
ในภาษาจาวาสามารถนิยามคลาสหรือประกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้
[AccessSpecifier] Class Name
{
Members
}
AccessSpecifier เป นความสามารถในการเข าถึงคลาสนั้นๆ
class เป นคีย เวิร ดในภาษาจาวาเพท อใช ในการประกาศคลาส
Name เป นชื่อคลาสมี่ประกาศขึ้น
Members เป นคุณลักษณะหรือเมธอดต างๆ ของคลาสที่นิยามขึ้น
การสร างออบเจ็กต
หลังจากนิยามคลาสขึ้นมาแล ว ถ าหากโปรแกรมต องการใช งานจะต องสร างออบเจ็กต ขึ้นมา เพื่อบอกว
าออบเจ็กต เป นของคลาสใด โดยจะต องประกาศออบเจ็กต ขึ้นมาก อนซึ่งมีรูปแบบดังนี้
ClassName ObjectName;
การประกาศออบเจ็กต นี้จะทาให คอมไพเลอร รับทราบว ามีตัวแปร ObjectName แต จะยังไม มีหน
วยความจาสาหรับข อมูลของออบเจ็กต ที่ประกาศขึ้น ซึ่งจะต องสร างออบเจ็กต ขึ้นมาก อนโดยใช คาว า
new ซึ่งมีรูปแบบดังนี้
objecyName = new ClassName([arguments])
เมือมีการสร างออบเจ็กต ขึ้นมาแล ว สมาชิกของออบเจ็กต คือสมาชิกของคลาสนั้น ซึ่งได แก
คุณลักษณะหรือตัวแปรและเมธอดต างๆ ออบเจ็กต จะสามารถเข าถึงข อมูลที่เป นคุณลักษณะหรือเรียกใช เมธ
อดได ไม ขึ้นกับaccessSpecifier ที่ถูกประกาศไว ตอนนิยามคลาส โดยการเรียกใช สมาชิกจะทาโดยใช
สแตติก(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
ที่สร างขึ้นป นแบบสแตติก จึงเรียกชื่อคลาสและตามด วยเมธอดมาใช งานได
ทันทีโดยไม ต องสร างออบเจ็กต
Constructors เป นฟ งก ชันในคลาสที่จะถูกเรียกอัตโนมัติเมื่อเราสร างอ็อบเจ็คให กับคลา สนั้น ๆ ด วยคําสั่ง newซึ่งมันจะเป นฟ
งก ชัน Constructors
ได ก็ต อเมื่อชื่อของมันเหมือนชื่อคลาส ถ าภายในคลาสไม มี constructor ดังนั้นมันจะทําการเรียก constructure ของ base class(ถ ามันมี)
เช น
<?php
class Auto_Cart extends Cart
{
function Auto_Cart() {
$this->add_item("10", 1);
}
}
?>
Constructorsfunction นั้นสามารถรับค าพารามิเตอร ได เช นกันดังนี้
<?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); ?>
การส งออบเจ็กต ไปยังเมธอด ในการเขียนโปรแกรมที่มีการสร างคลาสขึ้นมาหลายๆคลาสนั้นออบเจ็กต ของคลาสห
นึ่งสามารถใช เป นอาร กิวเมนต เพื่อส งผ านไปยังเมธอดของคลาสอีกคลาสหนึ่ง ได
เช นโปรแกรม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 ข อมูลที่เข ารหัสแล วจะเป น “FKB
อธิบายการทํางานของโปรแกรม
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.จากนั้นให เติมโค ด แล วรันโปรแกรม
สรุป คลาสเปรียบเสมือนพิมพ เขียวสาหรับสร างออบเจ็กต ต างๆออกมาที่มีลักษณะ คล ายกัน
มาอยู รวมกัน ในการสร างค ลาสนั้น ภายในประกอบด วยส วนที่เป นคุณลักษณะหรือตัวแปรต างๆและส
วนที่เป นเมธอดโดย ที่ตัวแปรและเมธอดนี้ผที่นิยามคลาส ูู สามารถกาหนดได ว าจะให ผู ใช
ภายนอกสามารถเข าถึงได ในระดับใด เมื่อมีการออบเจ็กต ของคลาสขึ้นมาแล วต องการให ทาเมธอดใด
ทันที ในการนิยามคลาสนั้นจะต องสร างเมธอดที่มีชื่อเดียวกับคลาสที่เรียกว า คอนสตรัคเตอร ขึ้นมา
THE END

More Related Content

What's hot

คลาสและโปรแกรม
คลาสและโปรแกรมคลาสและโปรแกรม
คลาสและโปรแกรมN'Name Phuthiphong
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Thanachart Numnonda
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นThanachart Numnonda
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Thanachart Numnonda
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอchupong roddee
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาThanachart Numnonda
 
ความรู้พื้นฐานเกี่ยวกับภาษา PHP
ความรู้พื้นฐานเกี่ยวกับภาษา PHPความรู้พื้นฐานเกี่ยวกับภาษา PHP
ความรู้พื้นฐานเกี่ยวกับภาษา PHPKhon Kaen University
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : ThreadIMC Institute
 
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]Khon Kaen University
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาKukkik Kanya
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionIMC Institute
 
2.Java fundamentals
2.Java fundamentals2.Java fundamentals
2.Java fundamentalsUsableLabs
 

What's hot (20)

บทที่ 8 Methods
บทที่ 8 Methodsบทที่ 8 Methods
บทที่ 8 Methods
 
METHODS
METHODSMETHODS
METHODS
 
คลาสและโปรแกรม
คลาสและโปรแกรมคลาสและโปรแกรม
คลาสและโปรแกรม
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่น
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอ
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
 
ความรู้พื้นฐานเกี่ยวกับภาษา PHP
ความรู้พื้นฐานเกี่ยวกับภาษา PHPความรู้พื้นฐานเกี่ยวกับภาษา PHP
ความรู้พื้นฐานเกี่ยวกับภาษา PHP
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : Thread
 
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
 
5.Methods cs
5.Methods cs5.Methods cs
5.Methods cs
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวา
 
8.Inheritance
8.Inheritance8.Inheritance
8.Inheritance
 
3.Expression
3.Expression3.Expression
3.Expression
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
Java AWT
Java AWTJava AWT
Java AWT
 
2.Java fundamentals
2.Java fundamentals2.Java fundamentals
2.Java fundamentals
 
4.Oop
4.Oop4.Oop
4.Oop
 

Similar to คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น

Similar to คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น (20)

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
Java 7&12 6 2
Java 7&12 6 2Java 7&12 6 2
Java 7&12 6 2
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Ass1 1
Ass1 1Ass1 1
Ass1 1
 
Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
Six
SixSix
Six
 
Know 1 1
Know 1 1Know 1 1
Know 1 1
 
Chapter3
Chapter3Chapter3
Chapter3
 
66
6666
66
 
Pbl2
Pbl2Pbl2
Pbl2
 
ใบงาน 6
ใบงาน 6ใบงาน 6
ใบงาน 6
 
Six[1]
Six[1]Six[1]
Six[1]
 
คอม
คอมคอม
คอม
 
Flex 101 ep-03
Flex 101 ep-03Flex 101 ep-03
Flex 101 ep-03
 
Java
JavaJava
Java
 
TAP: Test Analysis Program
TAP: Test Analysis ProgramTAP: Test Analysis Program
TAP: Test Analysis Program
 
Java intro
Java introJava intro
Java intro
 
ใบงานคอมพิวเตอร์ 2 ถึง 8
ใบงานคอมพิวเตอร์ 2 ถึง 8ใบงานคอมพิวเตอร์ 2 ถึง 8
ใบงานคอมพิวเตอร์ 2 ถึง 8
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น

  • 1. คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น สมาชิก นายพณัฏฐ์ โชติกุญชร เลขที่ 2 นายฉัตรกาล สืบต้อย เลขที่ 5 นางสาวณัฐวรินทร์ ภังคานนท์ เลขที่ 23 นางสาวณัฐวดี สืบเรือง เลขที่ 33 นางสาวสุธิศา แสนพรม เลขที่ 35 นางสาวอิสรีย์ นาคศรีโภชน์ เลขที่ 36 ชั้น มัธยมศึกษาปีที่ 6/2
  • 2. การเขียนโปรแกรมเชิงวัตถุ(OBJECT ORIENTED PROGRAMMING: OOP) ความหมายการโปรแกรมเชิงวัตถุ (Object Oriented Programming) การโปรแกรมเชิงวัตถุ (Object Oriented Programming) หรือเรียกสั้น ๆ ว่า OOP เป็นวิธีการเขียนโปรแกรมโดยมองสิ่งต่างๆ ในระบบ เช่น ตัวอักษร, รูปภาพ, หน้าต่าง, แบบฟอร์ม ฯลฯ เป็นวัตถุหนึ่งชิ้น อ็อบเจ็กต์ (Object) จัดเป็นตัวแปรชนิดหนึ่ง ของ Class ใช้ Object ในการเข้าถึงและจัดเก็บ ข้อมูลต่างๆ ภายใน Class เช่น Class ของปุ่มคาสั่ง ภายใน Form อาจประกอบไปด้วย Object : Add, Save, Delete, Find และ Close เป็นต้น
  • 3. หลักการสาคัญของการโปรแกรมเชิงวัตถุ การเขียนโปรแกรมแบบ OOP จะเน้นที่ “Object & Class” นั่นก็หมายความว่า พยายามมองทุกสิ่งทุกอย่างในมุมของการโปรแกรมให้เป็น Object ซึ่ง Object เป็นสมาชิก ของ Class แต่นอกเหนือจากนี้ OOP ยังมีหลักการและความสามารถในเรื่องต่อไปนี้ วัตถุ (Object) คือ การมองภาพสิ่งต่าง ๆ เป็นวัตถุ เป้ าหมาย ภายใน Object ประกอบด้วย Properties (คุณสมบัติ ของ Object) กับ Behavior (พฤติกรรมการตอบสนองต่อเหตุการณ์ :Event ต่าง ๆ ของ Object) - ตัวอย่างของ Object ในโลกแห่งความเป็นจริง เช่น “Object : มนุษย์” ประกอบด้วยคุณสมบัติ (Properties) สีผม , สีผิว ,ความสูง, สัดส่วน เป็น ต้น และมีพฤติกรรมการตอบสนองต่อเหตุการณ์ (Behavior) เช่น ตอบสนองต่อการถูกชก ต่อย ตอบสนองต่อเหตุการณ์ถูกไล่ล่า เป็นต้น
  • 4. “Object : จักรยาน” ประกอบด้วยคุณสมบัติ (Properties) สีรถ , ขนาด ,รุ่น, ประเภท เป็นต้น และ มีพฤติกรรมการตอบสนองต่อเหตุการณ์ (Behavior) เช่น ตอบสนองต่อการปันจักรยาน ตอบสนองต่อ เหตุการณ์เบรก เป็นต้น - ตัวอย่างของ Object ในมุมมองทางด้านโปรแกรม Object : ปุ่ม ประกอบด้วยคุณสมบัติ (Properties) ข้อความบนปุ่ม , ขนาดของปุ่ม ,สีของปุ่ม, Stye ของปุ่ม เป็นต้น และมีพฤติกรรมการตอบสนองต่อ เหตุการณ์ (Behavior) เช่น ตอบสนองต่อการถูก Click เป็นต้น
  • 5. คลาส (Class) คือ เป็นต้นแบบหรือแม่พิมพ์ ที่ใช้ในการผนวกหลาย ๆ Object เข้าด้วยกัน โดยจัดกลุ่ม Object ที่มีความ คล้ายคลึงกันอยู่ใน Class เดียวกัน - ตัวอย่างของ Class ในโลกแห่งความเป็นจริง เช่น “Class: มวยสากล” ประกอบด้วย
  • 6. จะเห็นได้ว่าแต่ละ Object จะมี Properties และ Behavior ที่แตกต่างกัน เช่น “Object สมรักษ์” มีลักษณะตัวสูง พูดจาโอ้อวดนิด ๆ มีพฤติกรรมในการชกที่สามารถ ออกหมัดได้เร็ว และแม่นยา ซึ่ง Properties และ Behavior นี้ก็จะมีลักษณะที่ แตกต่างไปจาก “Object สามารถ” การสร้าง Class ก็เช่นเดียวกับการจัดกลุ่มข้อมูล เราจะไม่นา “Object ของมวย ไทย” เข้ามาปะปนกับ “Object ของมวลสากล” เพราะทางานคนละลักษณะกัน
  • 8. การนิยามคลาส ในภาษาจาวาสามารถนิยามคลาสหรือประกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้ [AccessSpecifier] Class Name { Members } AccessSpecifier เป นความสามารถในการเข าถึงคลาสนั้นๆ class เป นคีย เวิร ดในภาษาจาวาเพท อใช ในการประกาศคลาส Name เป นชื่อคลาสมี่ประกาศขึ้น Members เป นคุณลักษณะหรือเมธอดต างๆ ของคลาสที่นิยามขึ้น การสร างออบเจ็กต หลังจากนิยามคลาสขึ้นมาแล ว ถ าหากโปรแกรมต องการใช งานจะต องสร างออบเจ็กต ขึ้นมา เพื่อบอกว าออบเจ็กต เป นของคลาสใด โดยจะต องประกาศออบเจ็กต ขึ้นมาก อนซึ่งมีรูปแบบดังนี้ ClassName ObjectName; การประกาศออบเจ็กต นี้จะทาให คอมไพเลอร รับทราบว ามีตัวแปร ObjectName แต จะยังไม มีหน วยความจาสาหรับข อมูลของออบเจ็กต ที่ประกาศขึ้น ซึ่งจะต องสร างออบเจ็กต ขึ้นมาก อนโดยใช คาว า new ซึ่งมีรูปแบบดังนี้ objecyName = new ClassName([arguments]) เมือมีการสร างออบเจ็กต ขึ้นมาแล ว สมาชิกของออบเจ็กต คือสมาชิกของคลาสนั้น ซึ่งได แก คุณลักษณะหรือตัวแปรและเมธอดต างๆ ออบเจ็กต จะสามารถเข าถึงข อมูลที่เป นคุณลักษณะหรือเรียกใช เมธ อดได ไม ขึ้นกับaccessSpecifier ที่ถูกประกาศไว ตอนนิยามคลาส โดยการเรียกใช สมาชิกจะทาโดยใช
  • 9. สแตติก(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; }
  • 10. จากโปรแกรมนี้จะเป นว าเมธอดในคลาส Scanner ที่ใช รับข อมูลจะไม เป นแบบสแตติก ซึ่งจะต องสร างออบเจ็กต ขึ้นมา แต เมธอดชื่อmax ในคลาส TestMax ที่สร างขึ้นป นแบบสแตติก จึงเรียกชื่อคลาสและตามด วยเมธอดมาใช งานได ทันทีโดยไม ต องสร างออบเจ็กต
  • 11. Constructors เป นฟ งก ชันในคลาสที่จะถูกเรียกอัตโนมัติเมื่อเราสร างอ็อบเจ็คให กับคลา สนั้น ๆ ด วยคําสั่ง newซึ่งมันจะเป นฟ งก ชัน Constructors ได ก็ต อเมื่อชื่อของมันเหมือนชื่อคลาส ถ าภายในคลาสไม มี constructor ดังนั้นมันจะทําการเรียก constructure ของ base class(ถ ามันมี) เช น <?php class Auto_Cart extends Cart { function Auto_Cart() { $this->add_item("10", 1); } } ?> Constructorsfunction นั้นสามารถรับค าพารามิเตอร ได เช นกันดังนี้ <?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); ?>
  • 12. การส งออบเจ็กต ไปยังเมธอด ในการเขียนโปรแกรมที่มีการสร างคลาสขึ้นมาหลายๆคลาสนั้นออบเจ็กต ของคลาสห นึ่งสามารถใช เป นอาร กิวเมนต เพื่อส งผ านไปยังเมธอดของคลาสอีกคลาสหนึ่ง ได เช นโปรแกรม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; }
  • 13. ตัวอย างการประยุกต การเขียนโปรแกรมเชิงวัตถุ จะเป นแบบการออกแบบคลาสแล วนํามาเขียนโปรแกรมประยุกต สําหรับใช งานจริงโดยอธิบายขั้นตอนสําคัญในการท ขั้นตอนโดยมีโปรแกรมตัวอย างการเขียนโปรแกรมสําหรับเข ารหัสข อมูลโดยส งข อมูลผ านเข าไปในเครือข ายคอม ปลอดภัยได นําเทคโนโลยีการเข ารหัสมาใช ทําโดยการเลื่อนข อมูล แต ถ าเป นตัวอักขระตัวสุดท ายของภาษาอังกฤ กลับมาเริ่มต นที่ตัวแรกใหม - ถ าหากเป น2-shift ข อมูลจะแทนได ดังนี้ A แทนด วย C B แทนด วย D ……………….. Y แทนด วย A Z แทนด วย B ถ าข อมูลต นฉบับเป น“DIZZY”แล วเข ารหัสแบบ2- shift ข อมูลที่เข ารหัสแล วจะเป น “FKB อธิบายการทํางานของโปรแกรม 1.ถ าหากพิมพ คําว าTeerawut ลงไป จะทําให ตัวแปร message ชี้ไปยังออบเจ็กต สตริง“Teerawut” 2.ต อมาถ าหากกดคีย ตัวเลข5 ลงไป จะทําให ตัวแปร shift มีค าเป น 5 3.เมื่อโปรแกรมเรียกใช เมธอด encrypt จะทําให msg ซึ่งเป นพารามิเตอร ของเมธอดชี้ไปยังออบเจ็กต เดียวกับmessage และ พารามิเตอร shiftมีค าเป น 5 เช นกัน 4.เมื่อเมธอด encrypt ทํางาน ทําให ตัวแปร encryptedMessage ชี้ไปยังหน อยความจําออบเจ็กต สตริงที่สร างขึ้นมาใหม 5.จากนั้นจะทําให ตัว แปร msg ชี้ไปยังสตริงชุดใหม ที่ผ านการเข ารหัสแล ว 6.หลังจากนั้นจะให encryptedMessage มีค าสตริงที่เข ารหัสแล ว
  • 14. ตัวอย างโปรแกรม จะแสดงการสร างคลาสของการนาตัวอักขระ[]มาสร างเป นรูปสามเหลี่ยม โดย การสร างคลาสสามารถทาได ดังต อไปนี้ 1.สร างโปรเจ็กต ใหม 2.สร างคลา สใหม โดยเลือกเมนู New>Class 3.กาหนดชื่อคลาส แล วกด Next 4.โปรแกรมจะแสดงคลาสใหม ขึ้นมา 5.จากนั้นให เติมโค ด แล วรันโปรแกรม สรุป คลาสเปรียบเสมือนพิมพ เขียวสาหรับสร างออบเจ็กต ต างๆออกมาที่มีลักษณะ คล ายกัน มาอยู รวมกัน ในการสร างค ลาสนั้น ภายในประกอบด วยส วนที่เป นคุณลักษณะหรือตัวแปรต างๆและส วนที่เป นเมธอดโดย ที่ตัวแปรและเมธอดนี้ผที่นิยามคลาส ูู สามารถกาหนดได ว าจะให ผู ใช ภายนอกสามารถเข าถึงได ในระดับใด เมื่อมีการออบเจ็กต ของคลาสขึ้นมาแล วต องการให ทาเมธอดใด ทันที ในการนิยามคลาสนั้นจะต องสร างเมธอดที่มีชื่อเดียวกับคลาสที่เรียกว า คอนสตรัคเตอร ขึ้นมา