WeGievU.Com
WeGievU.Com
WeGievU.Com
User :
Pass :
  WeGievU.Com
WeGievU.Com
WeGievU.Com
» E-Learning Room > Java
WeGievU.Com
มารู้จักความเป็นมาของ Java กัน 
( 6  Views )

Mon 01-09-2551 Time 12:30
Category: Java/ WeGievU.Com 3Comments
WeGievU.Com
คำจำกัดความของโปรแกรม

ชุดคำสั่งที่ผู้ใช้งานเขียนขึ้นเพื่อให้เครื่องคำนวณ (Computer) ทำงานตามลำดับขั้นตอนที่ผู้ใช้ต้องการ

ชุดคำสั่งหรือภาษาเขียนที่ใกล้เคียงกับการทำงานของ เครื่องคอมพิวเตอร์มากที่สุด คือ ภาษาเครื่อง (Machine Language)

ภาษาระดับสูง (High Level Language) ที่ใกล้เคียงกับภาษาที่มนุษย์ใช้ในชีวิตประจำวัน ได้แก่ Assembly, COBOL, Pascal, C, C++, Java ฯลฯ ซึ่งในแต่ละภาษาต้องมีตัวแปลภาษา (Translator) เพื่อแปลงชุดคำสั่งเป็นภาษาเครื่องอีกรอบหนึ่ง

ตัวแปลภาษาดังกล่าวมี 2 สองประเภท คือ คอมไพเลอร์ (Compiler) และอินเทอร์พรีเตอร์ (Interpreter)

 

ภาษาเชิงกระบวนคำสั่ง
(Procedural Programming)


กำหนดตัวแปร (Variable) เพื่อจองเนื้อที่ในหน่วยความจำและเตรียมเนื้อที่ในการจัดเก็บข้อมูล

เขียนขั้นตอนตามลำดับ เพื่อสั่งให้คอมพิวเตอร์ทำงานตามที่กำหนด ซึ่งลำดับในการทำงานจะมีการจัดหมวดหมู่ใน การทำงาน เพื่อให้ได้ผลลัพธ์ที่ต้องการนำมารวมในหมู่เดียวกัน โดยอาจส่งค่าตัวแปรไปให้และส่งข้อมูลคืนเมื่อ การคำนวณเรียบร้อย

พัฒนาการของภาษาจาวา

ปลายปี ค.ศ. 1995

ผู้คิดต้นแบบ คือ James Gosling และคณะ จากบริษัท Sun Microsystems

วัตถุประสงค์เดิม คือ Oak สำหรับการเขียนโปรแกรมเพื่อฝังตัวในอุปกรณ์อิเล็กทรอนิกส์

ผล คือ ภาษาสำหรับเขียนโปรแกรม (Application Programming) ซึ่งเป็นลักษณะของโปรแกรมเชิงวัตถุ (Object Oriented Programming) ซึ่งสามารถใช้งานบนเว็บได้ด้วย

Java 2 SDK Standard Edition หรือ J2SDK ประกอบด้วย features ต่าง ๆ Class Libraries หรือที่เรียกว่า Application Programmer Interfaces หรือ APIs

การเขียนโปรแกรมเชิงวัตถุ
(Objected Oriented Programming)


ผู้พัฒนาต้องมีวิสัยทัศน์เชิงวัตถุ เพื่อหาความต่างของวัตถุแต่ละอย่างหรือคุณลักษณะประจำ (Attribute) ออกมา ขณะเดียวกันต้องพิจารณาพฤติกรรม (Method) ของวัตถุ และนำมาเขียนเป็นคลาส (Class) คลาสจะเป็นแม่แบบหรือพิมพ์เขียวใน การสร้างวัตถุ (Object) หรือ Instance ให้เกิดขึ้นและมีชีวิตในระบบ โดย Object ที่สร้างจะมีรายละเอียดที่ต่างกันไป

ตัวอย่าง คลาสของรถ ตัวแปรหรือคุณลักษณะที่ใช้อธิบาย ความต่างของรถแต่ละคัน คือ ยี่ห้อ เช่น โตโยต้า, ฮอนด้า, นิสสัน เป็นต้น สีของรถ หรือจำนวนคนที่สามารถโดยสารได้ ก็เป็นอีกตัวแปรหนึ่งที่ใช้อธิบายความต่างของรถ เป็นต้น ส่วนพฤติกรรมของรถ เช่น การขับเคลื่อนไปข้างหน้า ถอยหลัง หรือหยุด เป็นต้น จะถูกรวบรวมเป็นเสมือนพิมพ์เขียวในการผลิตรถ โดยรถแต่ละคันที่ผลิตออกมาเรียกว่าเป็น Instance ซึ่งจะมีลักษณะประจำ (Attribute) และพฤติกรรม (Method)

หลักที่สนับสนุนการโปรแกรมเชิงวัตถุ

ความสามารถในการสืบทอด (Inheritance) เป็นการสืบทอดคุณสมบัติของคลาส โดยสร้างคลาสหลักซึ่งมีคุณสมบัติต่าง ๆ โดยรวมที่คลาสอื่นจำเป็นต้องมี จากนั้นจึงสร้างคลาสอื่นขึ้นมา เพื่อรับการถ่ายทอดคุณสมบัติทั้งหมดจากคลาสหลักโดยอัตโนมัติ โดยไม่ต้องสร้างขึ้นใหม่ และสามารถสร้างคุณสมบัติอื่น ๆ นอกจากคลาสหลักขึ้นได้

ความสามารถในการเก็บซ่อน (Encapsulation) เป็น การซ่อนส่วนของการทำงานภายในที่ไม่เกี่ยวข้องกับภายนอกไว้โดยผ่านคลาส เพื่อไม่ให้ผู้นำคลาสไปใช้เห็น หรือทราบรายละเอียดขั้นตอนการทำงานของคลาส เพื่อไม่ให้มี การแก้ไขเปลี่ยนแปลงส่วนที่ซ่อนไว้ ผู้นำคลาสไปใช้จะดัดแปลงได้เฉพาะส่วนที่อนุญาตเท่านั้น

ความสามารถในการแปลงร่าง (Polymorphism)

ไม่จำเป็นต้องสืบทอดคุณสมบัติทุกอย่างเสมอไป เนื่องจากการแก้ไขลำดับการทำงานของฟังก์ชันเดิม ทำให้เสียเวลาในการตามแก้ไข ทางที่ดี คือ อนุญาตให้มีการเขียนชุดคำสั่งใหม่ภายใต้ชื่อฟังก์ชันเดิมที่มี ตัวอย่างเช่น การ Save To File ของ Memo จะได้ Text File ที่เก็บข้อความนั้น ขณะที่ Save To File ของ Image จะได้ไฟล์รูปภาพ

ความสามารถในการจัดโครงสร้างแบบเชิงนาม (Abstract)

ข้อมูลแบบเชิงนาม คือ ข้อมูลหรือกระบวนการที่ยังไม่เกิดขึ้น การสร้างคลาสแบบเชิงนามเป็นวิธีหนึ่งที่ช่วยไม่ให้การพัฒนาระบบงานต้องหยุดชะงัก เนื่องจากข้อมูลอาจจะยังไม่เกิด หรือยังไม่สามารถอธิบายได้ว่า ขั้นตอนการทำงานจะเป็นอย่างไร

ข้อดีของการพัฒนาโปรแกรมด้วยจาวา

ง่าย เนื่องจากเลียนแบบภาษา C/C++ ไม่มีคำสั่ง GOTO และ pointer

เป็นภาษาเชิงวัตถุที่สมบูรณ์

Automatic type coercion

มีการป้องกันการผิดพลาด (Robust) การกำจัดสิ่งที่ไม่ใช้ (Garbage Collection) แบบอัตโนมัติ และการจัดการความผิดพลาด (Exception Handling) แบบอัตโนมัติ

Strongly typed => type checking => type casting

มีความปลอดภัยในการที่จะประมวลผล (Secure) โดยไม่ทำลายทรัพยากรของเครื่อง :- sandbox model

Multithread ใน java.lang :- ความสามารถในการประมวลผลหลายงานพร้อมกัน

Architecture neutral and portable :- สามารถเคลื่อนย้ายได้ง่าย รวมทั้งใช้งานในสภาวะแวดล้อมที่ต่างกัน และใช้กับคอมพิวเตอร์ได้ทุกระบบ (Multi Platform) โดยไม่ต้องปรับแต่ง

การเชื่อมโยงแบบพลวัต (Dynamic Link) และการประมวลผลแบบกระจาย (Distributed) ในระบบเครือข่าย

 

พื้นฐาน Java กับการใช้ Edit Plus

รายละเอียดของไดเรกทอรี

bin เป็นไดเรกทอรีที่เก็บโปรแกรมที่ใช้คอมไพล์ หรือโปรแกรมที่เกี่ยวข้องกับการคอมไพล์และการทดสอบโปรแกรมภาษา Java

demo เป็นตัวอย่างโปรแกรมภาษา Java และ Source Code

include เก็บไฟล์ header ในภาษา C ใช้ในกรณีผู้เขียนโปรแกรมต้องการเพิ่มการใช้งาน header ภาษา C ในโปรแกรมภาษา Java

jre เก็บคอมโพเนนต์ที่ใช้สำหรับการรันโปรแกรม Java ซึ่งรวมถึง Java Virtual Machine คลาส และ package Libraries ต่าง ๆ ที่จำเป็นในการทำงานของคอมไพเลอร์

Lib เก็บคลาสและ package เพิ่มเติมอื่น ๆ ของ Java

Java Servlet API :-
ชุดที่รวบรวมกลุ่มคลาสที่สนับสนุน การทำงานที่เกิดขึ้นบนเซิร์ฟเวอร์เป็นส่วนใหญ่ โดยให้เซิร์ฟเวอร์และไคลเอนต์สื่อสารกันด้วยโปรโตคอล HTTP (Hyper Text Transfer Protocol)
 

Java Server Page : JSP
•เป็นรูปแบบการทำงานในฝั่งเซิร์ฟเวอร์เหมือนกับจาวา เซิร์ฟเล็ต แต่ผู้สร้างสามารถเขียนคำสั่งเจเอสพีลงในไฟล์เว็บได้โดยตรง ผิดกับจาวาเซิร์ฟเล็ต ซึ่งผู้สร้างต้องเขียนคำสั่งจาวาในแบบเซิร์ฟเล็ต แล้วคอมไพล์เป็นเซิร์ฟเล็ตไว้ใช้งาน

Java 3D API

:- รูปแบบ API หนึ่งที่ถูกใช้งานสำหรับการใช้งานเกี่ยวข้องระบบสามมิติ โดยสามารถช่วยให้โปรแกรมเมอร์สร้างภาพหรือสภาวะแวดล้อมแบบสามมิติได้ด้วยภาษาจาวา

Java RMI API

:- ชุดสำหรับให้โปรแกรมเมอร์นำมาใช้งาน เพื่อวัตถุประสงค์ในการสร้างโปรแกรมที่มีการติดต่อสื่อสารกัน

JavaBeans

:- ส่วนประกอบซอฟต์แวร์หรือชิ้นส่วนคอมโพเนนต์ เป็นรูปแบบของความสามารถในการนำมาใช้ใหม่ (Reuseable) โดยวิธีใช้งาน คือ การนำเอาคอมโพเนนต์ดังกล่าวมาประกอบกันขึ้นเป็นซอฟต์แวร์ (สำหรับจาวาความหมายรวมถึง แอพพลิเคชั่นและแอปเพล็ต) ทำให้ซอฟต์แวร์สามารถสร้างขึ้นได้ง่ายและรวดเร็วกว่าเดิมมาก


Java Swing

:- ชุด API เพื่อสนับสนุนการกำหนดอินเตอร์เฟส ซึ่งประกอบด้วยคอมโพเนนต์ต่าง ๆ มากมายให้เลือกใช้ เช่น JTextBox, JButton, JPanel, JRadio เป็นต้น

JDBC Data Access

:- ชุด API ที่โปรแกรมเมอร์ภาษาจาวาสามารถสร้างแอพพลิเคชั่นหรือแอปเพล็ตเพื่อติดต่อกับฐานข้อมูลด้วย JDBC Driver เพื่อเข้าไปถึงระบบฐานข้อมูลเชิงสัมพันธ์จากผลิตภัณฑ์ได้หลากหลาย เช่น Oracle, SQL Server, Informix, DB2, mySQL โดยใช้คำสั่ง SQL ซึ่งเป็นคำสั่งที่ทุกระบบฐานข้อมูลสนับสนุน

ข้อกำหนดเบื้องต้นในการเขียนโปรแกรม

1. แต่ละประโยคต้องจบด้วยเครื่องหมาย ; เสมอ

2. สัญลักษณ์อื่นที่ใช้แยกข้อความหรือคำสั่งอีก เช่น

( ) ใช้สำหรับแยกลำดับในการประมวลผล
{ } ใช้สำหรับแยกชุดคำสั่ง หรือรวมชุดคำสั่งเป็นบล็อก
, ให้ความต่อเนื่องในการทำงาน เช่น การกำหนด ตัวแปรที่มีประเภทข้อมูลแบบเดียวกัน
. ใช้ในการแยก package กับ class หรือ object กับ method

•หลักเกณฑ์การตั้งชื่อต่าง ๆ เช่น ชื่อ class, ชื่อ data, ชื่อ method และชื่อตัวแปร
«ประกอบด้วยตัวอักษรภาษาอังกฤษ ตัวเลข และสัญลักษณ์ _ หรือ $ เช่น age, int2float, _name$ เป็นต้น
«ความยาวไม่ควรเกิน 65535 ตัวอักษร
«ไม่ควรใช้ตัวเลขเป็นตัวแรก เช่น 101database, 2name
«ไม่ควรใช้ช่องว่าง (spaces) หรือ . (periods)
«ตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือว่าต่างกัน เช่น Count, count และ CoUnT ถือว่าเป็นคนละชื่อ
«ต้องไม่ตรงกับคำศัพท์สงวน (Key Word) ในภาษาจาวา
«ชื่อ class ควรขึ้นต้นด้วยตัวพิมพ์ใหญ่ ส่วนที่เหลือเป็นตัวเล็ก
«ชื่อ data หรือตัวแปรควรเป็นตัวพิมพ์เล็กทั้งหมด
«ชื่อค่าคงที่ควรเป็นตัวพิมพ์ใหญ่ทั้งหมด
«ชื่อ method คำแรกควรเป็นตัวเล็กทั้งหมด คำถัดไปตัวแรกควรเป็นตัวพิมพ์ใหญ่ ที่เหลือจึงเป็นตัวเล็ก เช่น setCount, testFirst เป็นต้น

คำศัพท์สงวน (Key Word) ในภาษาจาวา

 

•การเขียนหมายเหตุ (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 เสมอ
•data members เป็นส่วนประกอบหนึ่งของคลาส ใช้สำหรับกำหนดชื่อและชนิดของตัวแปรที่ใช้สำหรับเก็บข้อมูล โดยมีรูปแบบดังนี้
[<access_specifier>] [<modifier>] <datatype> <variable_name>

«modifier เป็นการกำหนดคุณลักษณะพิเศษในการใช้งาน ตัวแปรและ method เช่น static และ final
«static หาก Data ใดนำหน้าด้วยคำศัพท์สงวน static แล้ว Data นั้น จะถูกโหลดลงในหน่วยความจำและพร้อมใช้งานทันที เมื่อมีการอ้างถึงตามข้อกำหนดของระดับการเข้าถึง (Accessibility)
«final หาก Data ใดนำหน้าด้วยคำศัพท์สงวน final แล้ว Data นั้นใช้สำหรับเก็บข้อมูลค่าคงที่ (Constant) ซึ่งไม่สามารถเปลี่ยนค่าได้

•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 ร่วมด้วยเสมอ

•ท้ายชื่อของ Method ต้องตามด้วยเครื่องหมาย ( ) หากไม่มีการส่งค่าพารามิเตอร์ใดไปด้วย หากมีการส่งค่า จะต้องอยู่ในรูปแบบใดแบบหนึ่งเสมอ เช่น (String args[ ]) หรือ (String[ ] args)
การแสดงผลทางจอภาพสามารถทำด้วย method ที่ ชื่อว่า println ซึ่งอยู่ใน System.out โดยคำสั่งนี้ต้องการข้อมูลที่เป็น String เพื่อนำไปแสดงบนจอภาพ แต่ทั้งนี้อาจส่งข้อมูลที่เป็น Integer ร่วมด้วยได้โดยใช้เครื่องหมาย + ข้อมูลทั้งหมดจะถูกแปลงเป็น String โดยอัตโนมัติ

•การเรียกใช้ Package สามารถทำได้ด้วยคำสั่ง import ซึ่งต้องวางไว้ตอนแรกสุดของโปรแกรมเสมอ เพื่อให้ Compiler นำ Package ต่าง ๆ ที่อ้างถึงมาเชื่อมโยงเข้ากับโปรแกรม ก่อนที่จะมาเรียกใช้ methods ต่าง ๆ ภายในโปรแกรม
•โปรแกรม Applet ต้องเขียนในรูป
public class hello2 extends Applet
ซึ่งเป็นการสืบทอดคุณสมบัติของคลาส Applet
•การแสดงข้อมูลบนจอภาพ ต้องใช้คำสั่ง drawString ซึ่งเป็น method ของคลาส Graphics


แสดงความคิดเห็น “ มารู้จักความเป็นมาของ Java กัน   Comment”
WeGievU.Com
WeGievU.Com


Learning
| Tip | Knowledge
Copyright (c) 2010 by Wegiveu.com Team ( We Give Everything )