PowerPoint Template

Download Report

Transcript PowerPoint Template

LOGO
การเขียนโปรแกรมเชิงวัตถุ
Object Oriented Programming
20/07/58
Nerissa Onkhum
1
แนวการสอน
ชื่อวิชา (ภาษาไทย)
ชื่อวิชา (ภาษาอังกฤษ)
รหัสวิชา
จานวนหน่ วยกิต
อาจารย์ ผ้ ูสอน
E-mail
ห้ องทางาน
20/07/58
การเขียนโปรแกรมเชิงวัตถุ
Object Oriented Programming
4121306A
3(2-2)
อาจารย์ เณริสสา อ่ อนขา
[email protected]
822
2
คาอธิบายรายวิชา
หลักการการออกแบบและพัฒนาซอฟต์แวร์เชิงวัตถุ
โครงสร้างโปรแกรมในภาษาเชิงวัตถุ ความหมายและ
กลุ่มของวัตถุ คุณลักษณะและพฤติกรรมของวัตถุ คลาสและ
หลักการสาคัญของคลาส การห่อหุม้ การสื บทอด การพ้องรู ป
การนาเอาส่ วนประกอบของซอฟต์แวร์กลับมาใช้ กราฟิ ก
การสร้างและจัดการโครงสร้างข้อมูลพลวัต กรณี ศึกษา
การเขียนโปรแกรมเชิงวัตถุ
20/07/58
3
จุดประสงค์ การเรียนรู้
เพือ่ ให้ นักศึกษามีความรู้ ความเข้ าใจเกีย่ วกับหลักการและ
แนวคิดเชิงวัตถุ
เพือ่ ให้ นักศึกษามีความรู้ ความเข้ าใจเกีย่ วกับการออกแบบและ
การเขียนโปรแกรมเชิงวัตถุ
20/07/58
4
เนือ้ หาวิชา
ความรู้ เบือ้ งต้ นของภาษาจาวา
หลักการเชิงออปเจ็ค
พืน้ ฐานโปรแกรมภาษาจาวา
โครงสร้ างควบคุม
การเขียนโปรแกรมภาษาจาวาเชิงออปเจ็ค
อะเรย์และคอลเล็กชัน
การจัดการกับข้ อมูลผิดพลาด
อินพุตและเอาท์ พุต
โปรแกรมจาวาแบบกราฟฟิ ก
20/07/58
5
หนังสื อที่ใช้ ในรายวิชา
ตาราหลัก
ธีรวัฒน์ ประกอบผล. คู่มือการเขียนโปรแกรมภาษา JAVA. พิมพ์ครั้งที่ 1
2552 : กรุ งเทพฯ ; ซัคเซส มีเดีย.
อรพิน. คู่มือการเขียนโปรแกรมด้วยภาษา JAVA. พิมพ์ครั้งที่ 9 2553:
กรุ งเทพฯ ; โปรวิชนั่ .
20/07/58
6
หนังสื อที่ใช้ ในรายวิชา
หนังสื ออ่านประกอบ
ยุทธนา ลีลาศวัฒนกุล. เริ่ มต้นการเขียนโปรแกรมด้วยภาษา Java. พิมพ์
ครั้งที่ 1 2548 : กรุ งเทพ ฯ ; ไทยเจริ ญการพิมพ์.
พนิดา พานิชกุล. การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นด้วยภาษา
JAVA. พิมพ์ครั้งที่ 1 2548 : กรุ งเทพฯ ; ไทยเจริ ญการพิมพ์.
วรเศรษฐ สุ วรรณิ ก และ ทศพล ธนะทิพานนท์. เขียนโปรแกรม Java
เบื้องต้น. พิมพ์ครั้งที่ 4 2551 : กรุ งเทพฯ ; ซีเอ็ดยูเคชัน่ .
20/07/58
7
การวัดผล
คะแนนระหว่ างภาค
 เข้าเรี ยน
 ทดสอบย่อย
 แบบทดสอบ
 แบบฝึ กปฏิบตั ิ
 สอบกลางภาค
 สอบปฏิบตั ิ
คะแนนสอบปลายภาค
20/07/58
70
5
5
10
10
30
10
30
คะแนน
คะแนน
คะแนน
คะแนน
คะแนน
คะแนน
คะแนน
คะแนน
8
ข้ อตกลงในชั้นเรียน
 เวลาเข้ าเรียนไม่ ต่ากว่ าร้ อยละ 80
 ขาดได้ ไม่ เกิน 3 ครั้ง
 มาสายกว่ าเวลาเรียนครึ่งชั่วโมง 2 ครั้ง ถือว่ าขาด 1 ครั้ง
 ส่ งงานที่ได้ รับมอบหมายทั้งหมดครบและตรงตามระยะเวลา
ที่กาหนด
 การแต่ งกาย ให้ เป็ นไปตามระเบียบมหาวิทยาลัยกาหนด
20/07/58
9
LOGO
ความรู้ เบือ้ งต้ นของภาษาจาวา
(Introduction to Java Programming)
20/07/58
Nerissa Onkhum
10
Outline
การเขียนโปรแกรมเชิงวัตถุ
ประวัติของภาษาจาวา
ข้ อดีของภาษาจาวา
จาวาแพลตฟอร์ ม
การคอมไพล์ และรันโปรแกรมภาษาจาวา
โปรแกรม HelloWorld ในแบบตัวอักษรและแบบกราฟิ ก
การติดตั้งเครื่องมือทีใ่ ช้ ในการพัฒนาโปรแกรมในภาษา Java
20/07/58
11
การเขียนโปรแกรมแบบโครงสร้ าง
(Structure programming)
การเขียนโปรแกรมเชิงกระบวนการ (Procedural
Programming) เป็ นการเขียนโปรแกรมแบบโครงสร้าง ซึ่ง
ช่วยจัดระเบียบของคาสัง่ ในโปรแกรม สามารถตรวจสอบ
ลาดับการทางานได้ง่าย แต่เนื่องจากโปรแกรมประกอบด้วย
คาสัง่ และข้อมูล เช่น ภาษา C แยกส่ วนที่เป็ นข้อมูลออกจาก
คาสัง่ ด้วยเหตุน้ ีฟังก์ชนั ที่จดั การกับข้อมูลจึงอาจถูกวางไว้
อย่างกระจัดกระจาย สร้างความลาบากในการติดตามสื บหา
ว่าข้อมูลถูกเปลี่ยนแปลง โดยฟังก์ชนั ใด
20/07/58
12
การเขียนโปรแกรมเชิงกระบวนการ
การเขียนโปรแกรมแบบโครงสร้าง (Procedural) จะแบ่งเป็ น
2 ส่ วนคือ ส่ วนโปรแกรมหลัก(Main Program) และ
โปรแกรมย่อย (Procedure หรื อ Function) ลักษณะของ Data
ที่มีการประกาศใช้ทวั่ ทั้งโปรแกรม เรี ยกว่าประกาศใช้แบบ
“Global”
20/07/58
13
การเขียนโปรแกรมเชิงกระบวนการ
โปรแกรมย่อย 1
โปรแกรมย่อย 2
โปรแกรมหลัก
Global Data
โปรแกรมย่อย 4
20/07/58
โปรแกรมย่อย 3
แสดงการเขียนโปรแกรม
แบบ Procedure
14
การเขียนโปรแกรมเชิงกระบวนการ
การเขียนโปรแกรมแบบโครงสร้าง โปรแกรมย่อยจะเรี ยกใช้ขอ้ มูล
จากโปรแกรมหลักตัวเดียวกัน อาจทาให้เกิดปัญหาการเปลีย่ นแปลง
ค่าของข้อมูลตัวเดียวกันได้
โปรแกรมประกอบด้วยคาสัง่ และข้อมูล การจัดระเบียบคาสัง่
เพียงอย่างเดียวนั้นจึงไม่สมบูรณ์
แยกส่ วนที่เป็ นข้อมูลออกจากคาสัง่ ด้วยเหตุน้ ีฟังก์ชนั ที่จดั การกับ
ข้อมูลจึงอาจจะถูกวางไว้อย่างกระจัดกระจาย สร้างความลาบาก
ในการติดตามสื บหาว่าข้อมูลนี้ถูกเปลี่ยนแปลงโดยฟังก์ชนั ใด
20/07/58
15
การเขียนโปรแกรมเชิงกระบวนการ
การเขียนโปรแกรมเชิงกระบวนการ (Procedural Programming)
หรื อการโปรแกรมแบบมีโครงสร้าง (Structure Programming)
มีหลักการ 3 อย่างนี้คือ
 การทางานแบบตามลาดับ (Sequence)
 การเลือกกระทาตามเงื่อนไข (Decision)
 การทาซ้ า (Loop)
20/07/58
16
การเขียนโปรแกรมเชิงกระบวนการ
1. การทางานแบบตามลาดับ (Sequence)
: รูปแบบการเขียนโปรแกรมทีง่ ่ ายทีส่ ุ ดคือ
เขียนให้ทางานจากบนลงล่าง เขียนคาสัง่
เป็ นบรรทัด และทาทีละบรรทัดจากบรรทัด
บนสุ ดลงไปจนถึงบรรทัดล่างสุ ด สมมติให้มี
การทางาน 3 กระบวนการคือ อ่านข้อมูล
คานวณ และพิมพ์ จะเขียนเป็ นผังงาน
(Flowchart) ในแบบตามลาดับได้ตามภาพ
START
Process1
Process2
Process3
STOP
แสดงการเขียนโปรแกรมเชิงกระบวนการแบบลาดับ
20/07/58
17
การเขียนโปรแกรมเชิงกระบวนการ
การทางานแบบตามลาดับ (Sequence)
ทางานตามลาดับ
ทางานจากบนลงล่ าง (จุดเริ่มต้ นถึงสิ้นสุ ด)
มีจุดเริ่มต้ นจุดเดียว – จุดสิ้นสุ ดจุดเดียว
START
Process1
Process2
Process3
STOP
20/07/58
18
การเขียนโปรแกรมเชิงกระบวนการ
2. การเลือกกระทาตามเงื่อนไข (Decision)
: การตัดสิ นใจ หรือเลือกเงื่อนไขคือ
เขียนโปรแกรมเพื่อนาค่าไปเลือกกระทา
โดยปกติจะมีเหตุการณ์ให้ทา 2 กระบวนการ คือ
เงื่อนไขเป็ นจริ งจะกระทากระบวนการหนึ่ง และ
เป็ นเท็จจะกระทาอีกกระบวนการหนึ่ ง แต่ถา้
ซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่น
การตัดเกรดนักศึกษา เป็ นต้น
ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่าง
ง่าย เพื่อกระทากระบวนการเพียงกระบวนการเดียว
20/07/58
Yes
Process
Decision
No
Process
แสดงการเขียนโปรแกรมเชิงกระบวนการแบบเงือ่ นไข
19
ตัวอย่ าง โปรแกรมประมวลผลการเรียน
เงื่อนไข
- คะแนนสอบตั้งแต่ 80 คะแนนขึน้ ไป
- คะแนนสอบ 70-79 คะแนนขึน้ ไป
- คะแนนสอบ 60-69 คะแนนขึน้ ไป
- คะแนนสอบ 50-59 คะแนนขึน้ ไป
- คะแนนสอบต่ากว่ า 50 คะแนน
20/07/58
ได้ เกรด A
ได้ เกรด B
ได้ เกรด C
ได้ เกรด D
ได้ เกรด F
20
ตัวอย่ าง
START
Read Score
Y
N
Score>=80
Y
Grade = ‘A’
N
Score>=70
Y
Grade = ‘B’
Grade = ‘C’
Score>=60
Y
Grade = ‘D’
20/07/58
Write Grade
STOP
N
Score>=50
N
Grade = ‘F’
21
Start
Read Score
หรื อ
Y
Score >= 80
Grade = ‘A’
N
Score >= 70
Y
Grade = ‘B’
N
Score >= 60
Y
Grade = ‘C’
N
Y
Score >= 50
Grade = ‘D’
N
Grade = ‘F’
Write Grade
20/07/58
Stop
22
ตัวอย่ าง
อัลกอริธึม
1. เริ่มต้ นทางาน
2. รับค่ า คะแนนสอบ (Score)
3. เปรียบเทียบคะแนนสอบ>=80 ถ้ าเป็ นจริง ให้
ทานิพจน์ Grade=‘A’ ถ้ าเป็ นเท็จ ให้
เปรียบเทียบคะแนนสอบ >=70 ถ้ าเป็ นจริง ให้
ทานิพจน์ Grade=‘B’ ถ้ าเป็ นเท็จ ให้
เปรียบเทียบคะแนนสอบ >=60 ถ้ าเป็ นจริง ให้
ทานิพจน์ Grade=‘C’ ถ้ าเป็ นเท็จ ให้
เปรียบเทียบคะแนนสอบ >=50 ถ้ าเป็ นจริง ให้
ทานิพจน์ Grade=‘D’ ถ้ าเป็ นเท็จ ให้ ให้ ทา
นิพจน์ Grade=‘F’
4. แสดงผล เกรด (Grade)
5. จบการทางาน
20/07/58
รหัสเทียม (Pseudo Code)
Begin
READ Score
IF Score >= 80
THEN Grade = ‘A’
ELSE IF Score >=70
THEN Grade = ‘B’
ELSE IF Score >=60
THEN Grade = ‘C’
ELSE IF Score >=50
THEN Grade = ‘D’
ELSE Grade = ‘F’
WRITE Grade
End
23
การเขียนโปรแกรมเชิงกระบวนการ
3. การทาซ้า (Repetition or Loop)
: การทากระบวนการหนึ่งหลายครั้ง
โดยมีเงื่อนไขในการควบคุม หมายถึงการทาซ้ าเป็ น
หลักการที่ทาความเข้าใจได้ยากกว่า 2 รู ปแบบแรก เพราะการ
Process
เขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือน
Yes
การเขียนผังงาน (Flowchart) ผูเ้ ขียนโปรแกรมต้องจินตนาการ
ถึงรู ปแบบการทางาน และใช้คาสั่งควบคุมด้วยตนเอง ตัวอย่าง Decision
ผังงานที่นามาแสดงนี้ เป็ นการแสดงคาสั่ง ทาซ้ า (do while) ซึ่ ง
No
หมายถึงการทาซ้ าในขณะที่เป็ นจริ ง และเลิกการทาซ้ า
เมื่อเงื่อนไขเป็ นเท็จ
แสดงการเขียนโปรแกรมเชิงกระบวนการแบบลาดับ
20/07/58
24
การเขียนโปรแกรมเชิงกระบวนการ
ยกตัวอย่ าง เช่ น โปรแกรมตู้ขายเครื่องดืม่ อัตโนมัติ
วิธีการคิดแบบการเขียนโปรแกรมเชิงกระบวนการ
เมื่อมีการหยอดเหรี ยญเข้าตู:้
1. ตรวจสอบจานวนเหรี ยญและชนิดของเหรี ยญ
2. แสดงผลชนิดของน้ าที่สามารถเลือกซื้ อได้
3. ตรวจสอบจานวนน้ ากระป๋ องที่มีอยูใ่ นตู ้
4. รับผลการเลือกชนิดน้ า
5. ส่ งน้ าที่เลือกออกมาจากช่อง
6. จัดเก็บเงินเข้าระบบ
7. หากมีเงินทอน ให้ทอนเงินที่เหลือ ที่ช่องรับเงินทอน
20/07/58
25
ข้ อเสี ยการเขียนโปรแกรมเชิงกระบวนการ
แนวคิดนีม้ ขี ้ อเสี ยอย่ างไร?
• ขนาดของโปรแกรมใหญ่ ขนึ้ จะทาให้ มีความซับซ้ อนในแง่ ของ
การเขียนโปรแกรม
• ปัญหาในเรื่องของการนากับมาใช้ ใหม่ (Reusable)
• การแก้ไข (Modify)
• การขยายเพือ่ เพิม่ ประสิ ทธิภาพให้ กบั โปรแกรม
20/07/58
26
การเขียนโปรแกรมเชิงวัตถุ
การเขียนโปรแกรมเชิงวัตถุ (Object-oriented
programming, OOP) คือหนึ่งในรู ปแบบการเขียนโปรแกรม
คอมพิวเตอร์ ที่ให้ความสาคัญกับ วัตถุ ซึ่งสามารถนามาประกอบกัน
และนามาทางานรวมกันได้ โดยการแลกเปลี่ยนข่าวสาร เพื่อนามา
ประมวลผลและส่ งข่าวสารที่ได้ไปให้วตั ถุอื่นๆ ที่เกี่ยวข้องเพื่อให้
ทางานต่อไป
20/07/58
27
การเขียนโปรแกรมเชิงวัตถุ
การเขียนโปรแกรมเชิงวัตถุ Data จะถูกประกาศใช้เฉพาะภายใน
Object เท่านั้น
Object 1
Data
Object 2
Data
การที่ OOP จัด Data ไว้ในแต่ละ Object นั้น เป็ นการปกป้ อง
ข้อมูลภายใน Object ลดปัญหาการเปลี่ยนแปลงข้อมูลภายใน
Object โดยไม่ได้รับอนุญาต
20/07/58
28
การเขียนโปรแกรมเชิงวัตถุ
โปรแกรมตู้ขายเครื่องดืม่ อัตโนมัติ
วิธีการคิดแบบการเขียนโปรแกรมเชิงวัตถุ
ตูข้ ายเครื่ องดื่มอัตโนมัติ ประกอบด้วยส่ วนประกอบต่างๆได้แก่ หน่วยตรวจสอบ
และจัดการเรื่ องเงิน หน่วยจัดการเครื่ องดื่ม หน่วยแสดงผลและรอรับคาสัง่
1. หน่วยตรวจสอบและจัดการเรื่ องเงิน มีขอ้ มูลเกี่ยวกับเงินที่ได้รับ และเงิน
ที่มีอยูใ่ นระบบสามารถรับและตรวจสอบเงินที่หยอดเข้ามาได้ และทอนเงินได้
2. หน่วยจัดการเครื่ องดื่ม มีขอ้ มูลชนิดของเครื่ องดื่ม จานวนเครื่ องดื่ม
สามารถจัดเตรี ยมชนิ ดเครื่ องดื่มที่พอกับเงินที่หยอด และสามารถจ่ายเครื่ องดื่ม
ออกมาจากตูไ้ ด้
3. หน่วยแสดงผลและรอรับคาสั่ง มีหน้าที่รอรับคาสั่ง และแสดงผลเงินที่
หยอดเข้ามา
20/07/58
29
ข้ อดีของการพัฒนาโปรแกรมเชิงวัตถุ
แนวคิดการวิเคราะห์ปัญหาใกล้เคียงกับธรรมชาติของมนุษย์
ระบบจริ ง (real life) แบ่งตามออปเจ็ค ไม่ได้ข้ ึนอยูก่ บั ฟังก์ชนั
การทางาน
ขบวนการพัฒนาโปรแกรมทาได้รวดเร็ วขึ้น
ง่ายต่อการพัฒนาและแก้ไข
นาโปรแกรมกลับมาใช้ใหม่ได้ง่าย
20/07/58
30
เปรียบเทียบแนวคิดระหว่ างการเขียนโปรแกรม
เชิงกระบวนการ และเชิงวัตถุ
แนวคิดการเขียนโปรแกรมแบบดัง้ เดิมมักนิยมใช้ การเขียน
โปรแกรมเชิงกระบวนการ(Procedural Programming) ซึ่งให้
ความสาคัญกับขั้นตอนกระบวนการที่ทา โดยแบ่งโปรแกรม
ออกเป็ นส่ วนๆตามลาดับขั้นตอนการทางาน แต่แนวคิดการเขียน
โปรแกรมเชิงวัตถุน้ นั ให้ความสาคัญกับข้ อมูล (data) และ
พฤติกรรม (behavior) ของวัตถุ และความสัมพันธ์กนั ระหว่าง
วัตถุกนั มากกว่า
20/07/58
31
หลักการของโปรแกรมเชิงวัตถุ
โปรแกรมเชิงวัตถุจะแบ่งการทางานของโปรแกรมเป็ นวัตถุ
การปรับปรุ งหรื อแก้ไขโปรแกรมเชิงวัตถุทาได้ง่ายกว่า จึงเหมาะกับ
การพัฒนาโปรแกรมขนาดใหญ่ที่จะต้องมีการปรับปรุ งแก้ไข
โปรแกรมอยูต่ ลอด
20/07/58
32
วัตถุ (object)
โปรแกรมพจนานุกรมฉบับราชบัณฑิตยสถาน พ.ศ. ๒๕๒๕ นิยามคาว่า “วัตถุ”
ว่าหมายถึงสิ่ งของ และนิยามคาว่า “สิ่ งของ” ว่าหมายถึงวัตถุต่างๆ
ในโปรแกรมจะจาลองลักษณะและความสามารถของวัตถุต่างๆ ที่อยูใ่ นโลกจริ ง
 สิ่ งไม่มีชีวติ เช่น รู ปสี่ เหลี่ยม โทรทัศน์ หรื อบ้าน
 สิ่ งมีชีวติ เช่น พนักงาน นก หรื อต้นไม้
 สิ่ งที่เป็ นนามธรรม เช่น แนวความคิด หลักการ หรื อวิธีการ
20/07/58
33
คลาส (Class)
คลาสเป็ นเหมือนส่ วนของแม่พิมพ์ เพื่อบอกลักษณะว่าวัตถุใน
คลาสนี้มีลกั ษณะและพฤติกรรมเป็ นอย่างไร
ส่ วนประกอบของคลาส
แอททริบิวท์ (Attribute) หรื อข้อมูล (Data) เป็ นสิ่ งที่ใช้บอกถึง
ลักษณะต่างๆของวัตถุในคลาส
เมธอด(Method) หรื อพฤติกรรม (Behavior) เป็ นสิ่ งที่ใช้อธิบาย
การทางานของวัตถุในคลาส
20/07/58
34
ตัวอย่ างของคลาส
นักศึกษา อาจจะประกอบไปด้วยคุณลักษณะเช่น รหัส ชื่อ และเกรด
เฉลี่ย และอาจจะมีเมธอดเช่น ลงทะเบียน สอบ และเดิน
รถยนต์ อาจจะประกอบไปด้วยคุณลักษณะเช่น ยีห่ อ้ รุ่ น และสี
และอาจจะมีเมธอดเช่น เคลื่อนที่ หยุดและเลี้ยว
สุ นัข
อาจจะประกอบไปด้วยคุณลักษณะเช่น ชื่อ พันธุ์ และสี
และอาจจะมีเมธอดเช่น เห่า คลาน และกระดิกหาง
20/07/58
35
คลาส (Class)
 คลาสหนึ่งคลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค
อาทิเช่น คลาส Student อาจสร้างออปเจ็ค s1,s2 หรื อ s3
ซึ่งเป็ นออปเจ็คของคลาส Student
20/07/58
36
ตัวอย่ างของออปเจ็คและคลาส
20/07/58
37
คุณสมบัตขิ องโปรแกรมเชิงวัตถุ
1. การห่ อหุ้ม (Encapsulation)
- ซ่ อนวิธีการทางาน (Information Hiding)
2. การสื บทอด (Inheritance)
3. การพ้องรูป (Polymorphism)
20/07/58
38
การห่ อหุ้ม (Encapsulation)
การห่ อหุ้ม (Encapsulation) เป็ นการซ่ อนรายละเอียดการทางาน
และข้ อมูลไว้ ภายใน ไม่ ให้ ภายนอกสามารถเห็นได้
ดิฉนั สมหญิงจากบริ ษทั A
ทาไมดิฉนั จึงมองไม่เห็นแฟ้ ม
เอกสารเหมือนอย่างที่คุณ
สมศรี บริ ษทั C มองเห็นคะ
20/07/58
อาจเป็ นเพราะแฟ้ มเอกสารถูก Encapsulation
(ซ่อนอยูห่ ลังกาแพง) อยูค่ รับ จะมีแต่เฉพาะ
บุคคลภายในบริ ษทั C มองเห็นแฟ้ มเอกสารนี้ ได้
ตัวผมก็มองไม่เห็นเช่นกัน เพราะผมเองก็เป็ น
บุคคลภายนอกเช่นกัน
ดิฉนั ชื่อสมศรี เป็ นบุคคลภายใน
ของบริ ษทั C ฉันจึงเห็นแฟ้ ม
เอกสารเหล่านี้และมีสิทธิ์ เข้ามา
จัดการได้ค่ะ
แฟ้มเอกสารนีเ้ ป็ น private
(แฟ้มส่ วนบุคคล)
39
การห่ อหุ้ม (Encapsulation)
ดีจงั เลยนะคะที่บริ ษทั C
ไม่ได้ทาการ encapsulate
ซ่อนแฟ้ มเอกสารนี้ไว้ ทาให้
เราสามารถมองเห็นแฟ้ ม
เอกสารนี้ได้
20/07/58
ใช่แล้วครับ โชคดีมาก เพราะจะทาให้เราสามารถ
เข้าไปดูขอ้ มูลในแฟ้ มเอกสารนี้ได้ และนอกจาก
เราจะดูขอ้ มูลได้แล้ว ยังสามารถแก้ไขข้อมูลได้
ด้วย เป็ นโอกาสของเราที่จะล้วงความลับและ
สร้างความเสี ยหายให้กบั บริ ษทั C ซึ่งเป็ นคู่แข่ง
ของเราได้
แย่แล้ว บุคคลภายนอกบริ ษทั ดิฉนั
สามารถมองเห็นแฟ้ มเอกสารนี้ ได้
ข้อมูลของบริ ษทั ต้องได้รับความ
เสี ยหายแน่นอนเลยค่ะ
แฟ้มเอกสารนีเ้ ป็ น public
(แฟ้มสาธารณะ)
40
ซ่ อนวิธีการทางาน (Information Hiding)
 ซ่อนวิธีการทางานของวัตถุ เพื่อป้ องกันการเข้ามาใช้ขอ้ มูลของวัตถุ
โดยสิ่ งอื่นที่ไม่เกี่ยวข้องแล้วทาให้เกิดการผิดเพี้ยนของการทางานทั้ง
ระบบ
 ทาให้เกิดความยืดหยุน่ ผูส้ ร้างวัตถุสามารถเปลี่ยนแปลงวิธีการทางาน
ของวัตถุได้โดยไม่กระทบต่อผูใ้ ช้วตั ถุ
 เพื่อให้เกิดความปลอดภัยของวัตถุและระบบโดยรวมให้มากที่สุด
20/07/58
41
การสื บทอด (Inheritance)
การสื บทอด (Inheritance) คือการทาการสร้างสิ่ งใหม่ข้ ึนด้วยการ
สื บทอดหรื อรับเอาคุณสมบัติบางอย่างมาจากสิ่ งเดิมที่มีอยูแ่ ล้ว และ
สร้างเพิ่มเติมได้
• ข้อดี
• สามารถนาสิ่ งที่เคยสร้างขึ้นแล้วนากลับมาใช้ใหม่ (re-use) ได้
• ประหยัดเวลา
•
20/07/58
42
การสื บทอด (Inheritance)
ผมนาย ก. เป็ นพนักงานคนหนึ่งครับ (Employee) คุณสมบัติผม
ประกอบด้วยรหัสพนักงานและตาแหน่ง ใครเป็ นพนักงาน
เหมือนกัน เชิญสื บทอดคุณสมบัติของผมไปใช้งานได้เลยครับ
ผมนาย ข. เป็ นผูจ้ ดั การครับ (Manager) ผมก็เป็ น
พนักงานคนหนึ่ง ดังนั้นจึงทาการสื บทอดคุณสมบัติมาจาก
นาย ก. ทาให้มีคุณสมบัติประกอบด้วยรหัสพนักงาน และ
ตาแหน่ง แต่ในฐานะที่ผมเป็ นผูจ้ ดั การ ผมได้รับรถประจา
ตาแหน่งด้วย ดังนั้นผมจึงต้องสร้างคุณสมบัติข้ ึนมาอีก 1
ข้อ
inherit
รหัสพนักงาน
ตาแหน่ ง
รถประจาตาแหน่ ง
20/07/58
รหัสพนักงาน
ตาแหน่ ง
43
Polymorphism (การพ้องรู ป)
เป็ นคุณสมบัติที่ชนิดของวัตถุที่เกิดจากชนิ ดของวัตถุแม่เดียวกัน สามารถมี
ความสามารถเหมือนแม่แต่มีวธิ ี การดาเนินงานไม่เหมือนกัน คือมีลกั ษณะเฉพาะตัว
เช่น
สั ตว์ มีปีก::บิน()
นก::บิน()
กระพือปี กขึน้ ลง
20/07/58
แมลงปอ::บิน()
กางปี กรับลม
ผึง้ ::บิน()
กระพือปี กถี่เร็ว
44
Polymorphism (การพ้องรู ป)
ตัวอย่างเช่น
public void calculate (int x) {}
public void calculate (double x) {}
 เมธอดชื่อ calculate เหมือนกัน แต่มีการรับค่าเข้ามาภายใน
เมธอดที่แตกต่างกัน
 เมธอดชื่อเดียวกันสามารถรับอาร์กิวเมนต์ที่แตกต่างกันได้หลาย
รู ปแบบนี้ เรี ยกว่าเมธอดนั้นถูกโอเวอร์โหลด (overload)
20/07/58
45
Polymorphism (การพ้ องรู ป)
สรุป
ข้ อดีของ Polymorphism คือ การทาให้ สิ่งหนึ่งสามารถทางาน
ได้ หลากหลายรูปแบบตามความต้ องการทีเ่ กิดขึน้ ในขณะหนึ่ง ๆ
ถ้าเป็ นลูกค้าขาจร ผมจะใช้เมธอด public void calculate(double y)
ในการคานวณราคาครับ ไม่ได้ซ้ือประจาลดให้ไม่ได้ครับ เศษเล็ก
เศษน้อยต้องคิด
แต่ถา้ เป็ นลูกค้าประจา ผมจะใช้เมธอด public void
calculate(int x) ในการคานวณราคาครับ เศษเล็ก ๆ น้อย ๆ
ไม่คิดครับ
20/07/58
46
LOGO
ประวัติของภาษาจาวา
20/07/58
47
ประวัตขิ องภาษาจาวา
เริ่ มต้นขึ้นใน ปี ค.ศ. 1990
แพททริก นอทัน (Pattrick Naughton) เขียนข้อผิดพลาดที่
เกิดขึ้นในบริ ษทั ซันไมโครซิ สเต็มส์
เจมส์ กอสลิง่ (James Gosling) ผูใ้ ห้กาเนิดภาษาจาวา
20/07/58
48
ประวัตขิ องภาษาจาวา
กรีนทีม (Green Project)
 วัตถุประสงค์คือการสร้างคอมพิวเตอร์รุ่นใหม่
 ยุคถัดจากคอมพิวเตอร์ส่วนบุคคล (personal computer)
ก็คือคอมพิวเตอร์ในอุปกรณ์อิเล็กโทรนิกส์ (consumer
electronics)
20/07/58
49
ประวัตขิ องภาษาจาวา
- รี โมตคอนโทรลควบคุมอุปกรณ์อิเล็กทรอนิกส์ มีชื่อว่า “สตาร์
เซเว่ น” (*7)
- ภาษาที่ใช้ควบคุมอุปกรณ์อิเล็กทรอนิกส์คือ “ภาษาโอ๊ ค” (Oak)
ดุ๊ค
20/07/58
50
ประวัตขิ องภาษาจาวา
-Gosling ได้รับมอบหมายให้สร้างภาษาใหม่ สาหรับติดตั้งให้กบั อุปกรณ์
- โดยภาษาที่สร้ างขึน้ ต้ องเป็ นภาษาทีม่ ีขนาดเล็ก  อุปกรณ์ ไม่ ใช้ หน่ วย
ประมวลผลทีส่ ู ง
- สิ่ งสาคัญ  ภาษาทีส่ ร้ างขึน้ จะต้ องเป็ นภาษาทีไ่ ม่ ยดึ ติดกับอุปกรณ์
ฮาร์ ดแวร์ (Platform-independent)
-Gosling ได้ประดิษฐ์ ภาษาโอ๊ ค แทนภาษา C++ เพื่อใช้ในโปรแกรม
อุปกรณ์อิเล็กทรอนิกส์
20/07/58
51
ประวัติของภาษาจาวา
เปลีย่ นชื่อจาก “Oak” เป็ น “JAVA”
มาร์ ค แอนดรีสเซน ออกแบบ Mosaic ซึ่งเป็ นโปรแกรมเว็บเบราเซอร์
บิล จอย (Bill Joy) แจกจ่ ายตัวพัฒนาภาษา
นอทันพัฒนาเว็บเบราเซอร์ ทสี่ นับสนุนภาษาจาวา โปรแกรมดังกล่ าว
มีชื่อว่ า HotJava
Netscape Navigator
23 มกราคม ค.ศ. 1996 ซันได้ ออก JDK 1.0
20/07/58
52
LOGO
ข้ อดีของภาษาจาวา
20/07/58
53
ข้ อดีของภาษาจาวา
ทางานบนเว็บเบราเซอร์ ได้
ความปลอดภัยสู ง
สนับสนุนงานหลายระดับ
20/07/58
54
ข้ อดีของภาษาจาวา
สามารถทางานบนเครื่องคอมพิวเตอร์ ต่างระบบได้
ภาษาจาวาเป็ นภาษาเชิงวัตถุ
ความเรียบง่ าย ไวยากรณ์ของภาษาจาวาถูกออกแบบมาเป็ น
อย่างดี ทาให้เข้าใจง่าย
ระบบจัดการคืนพืน้ ทีใ่ นหน่ วยความจาอัตโนมัติ (Automatic
Garbage Collection)
20/07/58
55
ข้ อดีของภาษาจาวา
มีคลาสจานวนมากมายให้ ใช้
 ในจาวาแพล็ตฟอร์ มมาตรฐาน J2SE รุ่น 5.0 มีคลาสและ
อินเทอร์ เฟซ 3,279
ฟรี เครื่องมือในการพัฒนา,ตัวแปลภาษา,โปรแกรมเครื่องจักร
เสมือน ฯลฯ
20/07/58
56
LOGO
จาวาแพลตฟอร์ ม
20/07/58
57
แพลตฟอร์ ม (platform)
ระบบที่โปรแกรมอาศัยทางาน
Hardware
Software
Ex. แพล็ตฟอร์ม Wintel
ซีพยี ูของอินเทล และระบบปฏิบัติการไมโครซอฟท์ วนิ โดวส์
20/07/58
58
แพลตฟอร์ ม (platform)
จาวาแพล็ตฟอร์ม เป็ นซอฟแวร์ ซึ่งประกอบด้วย
 ตัวแปลภาษา
 โปรแกรมเครื่องจักรเสมือนจาวา
 คลาส (แกนหลักของภาษาจาวา)
20/07/58
59
จาวามี 3 แพลตฟอร์ ม
Java 2 Platform, Standard Edition (J2SE) เป็ นแพลตฟอร์มมาตรฐาน
 จาวาแอพพลิเคชัน (Java application) ใช้สาหรับเขียนโปรแกรมทัว่ ไป
 แอพเพลต (Java applet) โปรแกรมที่ทางานบนเว็บเบราเซอร์
Java 2 Platform, Enterprise Edition (J2EE)
 โปรแกรมแบบมัลติเทียร์ (multitiered) สาหรับการพัฒนาโปรแกรมในระดับ
องค์กร
Java 2 Platform, Micro Edition (J2ME)
 สิ นค้าอีเล็กโทรนิกส์ เช่น โทรศัพท์มือถือ พีดีเอ (personal digital assistant) และ
กล่องเคเบิ้ลทีวี (TV set-top box
20/07/58
60
LOGO
การคอมไพล์ และรันโปรแกรมภาษาจาวา
20/07/58
61
องค์ ประกอบของระบบคอมพิวเตอร์
ฮาร์ ดแวร์ (Hardware)
 ส่ วนประกอบที่เป็ นตัวเครื่ องคอมพิวเตอร์
ระบบปฏิบัติการ (Operating System)
 Windows 7, Linux และ Solaris
โปรแกรมประยุกต์ (Application Programs)
 โปรแกรมทัว่ ๆไป อาทิเช่น Word processor เกม บราวเซอร์ (Browser)
 พัฒนาโดยใช้ภาษาคอมพิวเตอร์ ต่างๆ เช่น ฟอร์แทน (FORTRAN) โคบอล
(COBOL) C++ หรื อ JAVA
20/07/58
62
ภาษาคอมพิวเตอร์
ภาษาเครื่อง (Machine Language)
 01010110
ภาษาแอสเซมบลี้ (Assembly Language)
 ADD R1,R2
ภาษาคอมพิวเตอร์ ระดับสู ง
 x = c1+c2
20/07/58
63
ภาษาคอมพิวเตอร์ ระดับสู ง
ภาษายุคแรก
 ฟอร์แทรน โคบอล เบสิ ก (BASIC)
ภาษาเชิงกระบวนการ (Procedural Language)
 ปาสคาล (Pascal) ซี (C)
ภาษาเชิงออปเจ็ค (Object Oriented Programming)
 C++ Smalltalk JAVA
20/07/58
64
ตัวแปลภาษา
ภาษาระดับสูงจะต้องใช้ตวั แปลภาษา (Language Translator)
เพื่อเปลี่ยนซอร์ดโค้ด (Source Code) ให้เป็ นคาสัง่ ที่คอมพิวเตอร์
สามารถเข้าใจได้
วิธีแปลภาษามีอยูส่ องแบบ
 คอมไพเลอร์ (Compiler)
 อินเตอร์พรี ตเตอร์ (Interpreter)
20/07/58
65
คอมไพเลอร์
ทาหน้าที่แปลซอร์ดโค้ดทั้งโปรแกรมให้เป็ นโค้ดที่
สามารถทางานได้ (executable code)
โปรแกรม executable code จะสามารถถูกนาไปใช้งาน
ได้ทนั ที
ตัวอย่างของภาษาที่ใช้คอมไพเลอร์คือ ฟอร์แทรน
ปาสคาล และ C++
20/07/58
66
ขั้นตอนการทางานของคอมไพเลอร์
20/07/58
67
ข้ อดีและข้ อเสี ยของคอมไพเลอร์
ข้ อดี
 ทางานได้เร็ ว
 ตรวจสอบข้อผิดพลาดของโปรแกรมซอร์ดโค้ดในขั้นตอนของการ
คอมไพล์
ข้ อเสี ย
 ต้องนาโปรแกรมซอร์ดโค้ดมาแปลใหม่เมื่อเปลี่ยนระบบปฏิบตั ิการ
เนื่องจากคอมไพเลอร์เป็ นตัวแปลภาษาที่ข้ ึนอยูก่ บั แพลตฟอร์ม
(Platform Specific)
20/07/58
68
อินเตอร์ พรีตเตอร์
แปลโปรแกรมซอร์ดโค้ดทีละบรรทัดให้เป็ น executable code
และทางานทันที
มีขอ้ ดีคือ อินเตอร์พรี ตเตอร์ถูกสร้างขึ้นได้ง่ายกว่าและมีขนาดเล็ก
ทาให้ภาษาที่ใช้อินเตอร์พรี ตเตอร์สามารถทางานข้ามแพลตฟอร์มได้
มีขอ้ เสี ยคือ ทางานได้ชา้ กว่าคอมไพเลอร์
ตัวอย่างของภาษาที่ใช้อินเตอร์พรี ตเตอร์คือ เบสิ ก โปรล็อก
(Prolog) และ Smalltalk
20/07/58
69
ขั้นตอนการทางานของอินเตอร์ พรีตเตอร์
20/07/58
70
ก่ อนทีเราจะเขียนโปรแกรมด้ วย Java ต้ องมีอะไรบ้ าง
1. Text Editor เช่นเดียวกันกับการเขียนโปรแกรมในภาษาอื่น ๆ เราต้องมี
Text Editor ที่ใช้สร้างและเก็บ source code
2. JDK (Java Development Kit) ซึ่งมีหลาย version เราต้องใช้ JDK ในการ
compile โปรแกรมที่เราได้เขียนขึ้น
3. Java VM หรื อที่เรี ยกว่า Java Virtual Machine ซึ่งเป็ นตัวกลางที่เปลี่ยน
code ที่ได้จากการ compile เป็ น code ที่สามารถ execute บนเครื่ องต่าง ๆ
(code ที่เครื่ องนั้น ๆ รู ้จกั – machine code หรื อที่ชาว Java เรี ยกว่า byte
code) โดยปกติ VM จะถูกติดตั้งพร้อมกับ JDK
4. JRE (Java Runtime Environment) ตัวรัน ภาษา java ทีถูกแปลงเป็ น
byte code แล้ว
20/07/58
71
องค์ ประกอบของ JDK
JDK
JRE
JVM
20/07/58
72
ชุดพัฒนาภาษาจาวา (JDK)
ชุ ดพัฒนาภาษาจาวา (Java Development Kit - JDK) ประกอบด้ วย
 1. จาวาคอมไพเลอร์ (javac.exe)
ซอร์ สโค้ ด
(ไฟล์ .java)
20/07/58
คอมไพเลอร์
(โปรแกรม javac)
Byte code
(ไฟล์ .class)
73
ชุดพัฒนาภาษาจาวา (JDK)
 2. สภาพแวดล้อมการรันโปรแกรมจาวา (Java Runtime Environment JRE) (java.exe)
Byte code
(ไฟล์ .class)
Download http://java.sun.com
20/07/58
สภาพแวดล้ อมสาหรับ
รันโปรแกรมจาวา
(โปรแกรม java)
ผลการทางาน
74
ขั้นตอนการพัฒนาโปรแกรมภาษาจาวา
20/07/58
75
ขั้นตอนการพัฒนาโปรแกรมภาษาจาวา
20/07/58
76
Java Development Kit (JDK)
JDK เป็ นส่ วนประกอบหนึ่งของ JAVA SE
เหมาะสาหรับผูพ้ ฒั นาโปรแกรม หรื อโปรแกรมเมอร์ดาวน์
โหลดไปใช้งาน
 JDK ประกอบด้วย
 คอมไพเลอร์สาหรับคอมไพล์โปรแกรม
 ดีบกั เกอร์สาหรับดีบกั โปรแกรมเพื่อค้นหาและแก้ไขส่ วนผิดพลาด
ของโปรแกรม
 JDK ประกอบด้วย JRE
20/07/58
77
Java Runtime Environment (JRE)
JRE เป็ นส่ วนที่จาเป็ นสาหรับการเรี ยกรันโปรแกรมที่เขียนขึ้น
ด้วยภาษาจาวา
JRE ประกอบด้วย JVM, ไลบรารี ต่าง ๆ และคอมโพเน้นท์
20/07/58
78
Java Virtual Machine (JVM)
หน้าที่ของ JVM คือ จาลองคอมพิวเตอร์เสมือน (Virtual machine) ขึ้นบนเครื่ อง
คอมพิวเตอร์
คอมพิวเตอร์เสมือนจะทาหน้าที่ในการแปลไบต์โค้ด (bytecode) ไปเป็ น
ภาษาเครื่ องที่เหมาะสมกับแพลตฟอร์ มจริ ง ๆ ของแต่ละเครื่ อง
โปรแกรมภาษาจาวาจะคอมไพล์ได้ไบท์โค้ด โดย JVM จะเป็ นอินเตอร์พรี ตเตอร์ที่
แปลไบท์โค้ดให้เป็ นคาสั่งที่ภาษาเครื่ องเข้าใจ
จาวาไบท์โค้ดสามารถจะรันข้ามแพลตฟอร์ม (platform) ได้ ถ้าแพลตฟอร์ มนั้นมี
JVM อยู่
JVM เป็ นโปรแกรมที่ข้ ึนอยูก่ บั แพลตฟอร์ ม (platform specific)
JVM อาจพัฒนาเป็ นโปรแกรมซอฟต์แวร์หรื อฮาร์ ดแวร์ได้
20/07/58
79
เตรียมความพร้ อม/ติดตั้งโปรแกรม
1. ติดตั้ง JDK
2. กาหนดที่อยูข่ องไฟล์ต่าง ๆ (path) ที่จาเป็ นสาหรับการ compile
ภายในเครื่ องเพื่อให้การcompile และ execute โปรแกรมเป็ นไป
ได้ – ถ้าเราไม่กาหนด path เครื่ องของเราจะไม่รู้จกั คาสั่งต่าง ๆ
ที่ Java ใช้ ให้กาหนดที่อยู่
20/07/58
80
เตรียมความพร้ อม/ติดตั้งโปรแกรม
หลังจากที่ได้ติดตั้ง JDK พร้อมทั้งไฟล์อื่นๆ แล้วหน้าตาของ
directory ของ Java ก็จะมี folder ต่างๆ คล้ายๆ กับที่เห็นนี้
20/07/58
81
การกาหนด path
กดปุ่ มขวาของ mouse บน icon My Computer (หรื อ ไปที่
ปุ่ ม start ที่มุมล่างซ้ายของจอแล้วเลือก My Computer) แล้ว
เลือก Properties
กดปุ่ ม advanced บน System Properties
กดปุ่ ม Environment Variables
20/07/58
82
การกาหนด path
ใน System Variables เลือกข้อความที่ข้ ึนต้นด้วยคาว่า Path
เมื่อกดปุ่ ม Edit ก็จะได้หน้าจอดังที่เห็น
เติม ; (semicolon) ถ้ายังไม่มี แล้วจึงใส่ path ที่ได้ install JDK ไว้
เสร็ จแล้วกดปุ่ ม OK เพื่อให้ระบบบันทึกการเปลี่ยนแปลงที่ได้ทาขึ้น
20/07/58
83
โปรแกรมที่ใช้ เขียนต้ นฉบับโปรแกรม
Notepad
 มาพร้อมกับ Windows
J-Lab
 http://www.cp.eng.chula.ac.th/~somchai/JLab/
Netbeans
 http://www.netbeans.org/
Eclipse
 http://www.eclipse.org/
20/07/58
84
Notepad
20/07/58
85
J-Lab
20/07/58
86
Netbeans
20/07/58
87
Eclipse
20/07/58
88
LOGO
โปรแกรม HelloWorld ในแบบตัวอักษร
และแบบกราฟิ ก
20/07/58
89
โปรแกรม HelloWorld
พิมพ์คาว่า Hello, World! ขึ้นบนหน้าจอคอมพิวเตอร์
20/07/58
90
การเปิ ดโปรแกรม cmd
2
1
3
20/07/58
91
คอมไพล์โปรแกรม
20/07/58
92
โปรแกรม HelloWorld
public class HelloWorld
{
}
20/07/58
93
โปรแกรม HelloWorld
public class HelloWorld
{
public static void main(String[] args)
{
}
}
20/07/58
94
โปรแกรม HelloWorld
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello, World!");
}
}
20/07/58
95
โปรแกรม HelloWorld แบบกราฟิ ก
20/07/58
96
โปรแกรม HelloWorld แบบกราฟิ ก
import java.awt.*;
import javax.swing.*;
public class HelloGraphicsWorld {
public static void main(String[] args) {
JFrame frame = new JFrame() {
public void paint(Graphics g) {
g.drawString("Hello, World!", 110, 150);
g.drawOval(100, 130, 90, 30);
}
};
frame.setSize(300, 300);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
20/07/58
97
คาอธิบายในโปรแกรม
คอมเมนต์ บรรทัดเดียว
// print the word hello
คอมเมนต์ ทเี่ ป็ นย่ อหน้ า
/*
This program
will print
the word hello
*/
20/07/58
98
คาอธิบายในโปรแกรม
คอมเมนต์ที่เป็ นย่อหน้าสาหรับการสร้างเอกสารด้วย
โปรแกรม javadoc
/**
*/
20/07/58
99
การเซตค่ าโปรแกรม Edit Plus
เลือกที่ Menu tool > Preferences เลือก User tools
เลือกที่ Group Name ตั้งชื่อ Java จากนั้นกด OK
เลือกที่ Add Tool -> Program
20/07/58
100
การเซตค่ าโปรแกรม Edit Plus
ตั้งชื่อ Java Compile กดปุ่ ม Browse ไปที่ติดตั้งโปรแกรม j2sdk แล้วเข้าไปที่
bin เลือก javac.exe ดังรู ป ที่ Argument เลือกที่ Flie Name เมื่อเซตได้ตามรู ป
แล้วกด OK
20/07/58
101
การเซตค่ าโปรแกรม Edit Plus
กลับไปทาขั้นตอนเดิมที่ Add Tool ตั้งชื่อ Java Run เลือกไฟล์ java.exe ใน bin
และ Argument ให้เลือก File Name Without Extension จากนั้นก็กด OK
20/07/58
102
LOGO
สรุป
20/07/58
103
สรุป
โปรแกรมในจาวาแพลตฟอร์ มมาตรฐานมีอยู่สองประเภทคือ
แอพพลิเคชัน และ แอพเพลท
จาวาแอพพลิเคชันสามารถทางานได้ เหมือนกับโปรแกรมทั่วไป มัน
สามารถทางานบนคอมพิวเตอร์ ต่างรุ่นต่ างระบบปฏิบัตกิ ารได้ เพราะว่ า
มันทางานอยู่บนโปรแกรมเครื่องจักรเสมือน
จาวาแอพเพลตสามารถทางานบนเว็บเพจได้ มันสามารถทางานบน
คอมพิวเตอร์ ต่างรุ่นต่ างระบบปฏิบัตกิ ารได้ ขอเพียงแค่ มีโปรแกรม
เว็บเบราเซอร์ ทสี่ นับสนุนภาษาจาวาติดตั้งอยู่บนระบบปฏิบัติการนั้น
20/07/58
104
สรุป
ซอร์ สโค้ ดโปรแกรมจาวาอยู่ในแฟ้มทีม่ ีนามสกุล .java
โปรแกรมทีใ่ ช้ คอมไพล์ ภาษาจาวาชื่อ javac
ผลการคอมไพล์ จะได้ แฟ้ มทีม่ ีนามสกุล .class
ไฟล์ นามสกุล class สามารถทางานใน JRE ได้
ใช้ โปรแกรม java รันไฟล์ .class ที่มีเมธอด main()
การพิมพ์ข้อความใช้ คาสั่ ง
System.out.println("ข้ อความที่ต้องการพิมพ์ ")
20/07/58
105
LOGO
20/07/58
106
แบบทดสอบ
วิชา 4121306A การเขียนโปรแกรมเชิงวัตถุ
จงพิจารณาว่าประโยคนี้ถูกหรื อผิด
1.
2.
3.
4.
5.
6.
7.
20/07/58
ทุกครั้งที่ติดตั้ง JRE จะได้ JDK ติดตั้งมาพร้อมกันด้วยเสมอ
JVM ไม่ได้เป็ นส่ วนประกอบหนึ่งที่อยูใ่ น JRE
JDK ประกอบด้วย JRE, คอมไพเลอร์ และดีบกั เกอร์
หากติดตั้ง JDK ลงที่เครื่ อง ก็จะสามารถเรี ยกรันจาวาแอพเพลตได้เช่นเดียวกับการติดตั้ง
JRE ลงที่เครื่ อง
โปรแกรมภาษาจาวาไม่เป็ น Platfom-independent
เมื่อ compile โปรแกรมแล้วจะได้เป็ น bytecode ซึ่งเป็ นไฟล์ที่มีนามสกุล .javac
bytecode จะยึดติดกับ platform
107
แบบทดสอบ
วิชา 4121306A การเขียนโปรแกรมเชิงวัตถุ
1. JAVA platform แบ่งออกเป็ นกี่ประเภท อะไรบ้าง จงอธิบาย
2. JRE คืออะไร ประกอบด้วยอะไรบ้าง
3. JDK คืออะไร ประกอบด้วยอะไรบ้าง
4. ถ้าเป็ นโปรแกรมเมอร์มีหน้าที่เขียนโปรแกรมภาษาจาวาให้กบั บริ ษทั ควรเลือกดาวน์โหลด JDK หรื อ
JRE มาใช้งาน เพราะเหตุใด
5. ถ้าบุคคลทัว่ ไปที่ไม่ใช่โปรแกรมเมอร์ เป็ นบุคคลที่ใช้เว็บทัว่ ไป โดยที่เว็บที่สนใจส่วนใหญ่ลว้ นมีจาวา
แอพเพลตรันอยูท่ ้งั สิ้น เธอควรเลือกดาวน์โหลด JDK หรื อ JRE มาใช้งาน เพราะเหตุใด
6. JVM คืออะไร จงอธิบาย
7. เพราะเหตุใดจึงไม่ตอ้ งแยกเขียนโปรแกรมภาษาจาวาสาหรับแพลตฟอร์มแต่ละแพลตฟอร์ม แต่สามารถ
เขียนโปรแกรมภาษาจาวาเพียงแค่ครั้งเดียว แล้วนาไปรันได้บนทุกแพลตฟอร์ม
8. จงอธิบายคุณสมบัติของโปรแกรมเชิงวัตถุ ประกอบด้วยอะไรบ้าง อธิบายอย่างละเอียด พร้อม
ยกตัวอย่าง
9. จงอธิบายข้อดีของ JAVA
20/07/58
108