Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore สัปดาห์ที่ 1 : แนวคิดการเขียนโปรแกรมเชิงวัตถุ

สัปดาห์ที่ 1 : แนวคิดการเขียนโปรแกรมเชิงวัตถุ

Published by rattikan.vi, 2018-10-28 22:27:54

Description: 1. อธิบายประเภทของ Platform และเลือกใช้งานได้
2. อธิบายการทำงานแบบเชิงวัตถุได้ Object Oriented Language
3. อธิบายลักษณะโดดเด่นที่มีในภาษาจาวาได้
4. จำแนกประเภทของความผิดพลาดและจัดการกับความผิดพลาดที่เกิดขึ้นได้
5. อธิบายการทำงานแบบ Package และ Import และสามารถเลือกใช้งานได้อย่างถูกต้อง

Keywords: แนวคิดโปรแกรมเชิงวัตถุ

Search

Read the Text Version

ครัง้ ท่ี 1แนวคิดการเขียนโปรแกรมเชงิ วตั ถุจดุ ประสงค์ 1. อธิบายประเภทของ Platform และเลอื กใช้งานได้ 2. อธิบายการทางานแบบเชิงวตั ถไุ ด้ Object Oriented Language 3. อธิบายลกั ษณะโดดเดน่ ทม่ี ใี นภาษาจาวาได้ 4. จาแนกประเภทของความผดิ พลาดและจดั การกบั ความผดิ พลาดทีเ่ กิดขนึ ้ ได้ 5. อธิบายการทางานแบบ Package และ Import และสามารถเลอื กใช้งานได้อยา่ ง ถกู ต้อง คณะเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั นอร์ทกรุงเทพ

ครัง้ ท่ี 1 เร่ืองแนวคดิ การเขยี นโปรแกรมเชิงวตั ถุ– Java Platform Java PlatForm แบ่งออกเป็น 3 ประเภท แต่ละประเภทก็มีจดุ ประสงค์ในการใช้งานที่แตกตา่ งกันดงั นี ้ 1. Java SE (Java Standard Edition) เป็ น Java platform มาตรฐาน ประกอบด้วย 2 ส่วน คือJava Development Kit หรือ JDK และ Java Runtime Environment หรือ JRE Java Development Kit หรือ JDK เป็นส่วนท่ีครอบคลุม JRE ดังนัน้ ติดตัง้ JDK จะได้JRE เสมอ ซึ่งใน JDE ประกอบด้วย ทุกอย่างท่ีอยู่ใน JRE และมีตวั คอมไพเลอร์ (Compiler) ไว้สาหรับคอมไพล์โปรแกรม และดีบกั เกอร์ (Degugger) สาหรับค้นหาและแก้ไขสว่ นผดิ พลาดของโปรแกรมที่เกิดขนึ ้ Java Runtime Environment ห รื อ JRE ป ระกอ บ ด้ วย ไล บ รารี ต่าง ๆ Java VirtualMachine (JVM) และคอมโพเนนตอ์ ่ืน ๆ จาเป็นสาหรับการรันโปรแกรมท่ีเขียนขนึ ้ ด้วยจาวา 2. Java EE (Java Enterprise Edition) เป็นส่วนขยายมาจาก Java SE เป็นเทคโนโลยีสนับสนุนการทางานของ server-side application (โปรแกรมท่ีประมวลผลทางฝ่ังเซิร์ฟเวอร์จนเสร็จเรียบร้อยแล้วส่งผลลัพธ์ที่ได้กลบั คืนไปฝ่ังไคลแอ็นต์) ตวั อย่างเช่น Java server pages (JSP), Java Servlet, EnterpriseJava Beans (EJB) และ Web Server เป็นต้น 3. Java ME (Java Micro Edition) เป็ นเทคโนโลยีสาหรับทางานกับอุปกรณ์ ขนาดเล็ก เช่นโทรศพั ท์มือถือ PDAs สมาร์ทการ์ด เป็นต้น การเลือกใช้งาน JDK และ JRE JRE เป็นส่วนที่จาเป็นสาหรับการรันโปรแกรม ดงั นนั้ JRE จึงเหมาะสาหรับผ้ใู ช้ทวั่ ไปดาวน์โหลดไปตดิ ตงั้ เพื่อให้สามารถเรียกโปรแกรมที่เขียนขนึ ้ ด้วยภาษาจาวามาทางานได้ JDK ประกอบด้วยส่วนของคอมไพเลอร์และดีบกั เกอร์ ท่ีใช้ในการพฒั นาโปรแกรม เหมาะสาหรับผ้พู ฒั นาโปรแกรม หรือ โปรแกรมเมอร์ ดาวน์โหลดไปใช้งาน JVM (Java Virtual Machine หรือ JVM) คือ Software program เป็นส่วนประกอบใน JRE ทาหน้าท่ีจาลองคอมพิวเตอร์เสมือน(Virtualmachine) บนเคร่ืองคอมพิวเตอร์ ในการแปลงไบต์โค้ด (Bytecode) ไปเป็นภาษาเคร่ืองที่เหมาะสมกับแพลตฟอร์มของเครื่องSWE102 Computer Programming | อาจารย์รัตตกิ านต์ วิบลู ย์พานชิ 2

ครัง้ ที่ 1 เรื่องแนวคดิ การเขยี นโปรแกรมเชิงวตั ถุแปลงไฟล์ .Java bytecode รันไฟล์ .class แปลงไฟล์ .class bytecode เป็น ภาษาเครื่อง ภาพท่ี 1.1 แสดงการแปลงไฟล์ให้เป็ น bytecodeข้อดี ทาให้เขียนโปรแกรมเพียงครัง้ เดียว สามารถรันได้ทกุ แพลตฟอร์ม Object Oriented Language พืน้ ฐานของ Object Oriented แบง่ ออกเป็น 3 ประเภท ดงั นี ้ 1. Encapsulation (การห่อห้มุ ) เป็นกระบวนการซ่อนรายละเอียดการทางานและข้อมูลไว้ภายใน ไม่ให้ภายนอกมองเห็นได้เรียกวา่ “Information hiding” และเม่ือข้างนอกมองไมเ่ ห็นก็ไมส่ ามารถเปล่ียนแปลง แก้ไข หรือสร้างความเสียหายให้กบั สิ่งที่อยภู่ ายในได้ ข้อดี คอื สามารถสร้างความปลอดภยั ให้กบั ข้อมลู ได้ เน่ืองจากข้อมลู ถกู เข้าถงึ จากผ้มู ีสิทธิ์เทา่ นนั้ 2. Inheritance (การสืบทอดคุณสมบัต)ิ หลกั การคือ ทาการสร้างสิ่งใหม่ขนึ ้ มาด้วยการสืบทอดหรือรับเอา (Inherit) คณุ สมบตั บิ างอย่างมาจากส่งิ เดมิ ที่มีอยแู่ ล้ว หรือกลา่ วคือ ทาการสร้างส่ิงเพ่มิ เตมิ จากสงิ่ ท่ีมีอยแู่ ล้ว ข้อดี คือ จากการท่ีนาสิ่งท่ีเคยสร้างขึน้ แล้วกลบั มาใช้ใหม่ (Re-use) ได้ทาให้ช่วยประหยัดเวลาการทางานลงไปได้มาก เน่ืองจากไมต่ ้องเสียเวลาพฒั นาใหมห่ มด 3. Polymorphism (การพ้องรูป)เป็นการตงั้ ช่ือ method เหมือนกนั แตร่ ับคา่ เข้ามาภายในที่ตา่ งกนั โดยท่ีการท่ีเมธอดช่ือหนง่ึ รับอาร์กิวเมนต์ที่แตกตา่ งกนั ได้หลายรูปแบบ เรียกวา่ โอเวอร์โหลด (Overload) ข้อดี คือ ในการทางานสามารถนาเอาคณุ สมบตั ิไปใช้ได้เลยโดยไม่จาเป็นต้องสร้ างคุณสมบัติทงั้ 2อยา่ งนีข้ นึ ้ มาใหมใ่ ห้เสียเวลาSWE102 Computer Programming | อาจารย์รัตตกิ านต์ วบิ ลู ย์พานิช 3

ครัง้ ที่ 1 เร่ืองแนวคดิ การเขยี นโปรแกรมเชงิ วตั ถุ ความโดดเด่นของภาษาจาวา 1. Simple จาวามีลกั ษณะคล้ายภาษา C++ แต่จะตดั ส่วนท่ีใช้งานยากของภาษา C/C++ ออกไปเชน่ พอยเตอร์, สตรัคเจอร์, ยเู นียน, การใช้ header file, การจองหนว่ ยความจา (Memory allocation) 2. Object Oriented จาวาถูกออกแบบมาเพื่อให้ ทางานโดยอาศัยหลักการ object orientedprogramming (OOP) 3. Robust มีคุณสมบัติช่วยให้โปรแกรมมีความคงทน (Robust) ซึ่งโปรแกรมจาวาจะมี garbagecollection เป็ นตัวช่วยจัดการหน่วยความจาโดยอัตโนมัติ ช่วยลดข้ อผิดพลาดจากการจองพืน้ ท่ีหน่วยความจาไว้ แล้วคืนหน่วยความจานนั้ ให้กบั ระบบ เพื่อลดสภาวะ memory leak (หน่วยความจาร่ัว)และมีการตรวจสอบหาความผิดพลาดในทกุ ครัง้ ที่คอมไพเลอร์ทางาน 4. Secure จาวาถกู ออกแบบมาเพื่อให้รักษาความปลอดภยั กรณีผ้ใู ช้รันจาวาแอพเพลต เน่ืองจากจาวาแอพเพลตถกู ออกแบบมาเพ่ือรันอยบู่ น sendbox 5. Architecturally neutral ตัวแปรภาษาจาวาถูกออกแบบมาไม่ยึดติดกับแพลตฟอร์มใด โดยท่ีผ้พู ฒั นาโปรแกรมสามารถพฒั นาโปรแกรมเพียงครัง้ เดยี ว และนาโปรแกรมท่ีคอมไพล์แล้ว (ซงึ่ อยใู่ นรูปของbytecode ในไฟล์ .class ไปเรียกรันได้ทกุ ที่ 6. Portable สามารถนาโปรแกรมจาวาไปคอมไพล์บนระบบปฏิบตั กิ ารท่ีแตกตา่ งกนั ได้โดยที่ผ้พู ฒั นาไมต่ ้องปรับปรุงโค๊ดโปรแกรม 7. Multi-thread จาวาสนบั สนุนการทางานหลาย ๆ อย่างในเวลาเดียวกนั โดยในโปรแกรมจะมีเธรด(thread - หน่วยการทางานของโปรแกรม) เช่นระหว่างท่ีเธรดหนึ่งกาลังรับข้อมูลอินพุต อีกเธรดหนึ่งสามารถวาดรูปกราฟิกแสดงผลผา่ นจอภาพได้ ประเภทความผิดพลาด (Error) ในภาษาจาวาความผิดพลาด (Error) ท่ีสามารถตรวจพบในภาษาจาวาถกู แบง่ ออกเป็น 2 ประเภท คือ 1. Systax error (Compile-time error) คือความผิดพลาดที่ตรวจสอบพบเมื่อคอมไพล์โปรแกรมเนื่องมาจากการเขียนผิดหลกั ไวยากรณ์ของภาษา เม่ือตรวจสอบพบคอมไพเลอร์จะไม่แปลผลโปรแกรมจนกวา่ จะทาการแก้ไขข้อผิดพลาด แล้วจงึ สงั่ คอมไพล์โปรแกรมใหมอ่ ีกครัง้ 2. Logical error (Runtime error) คือคอมไพเลอร์จะตรวจสอบข้อผิดพลาดนีไ้ ม่พบเน่ืองจากเกิดความผิดพลาดระหว่างการรันโปรแกรม ข้อผิดพลาดนีจ้ ะแสดงออกทางหน้าจอในรูปแบบ error messageซงึ่ โปรแกรมเมอร์จะต้องเป็นผ้ตู รวจสอบหาข้อบกพร่องดงั กลา่ วเอง โดยอาศยั กระบวนการในการตรวจสอบข้อผิดพลาด (Debugging)SWE102 Computer Programming | อาจารย์รัตตกิ านต์ วบิ ลู ย์พานชิ 4

ครัง้ ท่ี 1 เร่ืองแนวคดิ การเขยี นโปรแกรมเชิงวตั ถุPackageกฎการตงั้ ช่ือไฟล์หากประกาศคลาสขนึ ้ โดยระบเุ ป็น public class จะต้องบนั ทกึ ไฟล์ใหม่ที่มีช่ือเหมือนกบั ชื่อคลาส(1 ไฟล์ประกอบด้วยกี่คลาสก็ได้แตต่ ้องมี public class เพียงคลาสเดยี ว)คลาสท่มี ีการประกาศไว้ในไฟล์ การตงั้ ช่ือไฟล์public class Hello { } Hello.javapublic class Employee { } Employee.javaClass Ruby { } จะบันทึกไฟล์เป็ น Ruby หรือ ชื่อไฟล์อื่น ๆ ก็ได้ เน่ืองจากหน้ า class ไม่มีประกาศให้ เป็ น public class ตารางท่ี 1.1 ตัวอย่างการตงั้ ช่ือไฟล์หมายเหตุ : ควรตงั้ ชื่อไฟล์ให้เหมาะกับคลาส เมื่อคอมไพล์โปรแกรมออกมาเป็น .class ในกรณีที่เราต้องการแก้ไขไฟล์นนั้ หากตัง้ ช่ือไม่คล้อง เช่น class ruby เราทาการตงั้ ช่ือไฟล์วา่ Cat.java หากเรามีไฟล์.class จานวนมากและเราต้องการท่ีจะแก้ไขงาน เราคงไมส่ ามารถจาได้วา่ class ruby เก็บอยไู่ ว้ในไฟล์ใดความหมายของแพค็ เกจPackage คือส่ิงท่ีใช้ในการรวบรวมคลาสที่มีความเก่ียวข้องและสมั พนั ธ์กนั ไว้ด้วยกนั โดยมีหลกั การตงั้ ช่ือแพก็ เกจเป็นตวั อกั ษรตวั เลก็ ทงั้ หมด เพื่อให้งา่ ยตอ่ การใช้งานรูปแบบของการประกาศแพก็ เกจPackage ช่ือแพ็กเกจ.ชื่อแพ็กเกจยอ่ ย;ลักษณะสาคัญของแพก็ เกจ ต้องประกาศไว้บรรทดั บนสดุ เท่านนั้ สามารถเว้นชอ่ งวา่ งกอ่ นการประกาศแพ็กเกจได้ และสามารถใสค่ อมเมนตไ์ ด้ สามารถได้ประกาศ 1 แพ็กเกจ ตอ่ 1 source ไฟล์ (ไฟล์.java) เทา่ นนั้ถ้าไมม่ ีการประกาศแพ็กเกจ ไฟล์.class ท่ีได้จากการคอมไพล์จะถกู เก็บไว้ท่ีไดเร็กทอรีปัจจบุ นั ท่ีทางานอยู่SWE102 Computer Programming | อาจารย์รัตตกิ านต์ วิบลู ย์พานชิ 5

ครัง้ ท่ี 1 เรื่องแนวคดิ การเขียนโปรแกรมเชิงวตั ถุเร่ิมต้นจัดกลุ่มคลาสท่สี ัมพนั ธ์กันด้วยคาส่ัง Packageตวั อยา่ งเชน่ source file ประกอบด้วย Enrollment.java (การลงทะเบียนเรียน) Withdrawal.java (การถอนวชิ าเรียน) Points.java (คะแนนสอบ) Grade.java (เกรด)แบง่ ออกตามลกั ษณะของความสมั พนั ธ์ได้ 2 ลกั ษณะ คอื กลมุ่ ของงานลงทะเบียน (register) ประกอบด้วย Enrollment.class และ Withdrawal.class กลมุ่ ของการสอบ (exam) ประกอบด้วย Points.class และ Grade.classตัวอย่างท่ี 1.1 แสดงการเขียนโปรแกรม Java applicationไฟล์ Enrollment.javaเมื่อคอมไพล์จะได้ไฟล์ Enrollment.class เก็บอยใู่ นแพ็กเกจ student.register//Enrollment class for register coursepackage student.register;public class Enrollment { //ประกาศคลาสชื่อ Enrollment public void enroll( ) { // สร้างเมธอดช่ือ enroll System.out.println(“Enroll”); }}ตัวอย่างท่ี 1.2 แสดงการเขียนโปรแกรม Java applicationไฟล์ Withdrawal.javaเมื่อคอมไพล์จะได้ไฟล์ Withdrawal.class เก็บอยใู่ นแพ็กเกจ student.register)// Withdrawal class for cancel coursepackage student.register;public class Withdrawal { //ประกาศคลาสช่ือ Withdrawalpublic void withdraw( ) { // สร้างเมธอดช่ือ withdraw System.out.println(“withdraw”);}}SWE102 Computer Programming | อาจารย์รัตตกิ านต์ วบิ ลู ย์พานชิ 6

ครัง้ ที่ 1 เรื่องแนวคดิ การเขียนโปรแกรมเชงิ วตั ถุตวั อย่างท่ี 1.3 แสดงการเขียนโปรแกรม Java applicationไฟล์ Points.javaเมื่อคอมไพล์จะได้ไฟล์ Points.class เก็บอยใู่ นแพก็ เกจ student.exam)// Points class for calculate pointspackage student.register;public class Points { //ประกาศคลาสช่ือ Points public void calPoints( ) { // สร้างเมธอดช่ือ calPoints System.out.println(“Points”); }}ตวั อย่างท่ี 1.4 แสดงการเขียนโปรแกรม Java applicationไฟล์ Grade.javaเมื่อคอมไพล์จะได้ไฟล์ Grade.class เก็บอยใู่ นแพก็ เกจ student.exam)// Grade class for calculate pointspackage student.register;public class Grade { //ประกาศคลาสช่ือ Grade public void calGrade ( ) { // สร้างเมธอดชื่อ calGrade System.out.println(“Grade”); }}จากนนั้ ทาการคอมไพล์ source ทงั้ 4 ไฟล์ เมื่อสง่ั คอมไพล์โปรแกรม คอมไพล์เลอร์จะทาหน้าท่ีสร้างไดเร็คทอรี register และ exam ขึน้ ในไดเร็คทอรีปัจจุบัน (sourcejava) โดยอัตโนมัติ ซึ่งเป็ นผลจากคาสั่งpackage student.register; และ package student.exam; ใน source fileจากนนั้ คลิกป่ มุ Start>Program>Accessories>Windows Explorer แล้วเข้าไปท่ี C:\ sourcejava จะพบลกั ษณะของไดเร็คทอรี sourcejava ดงั นี ้SWE102 Computer Programming | อาจารย์รัตตกิ านต์ วิบลู ย์พานชิ 7

ครัง้ ท่ี 1 เรื่องแนวคดิ การเขยี นโปรแกรมเชิงวตั ถุ ประกอบด้วย Points.class และ Grade.class ประกอบด้วย Enrollment.class และ Withdrawal.class ภาพท่ี 1.2 แสดงไดเร็คทอรี sourcejavaประโยชน์ของ Package 1. จดั กลมุ่ คลาสท่ีมีความสมั พนั ธ์กนั ไว้ด้วยกนั 2. หลีกเล่ียงการชนกนั ของชื่อคลาส เพื่อให้ student.class ของนักเรียนถูกเก็บไว้คนละไดเร็คทอรี กรณีที่อาจารย์ให้นักศึกษาตงั้ ช่ือคลาสว่า student การที่นาคลาสดงั กล่าวมารัน ผลปรากฏว่า มีการรันและบนั ทึกชื่อ student.calss นีซ้ า้กนั ในไดเร็คทอรีหนงึ่ ๆ หลายครัง้ (การตงั้ ชื่อแพ็กเกจ ควรเลือกใช้ชื่อที่จาเฉพาะเจาะจง ไมซ่ า้ ใคร เพื่อที่จะหลีกเลี่ยงปัญหาการชนกนั ของคลาส) ImportImport คืออะไร ในกรณีที่ต้องการนาคลาสท่ีมีอยแู่ ล้วมาใช้ในโปรแกรมที่กาลงั จะสร้างขนึ ้ ใหมต่ ้องใช้คาสงั่ importเพ่ือบอกคอมไพเลอร์ให้ทราบว่าคลาสทกุ คลาสท่ีเราต้องการใช้งานได้จากในแพ็กเจใด โดยใช้คาสง่ั importคอืImport ชือ่ แพ็กเกจหลกั .ชื่อแพก็ เกจย่อย.ชือ่ คลาสที่ตอ้ งการใชง้ าน;การระบคุ ลาสที่ต้องการใช้งานนนั้ จะระบคุ ลาสลงไปตรง ๆ หรือระบเุ ป็น * ซ่ึงหมายถึงคลาสทกุ คลาสก็ได้มีผลไม่ต่างกัน เพราะการระบุ * ไม่ได้หมายความว่าคลาสทุกคลาสถูกโหลดเข้าสู่หน่วยความจาให้สนิ ้ เปลือง เนื่องจากจะมีเฉพาะคลาสท่ีถกู เรียกใช้งานเทา่ นนั้ ท่ีถกู โหลดเข้าสหู่ นว่ ยความจาขัน้ ตอนใช้งานคลาสท่ีเกบ็ อย่ใู นแพก็ เกจได้อย่างไรวธิ ีการเรียกทาได้ 2 วธิ ี คอื 1. ระบดุ ้วยพาธ (Path) เตม็ ๆ วา่ คลาสนนั้ ถกู เก็บอยทู่ ่ีใด 2. ทาการอมิ พอร์ตคลาสนนั้ เข้ามาในโปรแรมโดยใช้คาสง่ั importSWE102 Computer Programming | อาจารย์รัตตกิ านต์ วบิ ลู ย์พานชิ 8

ครัง้ ที่ 1 เร่ืองแนวคดิ การเขยี นโปรแกรมเชงิ วตั ถุตัวอย่างท่ี 1.5 แสดงการเขียนโปรแกรม Java applicationไฟล์ Student1.javapublic class Student1 { public static void main(String [ ] args) { Student.exam.Grade grade = new student.exam.Grade( ); //เป็นการระบุ path เต็มของคลาส grade grade.calGrade( ) ; // เรียกเมธอดของคลาสให้ทางาน }}วธิ ีคอมไพล์โปรแกรม รันโปรแกรม และผลลัพธ์ของโปรแกรม โดยก่อนเร่ิมทาการคอมไพล์และรันโปรแกรม จาเป็นต้องเช็คตวั แปรระบบท่ีช่ือว่า classpath ก่อนโดยกาหนดค่าเป็น . (หมายถึงไดเร็คทอรีปัจจบุ นั ) เพื่อแจ้งให้คอมไพเลอร์ทราบวา่ หากคอมไพเลอร์ค้นหาคลาสท่ีมีการเรียกใช้งานในโปรแกรมไม่พบ ให้คอมไพเลอร์มาค้นหาที่ไดเร็คทอรีปัจจุบนั ที่ทางานอยู่(Current working directory) ในท่ีนี่คือไดเร็คทอรี C:\sourcejava จากนนั้ สงั่ คอมไพล์และสง่ั รันโปรแกรมจะมีข้อความ Grade แสดงออกจากทางหน้าจอภาษา ซ่ึงเป็นผลมาจากการทางานของเมธอด calGradeในคลาส Graderun:GradeBUILD SUCCESSFUL (total time: 0 seconds)SWE102 Computer Programming | อาจารย์รัตตกิ านต์ วบิ ลู ย์พานิช 9

ครัง้ ท่ี 1 เร่ืองแนวคดิ การเขียนโปรแกรมเชงิ วตั ถุตวั อย่างท่ี 1.6 แสดงการเขียนโปรแกรม Java applicationไฟล์ Student2.javaImport student.exam.Grade; //เป็นการอิมพอร์ตคลาส Grade ซึ่งเก็บอยู่ใน student.exam เข้ามาในโปรแกรมpublic class Student2 { public static void main(String [ ] args) { Grade grade = new Grade( ); //ระบเุ พียงชื่อคลาส Grade ไมไ่ ด้ระบพุ าธเตม็ ของคลาส grade.calGrade( ) ; }} ขนั้ ตอนที่ดีท่ีสดุ คือขนั้ ตอนที่ 2 เน่ืองจากทาการอิมพอร์ตคลาสเพียงครัง้ เดียวตอนต้นของโปรแกรมหลงั จากนนั้ ก็สามารถเรียกใช้งานคลาสได้โดยระบเุ พียงชื่อคลาส ไมต่ ้องระบพุ าธตัวอย่างท่ี 1.7 แสดงการเขียนโปรแกรม Java applicationไฟล์ TestPackage.javapackage student.register; //นา TestPackage.class ท่ี ได้ จากการคอมไพ ล์ไปเก็บไว้ ในแพ็กเกจstudent.register จึงสามารถเรียกใช้งานคลาสอื่นที่เก็บอยใู่ นแพ็กเกจ student.register ได้ทงั้ หมด โดยไม่ต้องใช้คาสงั่ importImport student.exam.*; //เป็นการอมิ พอร์ตคลาสทงั้ หมด ซงึ่ เก็บอยใู่ น student.exam เข้ามาในโปรแกรมpublic class Student2 { public static void main(String [ ] args) { new Enrollment( ).enroll( );// เรียกใช้งาน class Enrollment และ Withdrawal (เป็นผลมา new Withdrawal( ).withdraw( ); new Grade( ).calGrade( ); new Points( ).calPoints( ); }}SWE102 Computer Programming | อาจารย์รัตตกิ านต์ วบิ ลู ย์พานชิ 10

ครัง้ ที่ 1 เรื่องแนวคดิ การเขยี นโปรแกรมเชงิ วตั ถุ แบบฝึ กหัดท่ี 1 เร่ืองแนวคดิ การเขียนโปรแกรมเชงิ วตั ถุ (ทฤษฎี) 1. Java platform แบง่ ออกเป็นกี่ประเภท อะไรบ้าง จงอธิบาย 2. JRE คอื อะไร ประกอบด้วยอะไรบ้าง 3. JDK คอื อะไร ประกอบด้วยอะไรบ้าง 4. JVM คอื อะไร จงอธิบาย 5. เพราะเหตใุ ดจึงไม่ต้องแยกเขียนโปรแกรมภาษาจาวาสาหรับแพลตฟอร์มแต่ละแพลตฟอร์มแต่สามารถเขียนโปรแกรมภาษาจาวาเพียงครัง้ เดียว แล้วนาไปรันได้บนทกุ เพลตฟอร์ม 6. หลกั การพืน้ ฐานของ object oriented มีอะไรบ้าง 7. Encapsulation คอื อะไร 8. จงยกตวั อยา่ งของการสืบทอดคณุ สมบตั ิ (Inheritance) มาสกั 2 ตวั อยา่ ง 9. เพราะเหตใุ ดจาวาจึงเป็นภาษาท่ีใช้งานง่ายกว่า C++ ทงั้ ท่ีก็มีลกั ษณะคล้ายกัน คือ เป็น objectoriented programming เหมือนกนั 10. Garbage Collection คอื อะไร จงอธิบาย 11. Multi-thread คืออะไร จงอธิบาย 12. หากจะเปรียบเทียบระหว่าง Compile-time error กบั Runtime error ความผิดพลาดประเภทใดใช้เวลาในการแก้ไขข้อผดิ พลาดนานกวา่ กนั เพราะเหตใุ ด 13. หากเขียนโค้ดโปรแกรมดงั ตอ่ ไปนี ้และตงั้ ช่ือวา่ A2.java โปรแกรมจะคอมไพล์ผ่านหรือไม่ อย่างไรและหากคอมไพล์ไมผ่ า่ นควรจะตงั้ ช่ือไฟล์วา่ อะไรclass A1{ }class A2{ }public class A3 { }SWE102 Computer Programming | อาจารย์รัตตกิ านต์ วิบลู ย์พานิช 11

ครัง้ ที่ 1 เรื่องแนวคดิ การเขียนโปรแกรมเชงิ วตั ถุ 14. หากเขียนโค้ดโปรแกรมดงั ต่อไปนี ้และตงั้ ช่ือไฟล์ว่า A4.java โปรแกรมจะคอมไพล์ผ่านหรือไม่อยา่ งไร และหากคอมไพล์ไมผ่ า่ นควรจะตงั้ ช่ือไฟล์วา่ อะไรclass A1{ }class A2{ public static void main(String[ ] args) { System.out.println(“Hello World!”); }}class A3 { } 15. จงพิจารณาโปรแกรมต่อไปนี ้และหาผลลพั ธ์ของโปรแกรมไฟล์ FirstClass.java (ไฟล์นีถ้ กู จดั เก็บอยทู่ ่ีไดเร็คทอรี C:\sourcejava)package com.package1;public class FirstClass { public void firstMethod( ){ System.out.println(“This is first class”); }}ไฟล์ SecondClass.java (ไฟล์นีถ้ กู จดั เก็บอยใู่ นไดเร็คทอรี C:\sourcejava)SWE102 Computer Programming | อาจารย์รัตตกิ านต์ วิบลู ย์พานิช 12

ครัง้ ที่ 1 เร่ืองแนวคดิ การเขยี นโปรแกรมเชงิ วตั ถุ แบบฝึ กหดั ท่ี 1 เรื่อง แนะนาภาษาจาวา การตดิ ตงั้ และใช้งานตวั แปรภาษาจาวา (ปฏิบตั )ิDownload โปรแกรมhttp://www.oracle.com/technetwork/java/javase/downloads/index.html.1. HelloWorld.java a. สร้างเป็น Java Application b. สร้างเป็น Java Form2. HelloJava.java a. สร้างเป็น Java Application b. สร้างเป็น Java Form3. Java.java J AV VA JJJ AA V V AA JJ AAAAA V V AAAAA A AVA A4. Rabbit.java-----------0o--------------0o---------------------o0----0o---------0o--0o---------------------0o----0o------0o----0o----------------------o0---o0-o0-0o---0o----------------------o0------------------0o----------------o0--------------------------0o----------o0------------------------------0o------o0----------------------------------0o--o0--------------------------------------0oo0--------------------------------------0oo0-----------a-------------a------------0oo0--------------------------------------0o-o0---------.-------U---------.--------0o---o0---------------------------------0o-------o000------------------------000o--------------0o--0o--0o-0o--0o--0oSWE102 Computer Programming | อาจารย์รัตตกิ านต์ วบิ ลู ย์พานชิ 13


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook