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 หน่วยที่ 2 องค์ประกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา)

หน่วยที่ 2 องค์ประกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา)

Published by chusree_kew, 2017-11-21 02:15:35

Description: 11U2Java

Search

Read the Text Version

หนว่ ยท่ี 2 องคป์ ระกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชูศรี เกลยี วสกลุ โกวทิ เอกสารประกอบการเรยี นหนว่ ยท่ี 2 องค์ประกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) รายวิชา การเขียนโปรแกรมบนมาตรฐานเปดิ รหัสวชิ า 2304 - 2007 ระดบั ปวช. 2/1-4 คอมพวิ เตอรธ์ ุรกิจ ประเภทวิชา พาณิชยกรรม โดย นางสาวชศู รี เกลยี วสกลุ โกวิท

หนว่ ยที่ 2 องค์ประกอบของโปรแกรมภาษาคอมพวิ เตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลียวสกลุ โกวทิ2.1 ความรู้พื้นฐานของภาษาจาวา ภาษาจาวา (Java programming language) เป็นภาษาคอมพิวเตอร์สาหรับใช้พัฒนาโปรแกรมภาษาหน่ึง ถกู สรา้ งมาเพ่ือรองรับการออกแบบซอฟแวร์ทม่ี ีการเช่ือมโยงอนิ เทอรเ์ น็ต อีกทัง้ ยงั เป็นโปรแกรมที่สนบั สนุนแนวความคดิ ของการเขยี นโปรแกรมเชงิ วัตถุ โดยมคี วามสามารถเฉพาะตัวตา่ งจากโปรแกรมภาษาชั้นสูงอน่ื ๆ ในเรอื่ งของการทางานขา้ มระบบปฏบิ ัติการ หรือที่เรยี กกันวา่ การทางานขา้ มแพลตฟอรม (Platform) ไดโ้ ดยไม่ต้องมีการคอมไพล์ใหม่น้ันเอง สาหรับภาษาจาวานั้นถูกพัฒนาตั้งแต่ปี พ.ศ.2534 (ค.ศ. 1991) เป็นส่วนหน่ึงของโครงการกรีน (Green Project) ซึ่งเป็นการวิจัยเพื่อพัฒนาซอฟต์แวร์ท่ีใช้ควบคุมอุปกรณ์เล็กทรอนิคส์หรือเป็นการควบคุมเครื่องใช้ไฟฟ้าขนาดเล็กภายในบ้านนั่นเอง บุคคลสาคัญที่มีบทบาท คือ เจมส์ กอสลิง (JamesGosling) และวิศวกรคนอื่น ๆ เช่น Mike Sheridan, Patrick Naughton เป็นต้น ที่บริษัท ซัน ไมโครซิสเต็มส์(Sun Microsystems) ซึ่งเป็นบริษัทผู้ขายระบบ Unix ท่ีมีช่ือว่า Solaris โดยมีจุดประสงค์เพ่ือใช้แทนภาษาซีพลัสพลัส (C++) มีรูปแบบที่เพิ่มเติมขึ้นคล้ายกับภาษาอ็อบเจกต์ทีฟซี (Objective-C) แต่เดิมภาษาน้ีเรียกว่า ภาษาโอ๊ก (Oak) ซ่ึงต้ังช่ือตามต้นโอ๊กใกล้ที่ทางานของ เจมส์ กอสลิง จากนั้นภายหลงั จึงเปล่ียนไปใชช้ ่อื“จาวา” ซึ่งเปน็ ชอ่ื กาแฟทที่ มี วศิ วกรของบรษิ ัทฯ ดื่มตอนทรี่ ่วมกนั พัฒนาภาษาจาวาข้ึนน่ันเอง ภาษาจาวาเรม่ิ เปน็ ที่นิยมแพร่หลายในปี พ.ศ.2538 (ค.ศ. 1995) โดยได้เร่มิ แจกจ่ายชดุ พัฒนาโปรแกรมภาษาจาวา (Java Development Kit) ในอินเทอรเ์ น็ต ต่อมาในปี พ.ศ. 2553 (ค.ศ. 2010) บริษทั ออราเคิลคอรป์ อเรชั่น (Oracle Corporation) เข้าการควบกจิ การ ซันกลายเปน็ บริษัทลูกของออราเคิล 2.1.1 ข้อเด่นของภาษาจาวา - เปน็ ภาษาทีส่ นับสนนุ การเขียนโปรแกรมเชงิ วตั ถแุ บบสมบรู ณ์ (Object OrientedProgramming) ซง่ึ เหมาะสาหรบั พัฒนาระบบท่ีมคี วามซับซอ้ น การพัฒนาโปรแกรมแบบวัตถุจะชว่ ยให้สามารถใช้คาหรือชื่อ ต่าง ๆ ที่มีอยใู่ นระบบงานน้ันมาใช้ในการออกแบบโปรแกรมได้ ทาใหเ้ ขา้ ใจไดง้ า่ ยขึน้ - สามารถทางานได้ในระบบปฏบิ ัตกิ ารท่แี ตกตา่ งกนั (Platform Independent) โดยไม่จาเป็นตอ้ งดดั แปลงแก้ไขโปรแกรมหรอื คอมไพลใ์ หม่ และในได้ในทุกระบบ (Portable) เชน่ หากเขยี นโปรแกรมบนเครอ่ื งซนั โปรแกรมน้นั กส็ ามารถถูกคอมไพล์และรัน บนเครือ่ งพซี ีธรรมดาได้ ซ่งึ อาจเรียกคุณสมบัตนิ ีว้ า่Write Once Run Anywhere นา่ จะอธบิ ายไดอ้ ยา่ งนี้ แพลตฟอรมก็เหมือนระบบปฏิบัติการ อย่างเช่นWindows , Linux หรอื mac OS ถ้าเขยี นโปรแกรมอะไรบางอยา่ ง แลว้ ทาการ Compile Source ด้วย JREจนได้ Bytecode การนา Bytecode ไป Execute ตวั จาวา จะไมส่ นใจวา่ คุณใชร้ ะบบปฏิบัติการอะไร เพราะBytecode จะ Execute ผ่าน JVM (Java Virtual Machine ) หรือ ทเ่ี ราเรยี กวา่ แพลตฟอรมเสมอื น น่นั เอง - มคี วามซบั ซ้อนนอ้ ยกว่าภาษา C++ เมือ่ เปรียบเทยี บ code ของโปรแกรมท่ีเขียนข้ึนโดยภาษาจาวา กบั C++ พบว่า โปรแกรมที่เขยี นโดยภาษาจาวา มีจานวน code นอ้ ยกว่าโปรแกรมท่เี ขียนโดยภาษา C++ ทาให้ใชง้ านได้ง่ายกว่าและลดความผดิ พลาดไดม้ ากขน้ึ - ถกู ออกแบบใหม้ ีความปลอดภัยสูงต้ังแตแ่ รก (Code Security) ทาใหโ้ ปรแกรมท่ีเขยี นขึ้นด้วยจาวามีความปลอดภยั มากกวา่ โปรแกรมท่เี ขยี นขนึ้ ด้วยภาษาอื่น เพราะ Java มี security ท้ัง low levelและ high level ไดแ้ ก่ electronic signature, public and private key management, access control

หนว่ ยที่ 2 องค์ประกอบของโปรแกรมภาษาคอมพวิ เตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลยี วสกลุ โกวทิและ certificates รวมถงึ มกี ารตรวจสอบข้อผดิ พลาดท้ังตอน compile time และ runtime ทาใหล้ ดขอ้ ผิดพลาดท่ีอาจเกดิ ข้ึนในโปรแกรม และชว่ ยให้ debug โปรแกรมไดง้ ่าย - มี IDE, application server และไลบารีตา่ ง ๆ มากมาย (Dynamic) สาหรับจาวาทีเ่ ราสามารถใช้งานได้โดยไมต่ ้องเสียค่าใช้จา่ ย ทาใหเ้ ราสามารถลดค่าใชจ้ ่ายทต่ี ้องเสยี ไปกับการซ้อื tool และซอฟตแ์ วร์ต่าง ๆ 2.1.2 ข้อด้อยของภาษาจาวา - ทางานได้ชา้ กว่า native code (โปรแกรมท่ีคอมไพล์ให้อยู่ในรปู ของภาษาเครื่อง) หรือโปรแกรมท่เี ขียนขึ้นด้วยภาษาอนื่ อย่างเช่น C หรือ C++ ทง้ั นกี้ ็เพราะวา่ โปรแกรมทเ่ี ขยี นขน้ึ ดว้ ยภาษาจาวาจะถกู แปลงเปน็ ภาษากลาง ก่อน แลว้ เมอ่ื โปรแกรมทางานคาสัง่ ของภาษากลางน้ีจะถกู เปลี่ยนเปน็ ภาษาเคร่ืองอกี ทีหน่ึง ทลี ะ่ คาสั่ง (หรือกลุ่มของคาสั่ง) ณ runtime ทาให้ทางานช้ากวา่ native code ซึ่งอยใู่ นรปู ของภาษาเครอ่ื งแลว้ ตัง้ แต่ คอมไพล์โปรแกรมท่ีต้องการความเร็วในการทางานจงึ ไม่นยิ มเขยี นดว้ ยจาวา - tool ที่มีในการใชพ้ ัฒนาโปรแกรมจาวามักไม่ค่อยเกง่ ทาใหห้ ลายอย่างโปรแกรมเมอร์จะต้องเปน็ คนทาเอง ทาให้ต้องเสยี เวลาทางานในส่วนท่ี tool ทาไมไ่ ด้ ถา้ เราดู tool ของ MS จะใชง้ านได้งา่ ยกว่า และพัฒนาไดเ้ รว็ กวา่ (แต่เราต้องซือ้ tool ของ MS และกต็ ้องรันบน platform ของ MS)2.2 องคประกอบของภาษาจาวา ภาษาจาวามีองคประกอบทีส่ าคญั ในการทางาน ประกอบดวย 3 สวน ดงั น้ี 1. Java Virtual Machine : JVM เปนสวนที่ทาหนาท่ีเปนตัวอนิ เตอร์พรีเตอร (interpreter) ทาการแปลจาวาไบตโคด ใหเปนภาษาท่ีเครื่องเขาใจ ซ่ึงจาวาไบตโคดจะสามารถรนั ไดหลายแพลตฟอรม (Platform) 2. Java Runtime Environment : JRE เปนสวนทีใ่ ช ในการรนั โปรแกรมภาษาจาวา โดยจะทางาน 3ขนั้ ตอน ดังน้ี ขั้นตอนแรกโหลดไบตโคดโดยใช Class loader คอื การโหลดคลาสทุกคลาสทเี่ กย่ี วของในการรนัโปรแกรม ขนั้ ตอนทีส่ องตรวจสอบไบตโคด (Byte code Verifier) คือการตรวจสอบ วาโปรแกรมตองไมมีคาส่ังท่ที าใหเกดิ ความผิดพลาดกบั ระบบ เชน การแปลงขอมลู ท่ีผดิ พลาด หรือมี การแทรกแซงเขาสูระบบภายในเปนตน ขนั้ ตอนที่สุดทาย รันไบตโคดโดยใชตวั แปลรนั ไทล (Runtime Interpreter) 3. Java Developer Kit : JDK เป็นชุดพฒั นาโปรแกรมภาษาจาวา ประกอบดวยโปรแกรมตาง ๆ คือโปรแกรมคอมไพเลอร (javac.exe) และโปรแกรมอนิ เตอรพรเี ตอร์ (java.exe) แตไมมีโปรแกรมที่ทาหนาท่ีสรางโคด (Editor) รวมอยูดวย โดยสามารถแบงเปน 3 รูปแบบตามแพลตฟอรม (Platform) ซ่ึงหมายถึงลกั ษณะการนาภาษาจาวาไปสรางเปนโปรแกรมเพื่อวัตถปุ ระสงคใด วัตถุประสงคหน่ึง บนการประมวลผลของคอมพวิ เตอร ยกตวั อย่าง เชน่ อาจเปนการทาการประมวลผลที่ไมมีการเชื่อมตอกับเครื่องคอมพวิ เตอรเคร่ืองอ่ืนๆ หรอื ตองการนาโปรแกรมภาษาจาวาไปใชกับระบบเครอื ขายอนิ เทอรเนต็ เปนตน ดงั น้ี 3.1 Java SE : JSE (Standard Edition) สาหรับพัฒนาโปรแกรมบนเคร่อื งคอมพิวเตอรส์ ว่ นบุคคล(Personal Computer : PC) ท่ัวไป และเครื่องสถานีงานวศิ วกรรม (Work Station)

หน่วยท่ี 2 องคป์ ระกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลยี วสกลุ โกวิท 3.2 Java EE : JEE (Enterprise Edition) สาหรบั พฒั นาโปรแกรมองค์ขนาดใหญ่ สามารถทางานบนเครื่องแม่ข่าย (Server) และรองรับการทางานของเซริ ์ฟเลต (Servlets) เจเอสพี (JSP) และเอกซ์เอม็แอล (XML) 3.3 Java ME : JME (Micro Edition) สาหรบั พัฒนาโปรแกรมบนอปุ กรณ์พกพา หรอื อุปกรณ์ไรส้ ายทม่ี ที รัพยากรจากัด เช่น โทรศพั ทม์ ือถือ (Mobile Phone) เคร่ืองปาล์ม (Palm) หรอื เครือ่ งพดี ีเอ (PDA)เปน็ ต้น รุน่ ตา่ ง ๆ ของ JDK1.0 (ค.ศ. 1996) — ออกครงั้ แรกสุด1.1 (ค.ศ. 1997) — ปรับปรงุ ครงั้ ใหญ่ โดยเพิ่ม inner class1.2 (4 ธนั วาคม, ค.ศ. 1998) — รหัส Playground ด้านจาวาแพลตฟอร์มไดร้ บั การเปลี่ยนแปลงครั้งใหญ่ในAPI และ JVM (API สาคัญที่เพิ่มมาคือ Java Collections Framework และ Swing; สว่ นใน JVM เพ่ิม JITcompiler) แตต่ ัวภาษาจาวาน้นั เปล่ียนแปลงเพยี งเล็กน้อย (เพมิ่ คยี เ์ วิรด์ strictfp) และทั้งหมดถูกเรยี กช่ือใหม่วา่ \"จาวา 2\" แต่ระบบเลขรุ่นยังไม่เปลีย่ นแปลง1.3 (8 พฤษภาคม, ค.ศ. 2000) — รหสั Kestrel แก้ไขเล็กนอ้ ย1.4 (13 กุมภาพันธ์, ค.ศ. 2002) — รหสั Merlin เป็นรุน่ ทถ่ี กู ใชง้ านมากที่สุดในปจั จุบัน (ขณะทเ่ี ขียน ค.ศ.2005)5.0 (29 กันยายน, ค.ศ. 2004) — รหัส Tiger (เดมิ ทนี ับเป็น 1.5) เพ่ิมคุณสมบตั ิใหมใ่ นภาษาจาวาเช่น Annotations ซ่งึ เปน็ ทถ่ี กเถียงกันว่านามาจากภาษาซีชารป์ ของบริษัทไมโครซอฟท์, Enumerations, Varargs, Enhanced for loop, Autoboxing, และที่สาคญั คือ Generics6.0 (11 ธนั วาคม, ค.ศ. 2006) [1] — รหสั Mustang เป็นรุ่นในการพฒั นาของ Java SDK 6.0 ทีอ่ อกมาให้ทดลองใช้ในเดือนพฤศจิกายน ค.ศ. 20047.0 (กาลงั พัฒนา กาหนดออก ค.ศ. 2008) — รหัส Dolphin กาลงั พฒั นา [2]8.0 การขยายตวั ของคุณลกั ษณะแบบโต้ตอบและมลั ตมิ ีเดยี ของเวบ็ เบราว์เซอร์ พฒั นาซอฟต์แวร์บนพนื้ ฐานJava9.0 แยกส่วน Java ออกเป็นโมดลู ยอ่ ยๆ เพื่อให้ขนาดเล็กลงของตัว Reinhold ยอมรับว่า Javaแบบเดมิ ถูกออกแบบให้มขี นาดใหญแ่ ละเปน็ กอ้ นเดยี วกันทง้ั หมด จะช่วยให้ Java รนั บนอปุ กรณ์ขนาดเล็กได้ และรนั พนซีพี-เซิรฟ์ เวอรไ์ ด้2.3 รปู แบบของภาษาจาวา 2.3.1 โปรแกรมจาวาประยกุ ต์ (Java Application) เป็นโปรแกรมที่สามารถทางานได้ด้วยตัวเอง(stand-alone) ท่รี ันบนคอมพิวเตอร์ 2.3.2 โปรแกรมจาวาแอปแพลต็ (Java Applet) เป็นโปรแกรมที่ถูกฝังอยูใ่ นเวบ็ ถูกออกแบบมาให้ส่งสัญญาณผ่านอนิ เทอร์เนต็ จาก Web Sever และประมวลผลทางฝั่ง Web browser Applets มีความสาคัญเพราะว่า สามารถนาไปขยายขดี ความสามารถของเวบ็ ไซต์ได้

หนว่ ยที่ 2 องค์ประกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลยี วสกลุ โกวทิ2.4 แนวทางการพัฒนาแอพพลเิ คชนั หรือโปรแกรม ถือวา่ เปน็ เร่ืองสาคญั ที่ควรตอ้ งทาความเข้าใจเพราะถ้าใช้แนวทางท่ไี มเ่ หมาะสมอาจจะพบปญั หา ทาให้ตอ้ งเสียเวลา ในการพัฒนาแอพพลเิ คชันได้ ในปัจจบุ นั มี 2 แนวทาง คอื 1) การเขียนโปรแกรมเชิงโครงสร้าง(Structured Programming) และ 2) การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) ซงึ่ มีรายละเอยี ดน้ี 1. การเขยี นโปรแกรมเชิงโครงสรา้ ง (Structured Paradigm หรอื Function OrientedParadigm) เป็นการเขยี นโปรแกรมแบบแยกเปน็ หนว่ ยย่อย (Module) จัดเป็นภาษาประเภทท่ีเรียกว่าProcedural Language ใชใ้ นการพัฒนาโปรแกรมในยุคก่อน โดยมกี ารแยกส่วนของข้อมลู จากฟังก์ชนั อยา่ งชัดเจน ซง่ึ การแยกข้อมูลจากฟังกช์ นั น้นั มักจะมีผลใหเ้ กดิ ความสับสน และคอ่ นขา้ งยากในการปรบั ปรุงแก้ไขสาหรับโปรแกรมขนาดใหญ่ 2. การเขียนโปรแกรมเชงิ วตั ถุ (Object Oriented Programming) หรือท่เี รียกกันวา่ OOP นัน่ เองหลกั การก็คอื จะมองงานแตล่ ะอยา่ งเป็นวตั ถุ (Object) และในการเขียนโปรแกรมจะอา้ งอิงโมเดลวตั ถใุ นโลกที่มีอยู่จรงิ ในการแกป้ ัญหา เช่น รถยนต์ สุนขั บัญชีธนาคาร เป็นต้น นามาแปลงให้อยใู่ นรปู แบบโค๊ดภาษา ซึง่บางส่วนอาจจะไมถ่ ูกเรยี กใช้งานก็ได้ สาหรับโปรแกรมทีเ่ ขียนขึ้นถกู สรา้ งภายในคลาส ดังน้นั คลาสคอื ทเ่ี ก็บเมทอด (Method) หรอื พฤติกรรม (Behavior) ซงึ่ มีสถานะ (State) และรปู พรรณ (Identity) ประจาพฤติกรรม(Behavior) โดยมีแนวคิดของการปกป้อง (Encapsulation) เปน็ การรวมกลมุ่ ของข้อมลู และกลมุ่ ของโปรแกรม เพ่ือการปกป้อง และเลือกตอบสนอง การสบื ทอด (Inheritance) เปน็ การยอมให้นาไปใช้ หรือเขียนขน้ึ มาทดแทนของเดิม และการพอ้ งรูป (Polymorphism) หรือ Many Shapes ซึ่งประกอบด้วย - Overloading มีช่อื โปรแกรมเดียวกนั แตร่ ายการตัวแปร (Parameter List) ตา่ งกนั - Overriding มชี อ่ื โปรแกรมและตัวแปรเหมือนกนั เพอ่ื เขียนพฤติกรรม (behavior) ขน้ึ มาใหม่2.5 กระบวนการทํางานของภาษาจาวา การทางานของภาษาจาวา เร่ิมจากการสรางโคดตนฉบบั (source code) แลวบันทึกไฟลดงั กลาว โดยบนั ทึกนามสกุล .java เก็บไวในโฟลเ์ ดอร์ท่ตี องการ จากนัน้ ทาการคอมไพล์ดวยจาวาคอมไพลเ์ ลอร์ในระบบปฏิบตั กิ าร DOS เพื่อเปล่ยี นคาสั่งภาษาจาวาเปนภาษาเฉพาะอยางหน่งึ เพ่ือใหจาวาเวอรชวั รแมทชนี เขาใจภาษาเฉพาะทีจ่ าวาเวอรชวั นแมทชนี เขาใจนีเ้ รา เรยี กวาจาวาไบตโคด เปนไฟลท่มี ีนามสกลุ .class แลวนาไฟลดงั กลาวไปรนั บนเคร่ืองคอมพิวเตอรทีม่ ี จาวาเวอรชัวรแมทชีน สรปุ ข้ันตอนการพัฒนาโปรแกรมดวยภาษาจาไดแสดงดังภาพ 1.2

หน่วยที่ 2 องคป์ ระกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลยี วสกลุ โกวทิภาพที่ 1.2 กระบวนการพฒั นาภาษาจาวา ทมี่ า (About the Java Technology, 2014) ใช้ Notepad เขยี น ใช้แฟ้ ม javac.exe ใช้แฟ้ ม java.exe แสดงผลลพั ธ์ Source Code Compile โปรแกรม(FileName.java) Byte Code คำสงั่ (Output) (FileName.class) javac FileName.java คำสงั่ java FileName ดวยจาวาเวอรชัวนแมทชนี มีความสามารถนามาใชกบั ระบบปฏิบัตกิ ารที่แตกตางกันได้ โดยใชคลาสท่ีคอมไพลตวั เดียวกัน นามาทางานบนระบบของไมโครซอฟทวินโดว (Microsoft Windows) ระบบโซลารสิ(Solaris) หรือ ระบบยนู กิ ส (Unix) รวมทั้งระบบของแม็ค (Mac) ได ดงั แสดง ในภาพท่ี 1.3 ภาพที่ 1.3 แสดงระบบจาวาเวอรชวั นแมทชนี ท่ีสามารถใชไดทุกระบบปฏิบตั กิ าร ท่ีมา (About the Java Technology, 2014)2.6 โครงสร้างของภาษาจาวา โดยท่ัวไปโครงสร้างของภาษาจาวา ประกอบไปดว้ ยสว่ นตา่ ง ๆ ดังตอ่ ไปนี้ [Package] Class { [การประกาศคณุ ลกั ษณะ] [Method] { Statements } }

หน่วยท่ี 2 องคป์ ระกอบของโปรแกรมภาษาคอมพวิ เตอร์ (ภาษาจาวา) : นางสาวชูศรี เกลยี วสกลุ โกวทิ 2.6.1 แพ็คเกต (Package) เป็นกลมุ่ ของคลาสหรือไลบราร่มี าตรฐานของภาษาจาวา ท่ีมีฟังก์ชนั ตา่ งๆให้ใช้มากมาย โดยมีรูปแบบดังนี้ 2.6.2 คลาส (Class) ในโปรแกรมภาษาจาวาประกอบดว้ ยคลาสอยา่ งน้อยหนงึ่ คลาส ซ่งึ ในส่วนของการประกาศคลาส จะต้องประกาศคลาสใหช้ ื่อตรงกบั ไฟลเ์ สมอ นอกจาก Inner คลาสท่ีอยูใ่ นคลาสเดยี วกัน โดยชอ่ืคลาสน้นั ควรจะขึน้ ตน้ ดว้ ยตวั ใหญ่ และถ้ามหี ลายคาให้ใชต้ ัวพิมพใ์ หญแ่ บง่ คานัน้ ๆ โดยมีรปู แบบดงั นี้ [modifier] class Classname { [class member] } modifier คอื คยี เ์ วิร์ดของภาษาจาวาที่ใชใ้ นการอธบิ ายระดับการเขา้ ถงึ (access modifier) class คอื คยี ์เวิร์ดของภาษาจาวาเพอื่ ระบุวา่ เปน็ การประกาศคลาส Classname คือช่อื คลาส class member คอื เมธอดหรือคณุ ลักษณะ ตวั อยา่ ง [public] class Students { } 2.6.3 การประกาศคุณลกั ษณะ เป็นคณุ ลักษณะของออปเจ็ค คือตัวแปรหรือค่าคงทซ่ี ่ึงประกาศภายในออปเจ็ค โดยมีรปู แบบ การประกาศดังน้ี [modifier] dataType attributeName; modifier คือ คยี เ์ วิร์ดของภาษาจาวาท่ีอธบิ ายคุณสมบัติต่าง ๆ ของตวั แปรหรือคา่ คงท่ี dataType คือ ชนดิ ขอ้ มลู ซงึ่ อาจเปน็ ชนิดข้อมลู พ้ืนฐานหรือ ชนิดคลาส attributeName คือ ช่ือของคณุ ลักษณะ ตวั อย่าง public class Students { public String id; public String name; public double gpa; } 2.6.4 เมธอด (Method) หลงั จากคลาสสรา้ งแลว้ จะเป็นประกาศเมธอดภายในคลาส มีรูปแบบดังนี้ [modifier] return_type methodName([arguments]) { [method_body] } modifier คอื คยี เ์ วริ ด์ ของภาษาจาวาท่ใี ช้ในการอธิบายระดับการเข้าถงึ (access modifier) return_type คือ ชนิดข้อมลู ของค่า ที่จะมกี ารส่งกลับ methodName คือ ช่ือของเมธอด arguments คือ ตัวแปรทใี่ ช้ในการรับข้อมูล ท่ีออปเจ็คส่งมาให้ method_body คาสั่งตา่ ง ๆ ของภาษาจาวาที่อยู่ในเมธอด

หน่วยที่ 2 องค์ประกอบของโปรแกรมภาษาคอมพวิ เตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลียวสกลุ โกวิท โครงสรา้ งของโปรแกรมจาวาประยุกต์ (Java Application) ในการทจี่ ะรันโปรแกรมได้ จะต้องมเี มธอดท่ีชื่อว่า Main ซงึ่ เป็นท่แี รกสาหรับโปรแกรมจะเริ่มทางาน มรี ปู แบบดังนี้ public static void main(String args[]) { [method_body] } 2.6.5 สแตทเมนต์ (Statements) เปน็ คาสงั่ ของโปรแกรมเพอ่ื ใหโ้ ปรแกรมทางานตามตอ้ งการเชน่ System.out.println (\"Business Computer 2/.\"); ซง่ึ เป็นการแสดงผลข้อความออกทางหนา้ จอ โดยปกติโปรแกรมมกั จะมีหลายคาสัง่2.7 ตวั แปรและชนดิ ข้อมลู ในภาษาจาวา การเขียนคาส่ังตา่ ง ๆ ของภาษาจาวา จาเปน็ ตอ้ งจาข้อมลู บางอยา่ งเพ่ือใช้เขียนโปรแกรม เชน่ เมอ่ื ตอ้ งการคูณเลข 2 จานวน จะนาเลข 2 จานวน เขยี นลงบนกระดาษแลว้ จึงตั้งคูณกัน ซ่ึงกระดาษทดจะทาหน้าที่เหมือนเป็นหน่วยความจาชั่วคราว ตัวแปรในภาษาจาวามีความหมายในทานองเดียวกัน มีเพ่ือเก็บข้อมูลชั่วคราวในระหว่างการทางานของโปรแกรม และข้อมูลในตวั แปรสามารถเปลย่ี นค่าได้ 2.7.1 ตัวแปร (Variable) ตัวแปร คือ ส่ิงท่ีใช้เก็บค่าของข้อมูล โดยมีการต้ังช่ือให้กับตัวแปรเพ่ืออ้างอิงตาแหน่งบนหน่วยความจา เป็นที่เก็บข้อมูลต่าง ๆ ท่ีเราต้องการใช้ในการประมวลผล ตัวแปรแต่ละตัวสามารถเก็บค่าข้อมูลได้เพียงหน่ึงค่าเท่าน้ัน ซ่ึงค่าข้อมูลในตัวแปรสามารถเปลี่ยนแปลงได้ตลอดเวลา ดูภาพรวมของตัวแปรและขอ้ มูลได้ตามรูปท่ี 4.1หน่วยความจา ชนิดข้อมลู ต่าง ๆ เช่นตวั อกั ษร, ข้อความ, ตวั เลข เป็ น ต้นตัวแปร ข้อมูล รูปท่ี 4.1 ภาพรวมของตวั แปร 2.7.1.1 กฎเกณฑ์การตัง้ ชือ่ ตัวแปร 1.) ตอ้ งข้ึนต้นดว้ ยตวั อกั ษรและหา้ มเว้นวรรค โดยประกอบด้วยตวั เลข ตวั อักษร(letter), เคร่อื งหมาย _ (Underscore) หรอื เครือ่ งหมาย $ (Dollar sign) และสามารถต้ังชือ่ ให้มคี วามยาวเทา่ ใดก็ได้ 2.) หา้ มใช้อักษรพิเศษอ่นื ๆ เช่น +, -, *, &, %, # ฯลฯ เปน็ ส่วนประกอบอยภู่ ายในช่ือได้

หน่วยท่ี 2 องคป์ ระกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลียวสกลุ โกวทิ 3.) ตอ้ งไมซ่ ้ากบั คาสงวน (Reserved Words) คาส่ัง (Statement) และฟังกช์ ัน่ (Function) 4.) ตัวอกั ษรตัวใหญ่และตวั เล็ก ถือวา่ มีความแตกต่างกัน 2.7.1.2 คาสงวนในภาษาจาวา (Reserved Words) คาสงวนหรอื คยี ์เวริ ์ด (Keyword) เปน็ คาทีภ่ าษาจาวา สงวนไวใ้ ช้เป็นคาสงั่ ไม่สามารถนาคาเหล่านี้ไปประกาศเปน็ ช่ือตวั แปร, เมธอด และคลาสได้ เพราะวา่ คีย์เวิรด์ ถกู ใชโ้ ดยคอมไพเลอรเ์ พ่อื ให้โปรแกรมภาษาจาวาสามารถทางานไดส้ มบรู ณ์ลสิ ตข์ องคีย์เวิรด์ ในภาษาจาวา (Keywords list in Java)49 Reserved ใน Javaenum assert boolean break byte case catch char else extends abstract implements import package privateclass const continue default do double super switch void volatilefinal finally float for goto ifinstanceof int interface long native newprotected public return short static strictfpsynchronized this throw throws transient trywhile 2.7.1.3 การประกาศคา่ ตัวแปร รูปแบบการประกาศ datatype ชื่อตัวแปร; ตวั อยา่ ง int Num1, Num2; float value1, value2 รปู แบบการประกาศค่าตวั แปรออปเจ็ค ออปเจ็คทุกออปเจ็คในโปรแกรมภาษาจาวาจะต้องมีคาส่ังประกาศ เพ่ือระบวุ ่าออปเจ็คนน้ั เปน็ ออปเจ็คของคลาสใด โดยมีรปู แบบการประกาศดงั นี้ [modifier] ClassName objectName; modifier คือ คีย์เวิร์ด ท่ีอธิบายคณุ สมบัติต่าง ๆ ของออปเจ็ค ClassName คือ ชื่อของคลาสสาหรับออปเจ็คนนั้ objectName คือ ช่ือของออปเจ็ค ตวั อย่าง Student s1;

หนว่ ยท่ี 2 องค์ประกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลยี วสกลุ โกวิท รปู แบบการสร้างออปเจ็ค คาสั่งใช้ในการสร้างออปเจ็คจะมีรูปแบบดังนี้ objectName = new ClassName([arguments]); objectName คือ ช่ือของออปเจ็ค new คือ คีย์เวิรด์ ของภาษาจาวาเพ่ือใช้ในการสร้างออปเจ็ค ClassName คือ ช่ือของคลาส arguments คือ คา่ ทตี่ ้องการส่งผ่านในการเรียก Constructor ตวั อย่าง s1 = new Student(); รูปแบบการประกาศค่าตวั แปร พรอ้ มกับการสร้างออปเจ็ค คาสั่ง ในการประกาศค่าตวั แปรและการสร้างออปเจ็ค สามารถที่จะรวมเปน็ คาส่ังเดยี วกนั โดยมีรปู แบบคาส่ังดังนี้ [modifier] ClassName objectName = new ClassName([arguments]); ตวั อย่าง Studejnt s1 = new Student(); การเรียกใช้สมาชิกของออปเจ็ค การเรยี กใช้คุณลักษณะของออปเจ็คมีรปู แบบดังนี้ objectName.attributeName; การเรียกใช้เมธอดของออปเจ็คมีรปู แบบดังน้ี objectName.methodName([arguments]); objectName คอื ชือ่ ของออปเจ็คทสี่ ร้างขนี้ methodName คือ ช่ือของเมธอดของออปเจ็คนน้ั arguments คือ คา่ ทตี่ ้องการส่งผ่านไปให้กับเมธอดของออปเจ็คน้ัน ตวั อย่าง s1.setName(\"Thana\"); 2.7.1.4 การกาหนดคา่ ใหต้ วั แปร (Assignment) 1) ใช้เครอื่ งหมาย = เรียกวา่ Assignment operator นาคา่ ทางขวามือของเคร่ืองหมาย = มาเกบ็ ทางซ้ายมือของเครือ่ งหมาย = ตวั อยา่ ง number = 2; area = PI*r*r; 2) การใช้ final ในการกาหนดคา่ ใหก้ บั ตวั แปร เปน็ การประกาศตัวแปร ทต่ี ัวแปรนัน้ ๆ จะไม่สามารถมคี ่าอื่นๆได้อีก ไมว่ า่ จะเป็นการเปลีย่ นคา่ ภายในโปรแกรม หรือการเปลยี่ นแปลงทีเ่ กดิ จากการใส่ขอ้ มลู ใหม่ผ่านทางคีย์บอรด์ การใช้ final

หน่วยที่ 2 องคป์ ระกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชูศรี เกลยี วสกลุ โกวิทจะทาให้โปรแกรมมีความแมน่ ยาและมั่นคงมากยงิ่ ข้ึน การทาจะเปล่ยี นคา่ เหลา่ น้ีไม่สามารถทาได้ ทาใหก้ ารออกแบบและพฒั นาโปรแกรมมีประสทิ ธภิ าพ ลดข้อผดิ พลาดทอี่ าจจะเกดิ จากโปรแกรมเมอร์เอง 2.7.1.5 อายุ และขอบเขตการใชง้ าน (life-time- and scope) ของตวั แปร หลงั จากทีม่ ีการประกาศใช้ตัวแปรใดๆ ในโปรแกรม ตวั แปรเหล่าน้จี ะมขี อบเขต หรอือายกุ ารใชง้ านตามลกั ษณะการประกาศตวั แปรของผู้เขียนโปรแกรมเอง โดยตัวแปรจะมีอายุการใช้งานตามเนื้อท่ี(block) ทีต่ ัวแปรเหล่านน้ั ปรากฏอยู่ ซงึ่ จะอย่ใู น เคร่ืองหมาย { } 2.7.2 ชนดิ ของข้อมลู (Data Type) ในการเขยี นโปรแกรมด้วยภาษา Java เช่นการประกาศตัวแปร หรอื กาหนดคา่ ข้อมลู ต่างๆ ตอ้ ง ระบชุ นดิ ขอ้ มลู อยา่ งชัดเจน โดยชนดิ ขอ้ มูลในภาษาจาวามี 2 ประเภท คือ 2.7.2.1 ชนดิ ข้อมลู แบบพนื้ ฐาน (primitive data type) หมายถงึ ชนดิ ข้อมูลที่สามารถเก็บข้อมูลท่เี ปน็ ข้อมูลท่วั ไปหรือข้อมลู พน้ื ฐาน มีทงั้ หมด8 ตวั ข้อมูลโดยแบง่ ออกเปน็ 4 ประเภท ประกอบด้วย 1) ชนิดข้อมลู จานวนเต็ม (Integer) เปน็ ชนิดขอ้ มูลท่ใี ชเ้ กบ็ ข้อมลู ตวั เลขจานวนเต็มในทางคณติ ศาสตร์ ชว่ งของข้อมลู ขึ้นอยขู่ นาดของตัวแปรท่ีประกาศ ประกอบด้วย 4 ชนิด ได้แก่ long, int,short และ byte 2) ชนดิ ข้อมูลจานวนทศนยิ ม(Floating Point) ประกอบด้วยขอ้ มูลทเ่ี ปน็ ตัวเลขทศนิยม เชน่ 1200.578 การเขยี นโปรแกรมดว้ ยภาษาจาวาจะประกาศตัวแปรดว้ ย 2 ชนิดได้แก่ double และ float 3) ชนิดข้อมูลอักขระ(Character) จะต้องประกาศตวั แปรด้วยคาว่า char คือการเกบ็ขอ้ มลู เป็นตวั อกั ษร หรอื อักขระบนแปน้ พมิ พไ์ ด้เพยี ง 1 ตัวอักขระ ซึ่งในภาษา Java จะเก็บข้อมลู อักขระอยู่ในรูปแบบของรหัสแอสกี (ASCII Code) หรือรปู แบบมาตรฐาน Unicode ขนาด 16 บติ การกาหนดค่าข้อมลูอักขระจะอยู่ในเครอื่ งหมาย ‘ ’ โดยจะข้นึ ตน้ ด้วยสญั ลกั ษณ์ \u และตามดว้ ยเลขฐานสิบหก(HexadecimalNumber) โดยมคี ่าตัง้ แต่ ‘\u0000’ ถึง ‘\uFFFF’ หรือกาหนดค่าข้อมลู อักขระด้วยตัวอักขระบนแป้นพิมพ์ตัวอยา่ งเช่น ‘A’, ‘x’, ‘$’ หรอื ‘1’ เปน็ ตน้ ตัวอยา่ งการประกาศชนิดข้อมูลอักขระ เชน่ char grade= ‘A’; char grade= ‘\u0041’; เปน็ การประกาศตวั แปรท่มี ชี ่ือวา่ grade เปน็ ชนดิ ขอ้ มลู อักขระ มีการกาหนดคา่ เร่ิมตน้ เปน็ ตัวอักษร A ซ่ึงมีคา่ เป็นเลขฐานสบิ หก คือ 004 4) ชนิดขอ้ มลู ตรรกะ (Logical Data) ชนดิ ขอ้ มูลตรรกะจะตอ้ งประกาศตวั แปรดว้ ยคาวา่ boolean ซึ่งเป็นข้อมูลทม่ี คี วามจริงเปน็ จริง (true) หรอื เท็จ (false) ได้เพยี ง 1 ค่าเท่านั้น ใชใ้ นการตดั สนิ ใจในเงื่อนไขของคาสง่ั ควบคุม หรอื คาส่ังเก่ยี วกบั ตรรกะของโปรแกรม ตัวอยา่ งการประกาศชนิดขอ้ มลูตรรกะ เช่น boolean flag = false; เปน็ การประกาศตวั แปรที่มชี ่ือวา่ flag เป็นชนิดขอ้ มูลตรรกะ มีการกาหนดค่าเร่ิมต้นเป็น false

หน่วยท่ี 2 องคป์ ระกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลียวสกลุ โกวิท ชนดิ ข้อมูลแตล่ ะประเภทจะมีขนาดและช่วงคา่ ของข้อมลู แตกต่างกัน สามารถสรปุ ชนดิ ข้อมลูขนาดและชว่ งค่าของข้อมลู ได้ดังนี้ชนดิ ข้อมูล ขนาด (bit) ค่าท่ีเกบ็ ได้ ค่าเริม่ ต้น(Default)Byte 8 -128 ถงึ 127 0Short 16 -32768 ถงึ 32767 0Int 32 -2147483648 ถึง 2147483648 0Long 64 -9223372036854775808 ถงึ 0L 9223372036854775808Float 32 -3.4E38 ถึง 3.4E38 0.0FDouble 64 -1.7E308 ถึง 1.7E308 0.0Char 16 ใช้เก็บอักขระทมี่ รี หัสต้งั แต่ 0 ถงึ 65535 \u0000boolean JVM กาหนด true หรอื false false 2.7.2.2 ชนิดขอ้ มูลแบบอา้ งอิง (reference data type) มีความแตกต่างกับชนดิ ข้อมลู พืน้ ฐาน ทีว่ า่ ชนิดข้อมูลชนิดนีอ้ ย่ใู นรูปแบบหนง่ึ ซึ่งการเข้าถึงหรอื ใชง้ านข้อมูลเป็นการอา้ งถงึ มากกว่าการเขา้ ถึงขอ้ มลู โดยตรง เกบ็ ข้อมลู ไว้ 2 ส่วน คือ – Execution Stack เก็บค่าอา้ งองิ ที่ชีไ้ ปยัง Heap memory – Heap Memory เก็บข้อมูลทีเ่ รียกว่าออปเจค็ ที่สรา้ งข้ึนมาจากคลาส ชนดิ ข้อมูลท่ีมีการอา้ งอิง ตาแหนง่ ในหนว่ ยความจา ได้แก่ข้อมูลของคลาส เช่น String และขอ้ มูลแบบอาเรย์ชนดิ ขอ้ มลู ขนาด (bit) ค่าทีเ่ ก็บได้ ค่าเริม่ ตน้ (Default)String null2.7.3 ตวั อกั ขระพเิ ศษ (Escape Sequence) เป็นการแสดงข้อมลู อักขระบนแป้นพิมพท์ ใี่ ช้แทนการข้ึนบรรทดั ใหม่หรือตัวอกั ขระพิเศษในการเขยี นโปรแกรม ตวั อกั ขระพิเศษ รหัส Unicode ความหมาย\b \u000B Backspace ลบอักขระตาแหนง่ เคอร์เซอร์\t \u0009 Tab การเวน้ ชอ่ งว่างตามระยะ\n \u000A New Line การขึ้นบรรทดั ใหม่\r \u000D Return การขนึ้ บรรทดั ใหม่\\ \u005C Backslash แสดงตัวอกั ขระ \\‘ \u0027 Single Quote แสดงตวั อักขระ ‘\“ \u0022 Double Quote แสดงตัวอักขระ “

หน่วยท่ี 2 องค์ประกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลยี วสกลุ โกวทิ 2.7.4 การเปล่ียนแปลงชนิดของข้อมูล (casting) ใช้แปลงชนิดข้อมูล จากชนดิ หนงึ่ เปน็ อกี ชนดิ ได้ โดยไมส่ นใจขนาด แต่ถ้า cast ขอ้ มลูทมี่ ขี นาดใหญ่ไปสู่ข้อมูลทีม่ ี ขนาดเล็ก จะทาให้สูญเสยี ค่าความเปน็ จรงิ ของข้อมลู นัน้ ได้ ดงั นั้นการประกาศคา่ ตัวแปรและcast ต้องทาดว้ ยความระมดั ระวัง รปู แบบ (target_type) varvalue ตวั อยา่ ง float price = 15.254f; int numint numint = (int)price; 2.7.4.1 การแปลงค่าระหว่าง int และ String รปู แบบ ตัวแปรแบบ Int = Integer.parseInt(ตัวแปรแบบString) ตัวอยา่ ง int num1; String x = “10”; num1 = Integer.parseInt(x) // num1มคี ่าเท่ากับ 10 2.7.4.2 การแปลงคา่ ระหวา่ ง double และ String รปู แบบ ตวั แปรแบบ double = Double.parseDouble(ตัวแปรแบบ String) ตวั อยา่ ง double num1; String x = “10.4”; num1 = Double.parseDouble(x) // num1มีคา่ เท่ากับ 10.4 2.7.4.3 การแปลงค่าระหว่าง String และ int รูปแบบ ตวั แปรแบบ String = Integer.toString (ตัวแปรแบบ int) ตวั อยา่ ง int num1 = 33; String x; x = Integer.toString(num1) // x มคี า่ เท่ากับ “33”2.8 ค่าคงท่ี (constants) ในภาษาจาวา

หนว่ ยที่ 2 องคป์ ระกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชูศรี เกลียวสกลุ โกวทิ ค่าคงท่ี คือตัวแปรท่ใี ช้อ้างอิงขอ้ มลู ของคา่ ๆ หนึ่งท่ีไม่ถกู เปล่ยี นแปลง และไม่สามารถเปลยี่ นแปลงได้การใชค้ ่าคงท่ีนน้ั มีประโยชนใ์ นการเขียนโปรแกรม มันสามารถทาเข้าใจได้ว่าตัวแปรหรือคา่ นัน้ หมายถึงอะไรยกตวั อยา่ งเช่น เม่ือเราอยากจะบอกถงึ แรงโน้มถว่ งของโลก เรามักจะพูดวา่ ค่า g (gravity) เรามกั จะไม่พดู วา่ ค่า9.8 ถงึ แมว้ ่ามันมีค่าเท่ากบั 9.8 ก็ตาม แนวคิดน้ีได้นามาใช้สาหรับการสร้างค่าคงที่ในการเขียนโปรแกรมภาษาจาวาเช่นกัน สาหรบั รปู แบบในการประกาศค่าคงทนี่ น้ั คลา้ ยคลงึ กับการประกาศตวั แปรทว่ั ไป แตจ่ ะขน้ึ ต้นด้วยคาสัง่ final เพ่อื บอกคอมไพเลอร์ว่าเป็นคา่ คงท่ี final dataType constantName = value; ในการประกาศค่าคงท่ี ต้องกาหนดคา่ เสมอ และไมส่ ามารถเปลยี่ นแปลงค่าไดภ้ ายหลงั ไมเ่ ช่นน้นัการคอมไพลโ์ ปรแกรมจะมีข้อผดิ พลาด2.9 ตัวดําเนนิ การ (Operators ในภาษาจาวาในการเขียนโปรแกรมภาษาจาวาประกอบด้วย2.9.1 ตัวดาเนินการทางคณติ ศาสตร์ (Arithmetic Operator) เป็นตวั ดาเนินการทจ่ี าลองมาจากสมการทางคณติ ศาสตร์ โดยในภาษาจาวาจะใช้เครือ่ งหมายตา่ งๆ แทนตวั ดาเนินการทางคณิตศาสตรด์ งั น้ีตารางของตัวดาเนินการทางคณติ ศาสตร์ในภาษาจาวาSymbol Name Example+ Addition c = a + b- Subtraction c=a-b* Multiplication c=a*b/ Division c = a / b% Modulo c=a%b 2.9.1.1 กฎในการเรียงลาดับการคานวณของตัวดาเนินการทางคณิตศาสตร์ ดงั นี้ 1) คานวณสมการที่อยูภ่ ายในวงเล็บก่อนเป็นอนั ดับแรก โดยเริม่ จากวงเลบ็ ในสุด 2) ถ้าสมการท่เี หลือไม่มวี งเล็บแล้ว จะเรียงลาดบั ดงั น้ี - คูณ, หาร และ mod จะถกู คานวณก่อน โดยมคี วามสาคัญอย่ใู นระดับเดยี วกันถา้ มหี ลายตวั จะเรม่ิ คานวณจากซ้ายไปขวา - บวก และ ลบ จะถูกคานวณเปน็ ลาดบั ถดั มา โดยมีความสาคญั อยู่ในระดับเดียวกัน ถ้ามหี ลายตวั จะเรมิ่ คานวณจากซ้ายไปขวา 2.9.1.2 Compound assignment ถูกใช้เพ่ืออพั เดทค่าของตวั แปรจากคา่ เดิมของมันท่ีมีอยู่ โดยมันจะเปน็ รปู แบบย่อของตวั ดาเนินการแบบ Arithmetic Operator และตวั ดาเนนิ การ Bitwise operators เพ่ือใหเ้ ขยี นไดร้ วดเรว็ และลดความผดิ พลาดในการเขียนโปรแกรมได้มากกว่า

หนว่ ยที่ 2 องค์ประกอบของโปรแกรมภาษาคอมพวิ เตอร์ (ภาษาจาวา) : นางสาวชูศรี เกลยี วสกลุ โกวทิตารางของตวั ดาเนินการ Compound assignment ในภาษาจาวา Operator Example Equivalent to += a += 2; a = a + 2 -= a -= 2; a = a - 2 *= a *= 2; a = a * 2 /= a /= 2; a= a / 2 %= a %= 2; a = a % 2 >>= a >>= 2; a = a >> 2 <<= a <<= 2 a = a << 2 &= a & = 2; a=a&2 ^= a ^= 2; a= a ^ 2 |= a |= 2; a = a | 2 2.9.1.3 Increment and decrement ตวั ดาเนนิ การต่อไปท่ีใชบ้ อ่ ยในการเขยี นโปรแกรมก็คือ Increment Operator (ตวัดาเนินการเพ่ิมคา่ ) และ Decrement Operator (ตวั ดาเนินการลดค่า) มันถูกใช้เพ่ือเพ่ิมหรอื ลดค่าของตวั แปรคร้ังละ 1 โดยแบง่ ออกได้เป็นดังน้ีตารางของตวั ดาเนนิ การเพิ่มค่าและลดค่าในภาษา Java Operator Example Equivalent to ++ (prefix) ++a; a = a + 1; ++ (posfix) a++; a = a + 1; -- (prefix) --a; a = a - 1; -- (postfix) a--; a = a - 1;2.9.2 ตัวดาเนินการเปรยี บเทียบ (Equality and Relational Operator) ใช้สาหรับเปรยี บเทยี บคา่ 2 คา่ และจะ return ค่าออกมาเปน็ boolean (true/false) ถ้าหากนพิ จนเ์ ป็นจรงิ ก็จะให้ค่า true ถา้ นิพจนเ์ ป็นเท็จ กจ็ ะใหค้ ่า false ขอ้ ควรจา - เคร่ืองหมายทมี่ ี 2 ตัว จะต้องเขยี นติดกนั เสมอ - เคร่ืองหมาย >= (มากกว่าหรือเทา่ กับ) และ <=(น้อยกวา่ หรอื เท่ากับ) จะต้องเขยี นเคร่ืองหมายเทา่ กบั ไวด้ า้ นขวาเสมอตารางของตัวดาเนนิ การเปรยี บเทยี บในภาษาจาวาOperater Example Result== a == b true if a equal to b, otherwise false!= a != b true if a not equal to b, otherwise false< a<b true if a less than b, otherwise false

หนว่ ยท่ี 2 องค์ประกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลียวสกลุ โกวิท> a > b true if a greater than b, otherwise false<= a <= b true if a less than or equal to b, otherwise false>= a >= b true if a greater than or equal to b, otherwise false2.9.3 ตัวดาเนินการทางตรรกะ (Logical Operator) เมื่อต้องการตรวจสอบตัวดาเนนิ การเชิงเปรียบเทียบหลายๆ อนั จะใชต้ วั ดาเนนิ การทางตรรกะในการตรวจสอบOperator Name Example! Not ! true&& And true && true|| Or true || false โดยตัวดาเนินการตรรกศาสตรจ์ ะใช้เปรียบเทียบกับค่าสองค่า ยกเว้นตวั ดาเนนิ การ Notค่าท่นี ามาเป็นประเมนิ นนั้ จะตอ้ งเปน็ Boolean และผลลัพธ์ทไ่ี ดจ้ ะเป็น Boolean เช่นกนัตารางค่าความจริงของตวั ดาเนินการตรรกศาสตร์ NotValue 1 Expression Resulttrue ! true falsefalse !false trueตวั ดาเนนิ การทางตรรกศาสตร์ Not จะกลบั ค่าจาก true เปน็ false และในทางกลบั กนัตารางค่าความจรงิ ของตัวดาเนนิ การตรรกศาสตร์ AndValue 1 Value 2 Expression Resulttrue true true && true truetrue false true && false falsefalse false false && false falseตวั ดาเนินการทางตรรกศาสตร์ And ถ้า expression ย่อยทง้ั สองเปน็ true จะได้ผลลพั ธ์เปน็true นอกเหนือจากนั้นจะได้ผลลพั ธเ์ ปน็ falseตารางค่าความจริงของตวั ดาเนนิ การตรรกศาสตร์ OrValue 1 Value 2 Expression Resulttrue true true || true truetrue false true || false truefalse false false || false falseตวั ดาเนินการทางตรรกศาสตร์ Or ถา้ expression ย่อยอย่างน้อยหนึ่งตวั เป็น true จะได้ผลลพั ธเ์ ป็น true นอกเหนือจากนนั้ จะได้ผลลพั ธ์เป็น false

หน่วยที่ 2 องคป์ ระกอบของโปรแกรมภาษาคอมพวิ เตอร์ (ภาษาจาวา) : นางสาวชูศรี เกลยี วสกลุ โกวทิ ตวั ดาเนนิ การประเภทนีจ้ ะให้ผลลพั ธ์ออกมาเป็นค่าทางลอจิก คอื เป็นจริง (true) หรอื เป็นเทจ็(false) อยา่ งใดอยา่ งหน่งึ เทา่ น้ัน ตัวดาเนนิ การประเภทนี้ยังแบง่ ออกเป็นตัวดาเนินการแบบสัมพนั ธ์ ตัวดาเนนิ การทางตรรกศาสตร์ และตวั ดาเนนิ การระดับบิต 2.9.4 ตัวดาเนนิ การระดบั บติ (Bitwise operator) ตัวดาเนนิ การประเภทนีจ้ ะกระทากบั ข้อมูลแบบบติ ต่อบติ เชน่ การกระทาลอจิก AND, OR,NOT หรอื เลื่อนบิตแบบบิตต่อบติ เปน็ ตน้ ตวั ดาเนินการประเภทน้ีแสดงได้ดังตารางท่ี3.3ตารางท่ี3.3 ตวั ดาเนินการระดบั บติตัวดาเนนิ การ Description ชอ่ื ตวั อยา่ ง ผลลพั ธ์& Bitwise AND AND 4&7 4| Bitwise inclusive OR OR 4|7 7~ Bitwise exclusive OR NOT ~4 -5^ bit inversion Exclusive-OR 4^7 3>> Shift bits left เลอ่ื นบติ ไปทางขวา 7 >> 1 3>>> เล่อื นบิตแบบไม่คิดเครื่องหมาย -3 >>> 1 -2<< Shift bits left เล่ือนบติ ไปทางซ้าย 7 << 1 14 ตัวอย่าง ถา้ หากมกี ารประกาศตวั แปรดงั ต่อไปนี้ Byte a=4 , b=7 จงหาคา่ ของ a & b, a | b, a ^b และ b >> 1 วิธที า การประกาศตวั แปรดังกล่าวจะทาใหค้ า่ ของ a และ b เป็นดงั นี้ A = 0000 0100 B = 0000 0111 ดงั น้นั a & b หาได้จาก 0000 0100 AND กนั ตรงๆแบบบติ ต่อบิต 0000 0111 0000 0100 มคี า่ เท่ากบั 4 A | b หาไดจ้ าก 0000 0100 0000 0111 0000 0111 มคี ่าเท่ากบั 7 A ^ b หาไดจ้ าก 0000 0100 0000 0111 0000 0011 มีคา่ เท่ากบั 3 B >> 1 0000 0111 0000 0011 เลื่อนไปทางขวาหนึง่ บิตจะเท่ากบั 3 ลาดบั การทางานของตวั ดาเนินการ

หนว่ ยที่ 2 องค์ประกอบของโปรแกรมภาษาคอมพิวเตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลียวสกลุ โกวิท ในนิพจนต์ ่างๆ อาจมีตัวดาเนนิ การประกอบอยูม่ ากว่าหนงึ่ ตวั การหาผลลพั ธข์ องนพิ จน์คอมไพเลอร์จะต้องพิจารณาว่าจะทาตวั ดาเนนิ การใดก่อนหลงั ในภาษาวาจามกี ารจดั ลาดับความสาคญั ของตวัดาเนนิ การดังตวั อย่างที่3.4 โดเยเรียงลาดับความสาคัญจากบนลงลา่ งตารางท่ี3.4 ลาดับความสาคัญของตวั ดาเนนิ การ ลาดบั ตัวดาเนินการ เรียงจาก 1 ( ) , ( data type ) ซ้ายไปขวา 2 ! , ~ , - , + , - - , ++ ซา้ ยไปขวา 3 *, / , % , + , - , << , >> , >>> ซา้ ยไปขวา 4 < , > , <= , >= , == , != ซ้ายไปขวา 5 & , ^ , | , && , | | ซา้ ยไปขวา 6 != , ^= , &= , >>>= , >>= , <<= ซา้ ยไปขวา ,%= , /= , *= , -= , += , = จากตารางจะเห็นวา่ ลงเล็บจะมีลาดับความสาคญั สงู สุด ส่วนตวั ดาเนนิ การทใ่ี ชส้ าหรับกาหนดค่าจะมีลาดับความสาคัญตา่ สุด ถ้าหากมีตัวดาเนนิ การทีม่ ลี าดบั ความสาคัญเทา่ กนั อยูใ่ นนิพจน์เดยี วกนัลาดับความสาคญั จะเรียงจากซา้ ยไปขวา ในการเขียนโปรแกรมถา้ หากมีการประมวลผลซบั ซ้อนผูเ้ ขยี นโปรแกรมควรใส่วงเล็บใหป้ ระมวลผลก่อน เพ่ือป้องกนั การสับสนตวั อยา่ ง นิพจนต์ ่อไปน้ีเปน็ การใช้ตัวดาเนินการหลายๆ ตวั ในนพิ จนเ์ ดยี วกนันพิ จน์ การทางานX > y && a < b ตรวจสอบวา่ x มากว่า yและ a นอ้ ยกว่า b จริงหรือไม่X == y | | x == z ตรวจสอบว่า x เทา่ กบั y หรอื x เท่ากบั z จริงหรอื ไม่!( x > y ) ตรวจสอบว่า x มากกว่า y ไม่จรงิ ใชห่ รือไม่18 / 3*4 ตัวดาเนนิ การอยลู่ าดบั เดยี วกันจะเรียงจากซ้ายไปขวา ได้ค่าเป็น 2418 % 3*4 ตัวดาเนนิ การอยลู่ าดับเดยี วกันจะเรยี งจากซ้ายไปขวา ไดค้ ่าเป็น 0( 15+9 ) / ( 3+1 )*2 จะคานวณ 24 / 4*2 ได้คา่ เป็น 122.10 การใช้ Comment การคอมเมนต์นัน้ จะเป็นคาสัง่ ที่ไม่มผี ลต่อการทางานของโปรแกรม แตเ่ ปน็ การทาเครอื่ งหมายสาหรบั ให้ผเู้ ขียนโปรแกรมอธบิ ายเพมิ่ เติมหรือป้องกนั ในกรณีท่อี าจจะเกิดการลมื ได้ และคอมไพเลอร์จะเพกิ เฉยตอ่ คอมเมน้ ต์ มนั ใชส้ าหรบั มนุษยเ์ ท่านั้น นอกจากนี้คอมเมนตย์ ังมีประโยชน์มากในกรณีทีโ่ ค้ดโปรแกรมมจี านวนมากข้างล่างเปน็ ตัวอย่างการคอมเมน้ ตใ์ นภาษา Java // Single line comment

หน่วยที่ 2 องคป์ ระกอบของโปรแกรมภาษาคอมพวิ เตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลียวสกลุ โกวทิ /* Multiline comment1 Multiline comment2 */ การคอมเม้นต์มีสองแบบคือ Single line และ Multiline โดยแบบ Single line ใช้เครอ่ื งหมาย // และตามสิง่ ทต่ี ้องการคอมเม้นต์ และสาหรับการคอมเมน้ ต์แบบหลายบรรทัดใช้เคร่ืองหมาย /* ตามดว้ ยคอมเมน้ ต์และส้นิ สดุ ที่ */2.11 Semicolon ทกุ คาสัง่ การทางานของโปรแกรมในภาษา Java จะจบดว้ ยเครื่องหมาย Semicolon (;) น่ันหมายความวา่ คณุ สามารถเขียนโปรแกรมแบบไหนก็ได้ โดยคอมไพเลอร์จะทราบอัตโนมตั ิว่าส้นิ สุดคาส่งั ที่ไหน เชน่ int a = 1; int b = 2; int c = 3; System.out.println( a+b+b ); แนะนาให้เขยี นคาสง่ั ละ 1 บรรทัด เพราะมนั เปน็ วิธที ด่ี ี และทาใหโ้ ค้ดอ่านง่ายและเปน็ ระเบียบ2.12 White space ในภาษาจาวาสามารถใช้ White space ไดอ้ ย่างอิสระตามที่ตอ้ งการ โดย White space จะประกอบด้วย Space bar Tab และ Enter (return) เพราะว่าคอมไพเลอร์ตรวจการส้ินสุดของคาสง่ั ด้วย ; ใช้while space ทาให้โคด้ อ่านเขา้ ใจงา่ ย และเปน็ ระเบียบ ตัวอยา่ ง int x = 1; int y = 2; int z = 3; จากตัวอย่างน้นั เปน็ การประกาศตัวแปรท่ถี ูกต้อง แนะนาแบบตัวแปร x2.13 Literals คอื ค่าของข้อมูลใดๆ ที่กาหนดใหก้ บั ตวั แปรได้ เราเรยี กมนั วา่ Constant Literals ทกุ ค่าท่ีเป็นไปได้เชน่ \"MarcusCode\" เปน็ String Literals 10 เปน็ Integer Literals หรอื true เปน็ Boolean Literals โดยLiterals เปน็ ไดแ้ ค่ Primitive data type เท่านน้ั ตวั อยา่ งการกาหนดค่าหรือ Literals ให้กับตัวแปร int age = 18; String name = \"Marcus\"; float pi = 3.14f; double money = 45.2;2.14 Expressions

หน่วยท่ี 2 องค์ประกอบของโปรแกรมภาษาคอมพวิ เตอร์ (ภาษาจาวา) : นางสาวชศู รี เกลยี วสกลุ โกวทิ เปน็ การกระทาระหวา่ งตัวแปรกบั ตัวดาเนนิ การเพอ่ื ให้ได้ผลลัพธใ์ หม่ เชน่ 4 + 3 เปน็ expression ของการบวกเลขและได้ได้ผลลพั ธ์เทา่ กบั 7 หรอื 1 == 1 เปน็ expression ของการเปรียบเทียบระหว่างค่าสองค่าวา่เทา่ กันหรือไม่ และไดผ้ ลลัพธ์เป็น true คุณจะไดเ้ รยี นเกย่ี วกับตวั ดาเนนิ การในบทต่อไป