รู้จักกับ JAVA

1. การเขียนโปรแกรมคืออะไร


       การเริ่มต้นในการเขียนโปรแกรมด้วยภาษาจาวา ถือได้ว่าเป็นสิ่งที่มีความสําคัญที่จะต้องทําความ
เข้าใจในการโปรแกรมว่าคืออะไร และจะถูกนําไปใช้ได้อย่างไร ด้วยคนที่พัฒนาโปรแกรมเพื่อสร้างชุด
โปรแกรมหรือที่เราจะเรียกกันว่า ซอฟท์แวร์  (Software)  นั้นก็มีการประยุกต์ใช้งานกันหลายรูปแบบ
ตัวอย่างเช่น ซอฟท์แวร์ทางด้านงานออฟฟิศ ซอฟท์แวร์ที่ทํางานผ่านระบบอินเทอร์เน็ท ซอฟท์แวร์สําหรับระบบปฏิบัติการ หรือซอฟท์แวร์ทางด้านฐานข้อมูลธุรกิจ เป็นต้น
       ซอฟท์แวร์ประกอบไปด้วยชุดของคําสั่ง (Instructions) ที่จะบอกกับระบบฮาร์ดแวร์หรืออาจจะส่วน
ใดส่วนหนึ่งของระบบซอฟท์แวร์ เพื่อให้ดําเนินการตามที่ชุดคําสั่งกําหนดให้ทํางานเอาไว้ โดยตัวที่จะสร้างชุดคําสั่งเหล่านี้ จะมีรูปแบบของภาษา  (Syntax)  ที่เป็นไปตามกฏเกณฑ์ที่ได้กําหนดเอาไว้ เราจะเรียกว่า ภาษาโปรแกรม (Programming Language)  ซึ่งภาษาโปรแกรมนี้ ก็เหมือนกับภาษาธรรมชาติอื่นๆ(Natural Languages) ทั่วไป เพียงแค่ผู้เขียนโปรแกรมจะไม่มีข้อจํากัดใดๆในกรอบของความคิดและด้วยจินตนาการ ก็สามารถสร้างสรรชุดคําสั่ง จนเกิดซอฟท์แวร์ออกมาเป็นส่วนๆ จนกระทั่งได้ระบ[ซอฟท์แวร์ที่สามารถตอบความต้องการในการใช้งานนั้นๆได้อย่างมีประสิทธิภาพ แต่อย่างไรก็ตามจะไม่เหมือนกับภาษาพูด  (Spoken  Language)  เพราะภาษาโปรแกรมจะต้องยึดตามรูปแบบกฏเกณฑ์ในการเขียนและมีโครงสร้างของภาษา ตามประเภทของภาษานั้นๆ

1.1การวิเคราะห์ความต้องการ (Requirement Analysis)
       เป็นขั้นตอนของการกําหนดความต้องการของโปรแกรมการประยุกต์ตัวอย่างเช่น ความต้องการของโปรแกรมประยุกต์โดยทั่วไปอาจจะเป็น เพื่อรองรับการติดต่อกับผู้ใช้เหมือนสเปรดชีส (Spreadsheet)  หรือ การคํานวณที่แม่นยํา เที่ยงตรงในระดับเลขทศนิยม 5 ตําแหน่ง เป็นต้น ซึ่งในขั้นตอนนี้ถือได้ว่าเป็นขั้นตอนที่มีความสําคัญมากขั้นตอนหนึ่ง เพราะการวิเคราะห์ความต้องการ จําเป็นต้องให้เกิดความเข้าใจที่กระจ่างชัดเจน จึงจะทําให้การพัฒนาโปรแกรมสําเร็จได้ตามความต้องการ

1.2การออกแบบ (Design)
       ในขั้นตอนของการออกแบบ อาจจะเกิดขึ้นในระดับสูงหรือระดับล่างก็ได้ ซึ่งในขั้นตอนนี้จะ
มีหน้าที่ครอบคลุมโครงสร้างการทํางานโดยรวมของโปรแกรมประยุกต์ และอธิบายถึงการโต้ตอบ (Interaction) ของแต่ละส่วนของโปรแกรมประยุกต์

1.3การเขียนรหัสโปรแกรม (Coding)
        การเขียนรหัสโปรแกรมเป็นขั้นตอนที่ถูกแปลงจากแนวคิดที่ได้ออกแบบ เพื่อออกมาเป็นชุด
คําสั่ง  (Instruction)  ด้วยภาษาโปรแกรม ให้อยู่ในลักษณะรหัสโปรแกรม ซึ่งเรียกว่า รหัสต้น(Source Code) โดยจะผ่านขบวนการแปลงซอร์ตโค้ด (Compiling) ให้กลายเป็นชุดคําสั่งระดับต่ําหรือเรียกอีกอย่างหนึ่งว่า คําสั่งเครื่อง  (Machine  Code)  สุดท้ายเมื่อต้องการเรียกใช้โปรแกรมประยุกต์บนระบบปฏิบัติการของเครื่องคอมพิวเตอร์รุ่นนั้น จะต้องใช้ตัวแปลภาษา(Interpreter) แปลงชุดคําสั่งเครื่อง ให้สามารถทํางานอยู่บนสถาปัตยกรรมที่แตกต่างกันออกไป

1.4การทดสอบ(Testing)
        ขั้นตอนการทดสอบ จะตรวจสอบโปรแกรมประยุกต์ว่าสามารถตอบสนองความต้องการได้ครบถ้วนหรือไม่ และจะทดสอบการทํางานของโปรแกรมประยุกต์ ด้วยข้อมูลตัวอย่าง เพื่อที่จะยืนยันความถูกต้องในการใช้งานโดยผู้ใช้ ถ้าในกรณีที่เกิดความผิดพลาดในการทํางานของโปรแกรมประยุกต์ผู้พัฒนาจะต้องย้อนกลับไปขั้นตอนก่อนหน้านี้ เพื่อทําการแก้ไขข้อผิดพลาดเหล่านั้นให้ถูกต้อง จนกว่าจะทํางานได้สมบูรณ์ จนสามารถใช้งานได้จริง

2.ภาษาโปรแกรม(Programming Langueges)
         ตั้งแต่อดีตจนถึงปัจจุบันภาษาโปรแกรมเกิดขึ้นมากมายและมีความหลากหลาย โดยในแต่ละภาษาโปรแกรมก็จะมีรูปแบบการเขียนและลักษณะที่เฉพาะตัว (Unique Syntax and Semantics)  ดังนั้นบ่อยครั้งที่จะมีการแยกแยะกลุ่มของภาษาโปรแกรมออกมาเป็นสองกลุ่มใหญ่ คือกลุ่มภาษาระดับสูง (High Level) และกลุ่มภาษาระดับต่ํา (Low Level) นักพัฒนาโปรแกรมส่วนใหญ่จะใช้ภาษาระดับสูงอย่างเช่น COBOL, C/C++, Java และ FORTRAN ในการพัฒนา

       ภาษาระดับสูงจะใช้ชุดคําสั่ง (Instruction)  ที่เป็นชุดคําสั่งที่คนทั่วไปสามารถอ่านเข้าใจได้ง่ายกว่าชุดรหัสคําสั่งในระดับเครื่อง (Machine Code) ซึ่งโดยธรรมชาติแล้วภาษาระดับสูงมีความสามารถในการช่วยให้ผู้เขียนโปรแกรมทํางานได้ง่ายกว่าภาษาระดับต่ํา เนื่องจากใช้จํานวนชุดคําสั่งเพื่อที่จะทําให้โปรแกรมทํางานตามที่ได้กําหนดเอาไว้น้อยกว่าภาษาระดับต่ํามาก แม้ว่าผู้เขียนโปรแกรมด้วยภาษาระดับสูงอาจจะสามารถเข้าไปควบคุมในระดับเครื่องได้ไม่ดีเท่ากับภาษาระดับต่ําที่ใช้ชุดคําสั่งในระดับใกล้เคียงกับการทํางานภายในเครื่อง แต่นักพัฒนาส่วนใหญ่ก็ยังมองว่าไม่ได้เป็นสิ่งที่ต้องให้ความสนใจมากเกินไปเนื่องจากว่าภาษาระดับสูงจะถูกนําไปใช้ในงานที่ทํางานเป็นพิเศษ ตัวอย่างเช่น การติดต่อกับเครื่องฐานข้อมูลกลาง (DatabaseServer) หรือ โปรแกรมทางด้านกราฟฟิกส์เป็นต้น

       ภาษาระดับต่ําจะมีความเกี่ยวเนื่องแบบหนึ่งต่อหนึ่ง (One-to-One Correspondence)ระหว่างตัวภาษาและชุดคําสั่งเครื่อง (Machine Instruction)  โดยทั่วไปจะเรียกภาษาระดับนี้ภาษาแอสเซมบลี้ (Assembly Language)  ซึ่งจะเขียนแตกต่างกันไปตามชนิดของเครื่องพิวเตอร์จึงเป็นเรื่องที่ไม่ง่ายนักสําหรับนักพัฒนาโปรแกรมที่จะต้องเรียนรู้ชุดคําสั่งเหล่านั้น แต่ก็จะทําให้สามารถควบคุมการทํางานของเครื่องได้อย่างเต็มประสิทธิภาพสูงสุด
       ในบางภาษาจะขึ้นอยู่กับตัวแปลภาษา (Interpreter)  แทนที่จะเป็นตัวแปลงรหัสภาษา(Compiler)  ซึ่งตัวแปลภาษา ก็เป็นโปรแกรมประยุกต์ตัวหนึ่งที่จะนําชุดคําสั่งระดับสูง(High-level Instruction)  เพื่อตีความหมาย แล้วทํางานตามสภาพแวดล้อมของเครื่องนั้นๆแม้ว่าจะทํางานช้ากว่าตัวแปลงรหัสภาษา แต่ก็มีข้อดีกว่าตัวแปลงรหัสภาษา หลายส่วนคือสามารถที่จะทํางานในเครื่องที่มีสถาปัตยกรรมที่แตกต่างกันได้ และรองรับการพัฒนาในความสามารถที่หลากหลายได้ไม่จํากัด ซึ่งภาษาจาวาก็เป็นตัวอย่างหนึ่งที่จะใช้ทั้งตัวแปลภาษา และตัวแปลงรหัสภาษา แต่จะมีการเรียกใช้ตัวแปลงรหัสภาษา บ่อยครั้งกว่าตัวแปลงรหัสภาษาเพราะสามารถนําไปใช้ข้ามแพลตฟอร์มได้ (Cross Platform)
        โปรแกรมคอมพิวเตอร์ (Computer Program)  คือกลุ่มชุดคําสั่งที่ใช้อธิบายชิ้นงานหรือกลุ่มงานที่จะประมวลผลโดยคอมพิวเตอร์โปรแกรมคอมพิวเตอร์อาจหมายถึงซอฟต์แวร์แอปพลิเคชันหรือโปรแกรมโปรแกรมคอมพิวเตอร์ส่วนใหญ่นั้นเป็นชุดคําสั่งที่ออกแบบตามอัลกอริทึมโดยปกติแล้วเขียนโดยโปรแกรมเมอร์หรือไม่ก็สร้างโดยโปรแกรมอื่นโปรแกรมคอมพิวเตอร์ชุดหนึ่งๆ อาจเขียนขึ้นด้วยระบบรหัสหรือที่เรียกว่าภาษาเครื่องซึ่งมักเขียนได้ยากและเหมาะกับช่างเทคนิคเฉพาะทางภายหลังจึงได้มีการสร้างภาษาโปรแกรมที่ใกล้เคียงภาษามนุษย์มากขึ้นเช่นภาษาแอสเซมบลี (Assembly)  ภาษาซี (C)  ภาษาโคบอล (COBOL)  ภาษาเบสิก (BASIC)ภาษาซีชาร์ป (C#)  ภาษาจาวา (JAVA)  เป็นต้น ผู้เขียนโปรแกรมคอมพิวเตอร์อาจเขียนโปรแกรมไว้ใช้ส่วนตัวหรือเพื่อให้ผู้อื่นใช้ต่อไม่ว่าจะเป็นโปรแกรมประยุกต์หรือไลบรารีเช่นโปรแกรมสําหรับวาดภาพ (graphics)  โปรแกรมประมวลผลคํา (word processing)  โปรแกรมตารางจัดการ (spread sheet) โปรแกรมระบบ (systems software) ซึ่งเป็นโปรแกรมที่ควบคุม การทํางานของเครื่องคอมพิวเตอร์โดยมักติดตั้งมาจากโรงงานที่ผลิตและโปรแกรมระบบปฏิบัติการ (operating system)  ที่จะทําหน้าที่เหมือนผู้จัดการคอยดูแลให้อุปกรณ์ต่าง ๆ ทํางานให้ประสานกันในการเขียนโปรแกรมผู้เขียนจะต้องเข้าใจขั้นตอนวิธี  (อัลกอริทึม)  และภาษาที่จะใช้เป็นอย่างดีจึงจะสามารถเขียนโปรแกรมเพื่อควบคุมเครื่องให้ทํางานได้ตามความต้องการ
       ชุดคําสั่ง (Instruction Set)  คือรายชื่อคําสั่งทั้งหมดที่หน่วยประมวลผล (processor)สามารถปฏิบัติได้โดยชุดคําสั่งนั้นอาจแตกต่างกันขึ้นอยู่กับหน่วยประมวลผลของระบบชุดของคําสั่งเครื่องรวมถึง:
       ๏ เลขคณิตเช่นเพิ่มลบ
       ๏ ตรรกเช่นและหรือไม่
       ๏ ข้อมูลเช่นย้ายโหลดบันทึก input output

3.ประเภทของการโปรแกรม(Types of Programming)
        มีด้วยกันหลายประเภท ซึ่งสามารถสรุปออกมาได้ดังต่อไปนี้

Console-based Programming
       โปรแกรมประยุกต์ภายใต้หน้าต่างคอนโซล (Console)  จะทํางานอยู่บนระบบปฏิบัติการMS-DOS (Microsoft Disk Operating System) ซึ่งจะเป็นการป้อนคําสั่งด้วยการพิมพ์ผ่านคียบอร์ดแล้วแสดงผลออกเป็นตัวอักษรบนหน้าจอ ซึ่งอาจจะเรียกวิธีการในลักษณะนี้ว่า Character driven  ซึ่งข้อจํากัดในการใช้งานโปรแกรมประยุกต์ภายใต้หน้าต่างคอนโซลนี้จะส่งผลต่อการแสดงข้อความตัวอักษรบนหน้าจอที่มีจํานวนมาก การที่จะเขียนให้แสดงออกมาเป็นหน้าต่างก็ต้องใช้ตัวอักขระมาเรียงต่อกันเป็นรูปหน้าต่าง

Windows-based Programming
         การโปรแกรมผ่านระบบปฏิบัติการ Windows ผู้พัฒนาสามารถนําไลบารี่ (Library) ด้านกราฟฟิก มาใช้ในการแสดงผลโปรแกรมและใช้ในการติดต่อกับผู้ใช้ผ่านระบบกราฟฟิก (GUI: Graphic User
Interface) เช่น Button, Radio Button, CheckBox, Textbox, ComboBox, ListBox เป็นต้น ได้ทันที โดยไม่ต้องเขียนโปรแกรมเองทั้งหมด

Procedural Programming
         การเขียนโปรแกรมเชิงกระบวนการเป็นวิธีการโปรแกรมที่ถูกใช้ในภาษาโปรแกรมโดยส่วนใหญ่ ซึ่งจะเน้นการเขียนโปรแกรมลักษณะชุดคําสั่งเป็นลําดับขั้นตอน (Step-by-step)  ในการสั่งงานโปรแกรมหรือคอมพิวเตอร์ที่ไม่สามารถตัดสินใจเองได้ ในการเขียนโปรแกรมลักษณะนี้จะต้องใช้ทักษะและการออกแบบที่ดีในลําดับขั้นตอนการทํางานของโปรแกรมในโปรแกรมที่มีขนาดใหญ่มากๆ ถ้าเกิดความผิดพลาดของรหัสโปรแกรมตําแหน่งใดตําแหน่งหนึ่ง จะตรวจสอบและแก้ปัญหานั้นๆ ได้ยากมาก

Object-oriented Programming
         พัฒนาการของการเขียนโปรมแกรม Object-oriented Programming  หรือเรียกอีกอยางหนึ่งว่าการเขียนโปรแกรมเชิงวัตถุได้นําแนวคิดในการที่จะวางรูปแบบปัญหาของ Application  ในลักษณะของ Problem Set Model  ก่อนที่จะเริ่มพัฒนาโปรแกรมนั้น ในขณะที่การเขียนโปรแกรมแบบดังเดิมมักนิยมใช้การเขียนโปรแกรมเชิงกระบวนการซึ่งให้ความสําคัญกับขั้นตอนกระบวนการที่ทํา โดยแบ่งโปรแกรมออกเป็นส่วนต่าง ๆ ตามลําดับขั้นตอนการทํางาน แต่แนวคิดการเขียนโปรแกรมเชิงวัตถุนั้นให้ความสําคัญกับข้อมูล (Data) และพฤติกรรม (Behavior) ของวัตถุและความสัมพันธ์กันระหว่างวัตถุกันมากขึ้น

ตัวอย่างวิธีการคิดแบบการเขียนโปรแกรมเชิงกระบวนการ
เมื่อมีการหยอดเหรียญเข้าตู้:
   1. ตรวจสอบจํานวนเหรียญและชนิดของเหรียญ
   2. แสดงผลชนิดของน้ําที่สามารถเลือกซื้อได้
   3. ตรวจสอบจํานวนน้ํากระป๋องที่มีอยู่ในตู้
   4. รับผลการเลือกชนิดน้ํา
   5. ส่งน้ําที่เลือกออกมาจากช่อง
   6. จัดเก็บเงินเข้าระบบ
   7. หากมีเงินทอนให้ทอนเงินที่เหลือที่ช่องรับเงินทอน

ตัวอย่างวิธีการคิดแบบการเขียนโปรแกรมเชิงวัตถุ
ตู้ขายเครื่องดื่มอัตโนมัติประกอบด้วยส่วนประกอบต่างๆได้แก่หน่วยตรวจสอบและจัดการเรื่องเงินหน่วยจัดการเครื่องดื่มหน่วยแสดงผลและรอรับคําสั่ง
  1.  หน่วยตรวจสอบและจัดการเรื่องเงินมีข้อมูลเกี่ยวกับเงินที่ได้รับและเงินที่มีอยู่ในระบบสามารถรับและตรวจสอบเงินที่หยอดเข้ามาได้และถอนเงินได้
   2.  หน่วยจัดการเครื่องดื่มมีข้อมูลชนิดของเครื่องดื่มจํานวนเครื่องดื่มสามารถจัดเตรียมชนิดเครื่องดื่มที่พอกับเงินที่หยอดและสามารถจ่ายเครื่องดื่มออกมาจากตู้ได้
   3.  หน่วยแสดงผลและรอรับคําสั่งมีหน้าที่รอรับคําสั่งและแสดงผลเงินที่หยอดเข้ามา

Event-driven Programming
         การเขียนโปรแกรมเชิงเหตุการณ์ เป็นการเขียนโปรแกรมวิธีหนึ่งที่จะนําเอาเหตุการณ์จริงเข้ามาใช้และจะรอคอยให้ผู้ใช้ กดแป้นพิมพ์หรือเม้าท์เสียก่อนที่จะลงมือปฏิบัติการขั้นตอนใด ๆ ซึ่งการเขียนโปรแกรมลักษณะนี้จะถูกใช้บ่อยในการเขียนโปรแกรมแบบ Windows


ไม่มีความคิดเห็น:

แสดงความคิดเห็น