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