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