Contenu connexe Similaire à Computer Programming 1 (20) Plus de Saranyu Srisrontong (11) Computer Programming 13. พัฒนำกำรของภำษำจำวำ
ปลำยปี ค.ศ. 1995
ผู้คิดต้นแบบ คือ James Gosling และคณะ จำกบริษัท
Sun Microsystems
วัตถุประสงค์เดิม คือ Oak สำหรับกำรเขียนโปรแกรมเพื่อฝังตัว
ในอุปกรณ์อิเล็กทรอนิกส์
ผล คือ ภำษำสำหรับเขียนโปรแกรม (Application
Programming) ซึ่งเป็นลักษณะของโปรแกรมเชิงวัตถุ
(Object Oriented Programming) ซึ่งสำมำรถใช้
งำนบนเว็บได้ด้วย
Java 2 SDK Standard Edition หรือ J2SDK
ประกอบด้วย features ต่ำง ๆ Class Libraries หรือที่
เรียกว่ำ Application Programmer Interfaces
หรือ APIs
4. ภำษำเชิงกระบวนคำสั่ง
(Procedural Programming)
กำหนดตัวแปร (Variable) เพื่อจองเนื้ อที่ในหน่วยควำมจำ
และเตรียมเนื้ อที่ในกำรจัดเก็บข้อมูล
เขียนขั้นตอนตำมลำดับ เพื่อสั่งให้คอมพิวเตอร์ทำงำนตำมที่
กำหนด ซึ่งลำดับในกำรทำงำนจะมีกำรจัดหมวดหมู่ในกำรทำงำน
เพื่อให้ได้ผลลัพธ์ที่ต้องกำรนำมำรวมในหมู่เดียวกัน โดยอำจส่ง
ค่ำตัวแปรไปให้และส่งข้อมูลคืนเมื่อกำรคำนวณเรียบร้อย
5. กำรเขียนโปรแกรมเชิงวัตถุ
(Objected Oriented Programming)
ผู้พัฒนำต้องมีวิสัยทัศน์เชิงวัตถุ เพื่อหำควำมต่ำงของวัตถุแต่ละอย่ำงหรือ
คุณลักษณะประจำ (Attribute) ออกมำ ขณะเดียวกันต้องพิจำรณำ
พฤติกรรม (Method) ของวัตถุ และนำมำเขียนเป็นคลำส
(Class) ดังนั้น คลำสจะเป็นแม่แบบหรือพิมพ์เขียวในกำรสร้ำงวัตถุ
(Object) หรือ Instance ให้เกิดขึ้นและมีชีวิตในระบบ โดย
Object ที่สร้ำงจะมีรำยละเอียดที่ต่ำงกันไป
ตัวอย่ำง คลำสของรถ ตัวแปรหรือคุณลักษณะที่ใช้อธิบำยควำมต่ำงของ
รถแต่ละคัน คือ ยี่ห้อ เช่น โตโยต้ำ, ฮอนด้ำ, นิสสัน เป็นต้น สีของรถ
หรือจำนวนคนที่สำมำรถโดยสำรได้ ก็เป็นอีกตัวแปรหนึ่งที่ใช้อธิบำย
ควำมต่ำงของรถ เป็นต้น ส่วนพฤติกรรมของรถ เช่น กำรขับเคลื่อนไป
ข้ำงหน้ำ ถอยหลัง หรือหยุด เป็นต้น จะถูกรวบรวมเป็นเสมือนพิมพ์เขียว
ในกำรผลิตรถ โดยรถแต่ละคันที่ผลิตออกมำเรียกว่ำเป็น Instance
ซึ่งจะมีลักษณะประจำ (Attribute) และพฤติกรรม (Method)
7. หลักที่สนับสนุนกำรโปรแกรมเชิงวัตถุ
ควำมสำมำรถในกำรสืบทอด (Inheritance) เป็นกำรสืบทอด
คุณสมบัติของคลำส โดยสร้ำงคลำสหลักซึ่งมีคุณสมบัติต่ำง ๆ
โดยรวมที่คลำสอื่นจำเป็นต้องมี จำกนั้นจึงสร้ำงคลำสอื่นขึ้นมำ เพื่อ
รับกำรถ่ำยทอดคุณสมบัติทั้งหมดจำกคลำสหลักโดยอัตโนมัติ โดย
ไม่ต้องสร้ำงขึ้นใหม่ และสำมำรถสร้ำงคุณสมบัติอื่น ๆ นอกจำกคลำส
หลักขึ้นได้
ควำมสำมำรถในกำรเก็บซ่อน (Encapsulation) เป็นกำร
ซ่อนส่วนของกำรทำงำนภำยในที่ไม่เกี่ยวข้องกับภำยนอกไว้โดยผ่ำน
คลำส เพื่อไม่ให้ผู้นำคลำสไปใช้เห็น หรือทรำบรำยละเอียดขั้นตอน
กำรทำงำนของคลำส เพื่อไม่ให้มีกำรแก้ไขเปลี่ยนแปลงส่วนที่ซ่อนไว้
ผู้นำคลำสไปใช้จะดัดแปลงได้เฉพำะส่วนที่อนุญำตเท่ำนั้น
10. ควำมสำมำรถในกำรแปลงร่ำง (Polymorphism) :- ไม่
จำเป็นต้องสืบทอดคุณสมบัติทุกอย่ำงเสมอไป เนื่องจำกกำรแก้ไข
ลำดับกำรทำงำนของฟังก์ชันเดิม ทำให้เสียเวลำในกำรตำมแก้ไข
ทำงที่ดี คือ อนุญำตให้มีกำรเขียนชุดคำสั่งใหม่ภำยใต้ชื่อฟังก์ชัน
เดิมที่มี ตัวอย่ำงเช่น กำร Save To File ของ Memo จะ
ได้ Text File ที่เก็บข้อควำมนั้น ขณะที่ Save To File
ของ Image จะได้ไฟล์รูปภำพ
ควำมสำมำรถในกำรจัดโครงสร้ำงแบบเชิงนำม (Abstract)
ข้อมูลแบบเชิงนำม คือ ข้อมูลหรือกระบวนกำรที่ยังไม่เกิดขึ้น กำร
สร้ำงคลำสแบบเชิงนำมเป็นวิธีหนึ่งที่ช่วยไม่ให้กำรพัฒนำระบบงำน
ต้องหยุดชะงัก เนื่องจำกข้อมูลอำจจะยังไม่เกิด หรือยังไม่สำมำรถ
อธิบำยได้ว่ำ ขั้นตอนกำรทำงำนจะเป็นอย่ำงไร
12. ข้อดีของกำรพัฒนำโปรแกรมด้วยจำวำ
ง่ำย เนื่องจำกเลียนแบบภำษำ C/C++ ไม่มีคำสั่ง GOTO และ
pointer
เป็นภำษำเชิงวัตถุที่สมบูรณ์
มีกำรป้ องกันกำรผิดพลำด (Robust) กำรกำจัดสิ่งที่ไม่ใช้
(Garbage Collection) แบบอัตโนมัติ และกำรจัดกำรควำม
ผิดพลำด (Exception Handling) แบบอัตโนมัติ
มีควำมปลอดภัยในกำรที่จะประมวลผล (Secure) โดยไม่ทำลำย
ทรัพยำกรของเครื่อง
Multithread ใน java.lang :- ควำมสำมำรถในกำรประมวลผล
หลำยงำนพร้อมกัน
Architecture neutral and portable :- สำมำรถ
เคลื่อนย้ำยได้ง่ำย รวมทั้งใช้งำนในสภำวะแวดล้อมที่ต่ำงกัน และใช้กับ
คอมพิวเตอร์ได้ทุกระบบ (Multi Platform) โดยไม่ต้องปรับแต่ง
กำรเชื่อมโยงแบบพลวัต (Dynamic Link) และกำรประมวลผลแบบ
กระจำย (Distributed) ในระบบเครือข่ำย
14. ข้อกำหนดเบื้องต้นในกำรเขียนโปรแกรม
แต่ละประโยคต้องจบด้วยเครื่องหมำย ; เสมอ
สัญลักษณ์อื่นที่ใช้แยกข้อควำมหรือคำสั่งอีก เช่น
( ) ใช้สำหรับแยกลำดับในกำรประมวลผล
{ } ใช้สำหรับแยกชุดคำสั่ง หรือรวมชุดคำสั่งเป็นบล็อก
, ให้ควำมต่อเนื่องในกำรทำงำน เช่น กำรกำหนดตัวแปรที่มี
ประเภทข้อมูลแบบเดียวกัน
. ใช้ในกำรแยก package กับ class หรือ object
กับ method
15. หลักเกณฑ์กำรตั้งชื่อต่ำง ๆ เช่น ชื่อ class, ชื่อ data,
ชื่อ method และชื่อตัวแปร
ประกอบด้วยตัวอักษรภำษำอังกฤษ ตัวเลข และสัญลักษณ์ _ หรือ $
เช่น age, int2float, _name$ เป็นต้น
ควำมยำวไม่ควรเกิน 65535 ตัวอักษร
ไม่ควรใช้ตัวเลขเป็นตัวแรก เช่น 101database, 2name
ไม่ควรใช้ช่องว่ำง (spaces) หรือ . (periods)
ตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือว่ำต่ำงกัน เช่น Count,
count และ CoUnT ถือว่ำเป็นคนละชื่อ
ต้องไม่ตรงกับคำศัพท์สงวน (Key Word) ในภำษำจำวำ
ชื่อ class ควรขึ้นต้นด้วยตัวพิมพ์ใหญ่ ส่วนที่เหลือเป็นตัวเล็ก
ชื่อ data หรือตัวแปรควรเป็นตัวพิมพ์เล็กทั้งหมด
ชื่อค่ำคงที่ควรเป็นตัวพิมพ์ใหญ่ทั้งหมด
ชื่อ method คำแรกควรเป็นตัวเล็กทั้งหมด คำถัดไปตัวแรกควรเป็น
ตัวพิมพ์ใหญ่ ที่เหลือจึงเป็นตัวเล็ก เช่น setCount, testFirst
เป็นต้น
16. คำศัพท์สงวน (Key Word) ในภำษำจำวำ
abstract boolean break byte case
catch char class const continue
default do double else extends
final finally float for goto
if implements import instanceof int
interface long native new package
private protected public return short
static super switch synchronized this
throw throws transient try void
volatile while
17. กำรเขียนหมำยเหตุ (Comment) สำมำรถทำได้ 3 รูปแบบ คือ
//single line comment
/* multiple line comments
…*/
/** This is a javadoc comment*/
โปรแกรมที่สร้ำงจำกจำวำต้องสำมำรถสร้ำงได้อย่ำงน้อยหนึ่งคลำสโดยมี
รูปแบบโครงสร้ำงดังนี้
[<access_specifier>] class <class_name>
{ //data members
//methods }
access_specifier :- ระดับกำรเข้ำถึงข้อมูล เช่น public และ
private
public หมำยถึง ระดับกำรเข้ำถึงข้อมูลที่ไม่มีข้อจำกัดใดๆ
private หมำยถึง ระดับกำรเข้ำถึงข้อมูลสำหรับกำรใช้งำนในคลำส
ในหนึ่งโปรแกรมต้องมีเพียงหนึ่งคลำสที่มีชื่อเดียวกับโปรแกรมและต้องเป็น
ชนิด public เสมอ
18. data members เป็นส่วนประกอบหนึ่งของคลำส ใช้
สำหรับกำหนดชื่อและชนิดของตัวแปรที่ใช้สำหรับเก็บข้อมูล
โดยมีรูปแบบดังนี้
[<access_specifier>] [<modifier>]
<datatype> <variable_name>
modifier เป็นกำรกำหนดคุณลักษณะพิเศษในกำรใช้งำน
ตัวแปรและ method เช่น static และ final
static หำก Data ใดนำหน้ำด้วยคำศัพท์สงวน static
แล้ว Data นั้น จะถูกโหลดลงในหน่วยควำมจำและพร้อม
ใช้งำนทันที เมื่อมีกำรอ้ำงถึงตำมข้อกำหนดของระดับกำร
เข้ำถึง (Accessibility)
final หำก Data ใดนำหน้ำด้วยคำศัพท์สงวน final แล้ว
Data นั้นใช้สำหรับเก็บข้อมูลค่ำคงที่ (Constant) ซึ่ง
ไม่สำมำรถเปลี่ยนค่ำได้
19. methods มีรูปแบบดังนี้
[<access_specifier>] [<modifier>] < return_type >
<method_name> ([argument_list])
{ //Statements }
return_type :- ชนิดของข้อมูลที่ถูกส่งคืนหลังสิ้นสุดกำรทำงำน
ของ method
argument_list :- ช่องทำงในกำรผ่ำนข้อมูลเพื่อส่งให้
method ใช้ในกำรทำงำน
Statement :- คำสั่งควบคุมกำรทำงำนของนิพจน์ เพื่อกำหนด
หลักกำรและวิธีกำรประมวลผลภำยใน method
ในหนึ่งโปรแกรมจะต้องมี Method ที่ชื่อ main เสมอ โดย
Method main จะเป็น Method แรกที่โปรแกรมเรียกใช้ ซึ่ง
ในหนึ่งโปรแกรมจะต้องมีเพียง 1 main Method เท่ำนั้น ซึ่ง
จะต้องมีค่ำ Accessibility เป็น static เสมอ และเนื่องจำกไม่มี
กำรส่งค่ำกลับ จึงใช้ Accessibility void ร่วมด้วยเสมอ
20. ท้ำยชื่อของ Method ต้องตำมด้วยเครื่องหมำย ( ) หำก
ไม่มีกำรส่งค่ำพำรำมิเตอร์ใดไปด้วย หำกมีกำรส่งค่ำ จะต้องอยู่
ในรูปแบบใดแบบหนึ่งเสมอ เช่น (String args[ ]) หรือ
(String[ ] args)
กำรแสดงผลทำงจอภำพสำมำรถทำด้วย method ที่ชื่อว่ำ
println ซึ่งอยู่ใน System.out โดยคำสั่งนี้ ต้องกำร
ข้อมูลที่เป็น String เพื่อนำไปแสดงบนจอภำพ แต่ทั้งนี้ อำจ
ส่งข้อมูลที่เป็น Integer ร่วมด้วยได้โดยใช้เครื่องหมำย +
ข้อมูลทั้งหมดจะถูกแปลงเป็น String โดยอัตโนมัติ
22. โปรแกรมที่เขียนแบบ Applet ต้องมีกำรเพิ่มคลำสต่ำง ๆ
โดยเฉพำะ java.applet.* และ java.awt.Graphics
Package หรือ Java Class Library เป็นที่เก็บ
รวบรวม Class ต่ำง ๆ แต่ละ Package จะถูกเก็บแยกไว้
ในแต่ละ Directory และแต่ละ Package จะเก็บ
Class ต่ำง ๆ แยกไว้ในแต่ละ Directory เช่นเดียวกัน ใน
แต่ละ Class จะมี methods ให้เลือกนำมำใช้ให้เหมำะกับ
งำนที่ต้องกำรโดยไม่ต้องเขียนขึ้นมำเอง
Class ใน Package หนึ่งสำมำรถเรียกใช้ Class อื่นใน
Package เดียวกันได้ แต่จะเรียกใช้ Class ที่อยู่ต่ำง
Package กันได้หรือไม่ขึ้นอยู่กับกำรกำหนดค่ำ
Accessible
ข้อกำหนดเพิ่มเติมในกำรเขียน Java Applet
23. กำรเรียกใช้ Package สำมำรถทำได้ด้วยคำสั่ง import ซึ่ง
ต้องวำงไว้ตอนแรกสุดของโปรแกรมเสมอ เพื่อให้ Compiler
นำ Package ต่ำง ๆ ที่อ้ำงถึงมำเชื่อมโยงเข้ำกับโปรแกรม
ก่อนที่จะมำเรียกใช้ methods ต่ำง ๆ ภำยในโปรแกรม
โปรแกรม Applet ต้องเขียนในรูป
public class hello2 extends Applet
ซึ่งเป็นกำรสืบทอดคุณสมบัติของคลำส Applet
กำรแสดงข้อมูลบนจอภำพ ต้องใช้คำสั่ง drawString ซึ่งเป็น
method ของคลำส Graphics
24. ตัวอย่ำงกำรเขียน Java Applet
import java.applet.*;
import java.awt.Graphics;
public class hello2 extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello World!",20,60);
}
}
26. ตัวอย่ำง Standard Package ในภำษำ Java
Package Class ที่เป็นส่วนประกอบ
java.applet Class ที่จำเป็นต่อกำรสร้ำง Applet
java.awt Class ทีใช้ประโยชน์ในกำรสร้ำง GUI
java.io Class สำหรับปฏิบัติงำนด้ำน I/O
java.lang Class พื้นฐำนของ Java ไม่ต้อง import
java.net Class ที่ใช้ติดต่อกับเครือข่ำย ใช้ควบคู่กับ java.io
java.util Class ที่เป็น Utility เช่น กำรเข้ำรหัส กำรถอดรหัส
java.awt.images Class ที่ใช้ในกำรสร้ำงและทำงำนกับรูปภำพ
java.swing Class ที่ใช้สร้ำง Swing ช่วยให้ทำงำนง่ำยกว่ำ java.awt