ความรู้เกี่ยวกับภาษาจาวา
ภาษาจาวาถือกำเนิดขึ้นจากความต้องการที่จะสร้างคอมไพเลอร์ภาษาคอมพิวเตอร์ซึ่งเป็นอิสระจาก Hardware รุ่นใดรุ่นหนึ่ง หรือยี่ห้อใดยี่ห้อหนึ่ง โดยจุดประสงค์แรกนั้นต้องการที่จะใช้เขียนโปรแกรม เพื่อควบคุมอุปกรณ์เครื่องใช้ไฟฟ้า และอุปกรณ์อิเล็กทรอนิคส์ต่างๆ เช่น เตาอบ, เครื่องซักผ้า, โทรศัพท์, มือถือ, Set Top Box ของเคเบิ้ลทีวี ฯลฯ ด้วยเหตุนี้ โดยการนำของ James Gosling หัวหน้า กลุ่ม Green Group แห่งบริษัท Sun Microsystems จึงได้เริ่มโครงการพัฒนาภาษาดังกล่าวอย่างจริงจัง ในปี 1991 โดยขั้นแรกชื่อว่า ภาษา Oak แต่หลังจากที่ไม่ประสบความสำเร็จในการนำไปใช้งานตามความคิดริเริ่มดังกล่าว ประกอบกับบริษัท Sun Microsystems เริ่มมองเห็นความจำเป็นที่ต้องมีภาษาที่สร้างโปรแกรมบนเครื่องหนึ่งแต่สามารถนำไปใช้งานบนเครื่องใดๆ ก็ได้ (Write Once Run Anywhere) บริษัทจึงได้นำเอาภาษา Oak มาพัฒนาต่อให้เป็นภาษาแบบ Object Oriented จนได้ภาษา จาวาขึ้นในปี 1995 และปัจจุบันได้มีหลายบริษัทพัฒนาภาษา จาวาขึ้นมาเป็นผลิตภัณฑ์ของตัวเองทั้ง Visual J++ (Microsoft) Visual Cafe (Sysmantec) และ Jbuilder (Borland) เป็นต้น
จาวาแอพเพลต
แอพเพลต คือโปรแกรมขนาดเล็กที่สร้างขึ้นด้วยภาษา จาวาสามารถถูกเรียกใช้งานบน เว็บบราวเซอร์ โดยผ่านทาง HTML Page โปรแกรมภาษา จาวาที่เป็น แอพพลิเคชั่นได้ จะเป็น Standalone โปรแกรมที่สามารถทำงานได้โดยไม่ต้องอาศัยโปรแกรมอื่นสามารถควบคุมการดำเนินการของตัวเองได้แต่โปรแกรมที่เป็น แอพเพลต จะทำงานภายใต้ เว็บบราวเซอร์ โดยไม่สามารถควบคุมการดำเนินการของตัวเองได้ทั้งหมด
โปรแกรมของ แอพเพลต เมื่อถูกคอมไพล์แล้วจะได้เป็นไฟล์ .class แต่จะไม่สามารถทำงานได้โดย จาวาinterpreter (Java.exe) เหมือนโปรแกรมที่เป็น แอพพลิเคชั่นได้ การเรียกให้ แอพเพลต ทำงานนั้นจะต้องทำภายใน HTML Page เท่านั้นโดยใช้ แอพเพลต Tagและ แอพเพลต นั้นจะต้องทำงานภายใต้สภาพแวดล้อมของ บราวเซอร์ เช่น Netscape Navigator, Microsoft Internet Exporler หรือ HotJavaซึ่งทั้งหมดเป็น บราวเซอร์ ที่มี จาวาinterpreter อยู่ภายใน
Class Applet
Class Applet ซึ่งเก็บไว้ใน packagge java.applet ที่มากับ Compiler ใช้สำหรับสร้าง แอพเพลต ทุกโปรแกรมที่เป็น แอพเพลต ต้องมีประโยค import java.applet.*; เพื่อให้คอมไพเลอร์มองเห็นคลาส แอพเพลต ซึ่งภายในจะคลาสที่กำหนดคุณสมบัติต่างๆของ แอพเพลต เช่น init() ,start() ,stop() ,paint() เป็นต้น และประโยค import java.awt.*; เพื่อให้คอมไพเลอร์มองเห็นคลาสที่เรียกว่า Abstract Window Toolkit (AWT) ซึ่งภายในคราสนี้จะรวบรวมคลาสเกี่ยวกับ graphic และ graphic user interface (GUI) ภายในคลาส แอพเพลต ถูกกำหนดไว้ใน java.applet package ดังนี้
public class applet extends Panel {
public void destory();
public appletContext getappletContext();
public String getAppletInfo();
public AudioClip getAudioClip(URL url)
public AudioClip getAudioClip(URL url,String name)
public URL getCodeBase();
public URL getDocumentBase();
public Image getImage(URL url);
public Image getImage(URL url,String name);
public Locale getLocale();
public String getParameter(String name);
public String [] [] getParameterInfo();
public void init();
public boolean isActive();
public void play(URL url);
public void play(URL url,String name);
public void resize(int width,int height);
public void resize(Dimention d);
public final void setStub(appletStub stub);
public void showStatus(String msg);
public void start();
public void stop();
}
ตัวแปรและชนิดข้อมูล
ตัวแปร (Variable) จะเป็นชื่อของหน่วยความจำสำหรับใช้เก็บข้อมูลชนิดต่างๆ และสามารถนำออกมาใช้ได้ ตัวแปรจะประกอบด้วย
ชื่อ ,ชนิดข้อมูล ,และค่า
ก่อนใช้ตัวแปรต้องประกาศว่าเป็นตัวแปรชนิดข้อมูลอะไร แล้วจึงกำหนดค่าให้มัน จาวามีตัวแปรสามชนิดคือ
• ตัวแปรของ instance (instance variables) หรือตัวแปรของออปเจ็กต์
• ตัวแปรของคลาส (class variables)
• ตัวแปรประเภทโลคอล (local variables) หรือตัวแปรประเภทท้องถิ่น
การประกาศตัวแปร (Declaring Variables)
การใช้ตัวแปรใดๆ ในโปรแกรมของจาวาต้องประกาศก่อนที่จะใช้มัน การประกาศตัวแปรจะประกอบด้วยชนิดข้อมูลและชื่อตัวแปรดังนี้
String Name; // ประกาศ Name เป็นตัวแปรชนิดสตริง
int Salary; // ประกาศ Salary เป็นตัวแปรชนิดจำนวนเต็ม
int myAge, mySalary; // ประกาศ myAge และ my Salary เป็นตัวแปรชนิดจำนวนเต็ม
int myAge=15; // ประกาศ myAge เป็นตัวแปรชนิดจำนวนเต็มและให้มีค่า 15
การตั้งชื่อตัวแปร (Notes on Variable Names)
การตั้งชื่อตัวแปรในภาษาจาวามีกฏเกณฑ์ดังนี้
• เริ่มตันตัวอักษรหรือ underscore (_) หรือเครื่องหมายดอลล่าร์ ($)
• ห้ามเริ่มชื่อตัวแปรด้วยตัวเลข
• ภายหลังที่ใช้อักขระเริ่มตัวแรกขอลตัวแปรแล้ว หลังจากนั้นสามารถใช้ตัวอักษรใดๆหรือตัวเลขหรือสัญลักษณ์ต่างๆได้
การใช้อักษรตัวพิมพ์ใหญ่และอักษรตัวพิมพ์เล็กมีความแตกต่างกัน
ชนิดของตัวแปร (Variable Types)
ชื่อของตัวแปรแต่ละชนิดตัองระบุชนิดของตัวแปรเมื่อเราประกาศก่อนนำไปใช้เก็บข้อมูลแต่ละชนิด ชนิดของตัวแปรแบ่งเป็น 4 ประเภทใหญ่ๆ ดังนี้
• จำนวนเต็ม (integers) ได้แก่ byte, short, int, long
• เลขทศนิยม (floating point numbers) ได้แก่ floating, double
• อักขระ (characters) ได้แก่ char
• บูลีน (boolean) ได้แก่ boolean จะให้ค่า true หรือ false
อะเรย์ (Array)
อะเรย์เป็นกลุ่มของตัวแปรต่างๆมิติเดียวหรือหลายมิติเป็นวิธีการที่จะบรรจุรายการของออปเจ็กต์หรือชนิดข้อมูลดั้งเดิม แต่ละอะเรย์จะบรรจุแต่ละสมาชิกที่สามารถแทนค่าหรือเปลี่ยนแปลงได้ เราไม่สามารถบรรจุชนิดข้อมูลที่แตกต่างกันในเดียวกัน อะเรย์มีขั้นตอนการสร้างดังนี้
การประกาศตัวแปรต่างๆของอะเรย์ (Declare Array Variables)
String str[]; หรือ String[] str; หรือ String []str;
int temp[]; หรือ int[] temp; หรือ int []temp;
การสร้างออปเจ็กต์ของอะเรย์ (Crewting Arrays Objects)
String[] str;
Str = new String[10];
หรือ
String[] str = new String[10];
ตัวดำเนินการ new จะช่วยจองพื้นที่ในหน่วยความจำให้ออปเจ็กต์ของอะเรย์ str[] ใหม่ของสตริง พร้อมกำหนดให้ 10 ที่สำหรับบรรจุสมาชิกต่างๆ
การเข้าถึงสมาชิกต่างๆของอะเรย์ (Accessing Array Elements)
สามารถทดสอบและเปลี่ยนแปลงค่าในแต่ละห้องของอะเรย์นั้นๆการนำค่าออกมาจากภายในอะเรย์ จะต้องใช้นิพจน์ของสับสคริป (subscript) ของอะเรย์ ดังนี้
anyArray[subscript];
anyArray เป็นส่วนหนึ่งของนิพจน์นี้ ซึ่งเป็นตัวแปรบรรจุออปเจ็กต์ของอะเรย์แม้ว่ามันสามารถเป็นนิพจน์ที่ให้ผลลัพธ์ในอะเรย์ นิพจน์นี้จะระบุห้องต่างๆในอะเรย์ที่จะเข้าถึง สับสคริป (subscript) ของอะเรย์จะเริ่มต้นด้วย 0 ดังนั้นเราสามารถเข้าถึงแต่ละสมาชิกของอะเรย์ได้โดยใช้สับสคริปที่เป็นเลขจำนวนเต็มระบุลำดับของสมาชิก
String[] myArr = new String[9];
myArr[0], myArr[1],…, myArr[8]
การเปลี่ยนสมาชิกต่างๆของอะเรย์ (Changing Array Elements)
numArray[1] = 14;
MyString[0] = “Hello”;
MyString[10] = MyString[0];
อะเรย์หลายมิติ (Multidimensional Arrays)
int point[][] = new int[10][10]; // ประกาศตัวแปรอะเรย์ point พร้อมกำหนดหน่วยความจำบรรจุสมาชิกของอะเรย์จำนวน 100 สมาชิก
point[0][0] = 4; // กำหนดค่าให้สมาชิกของอะเรย์
เงื่อนไขของ if (if Conditionals)
เงื่อนไขของ if เขียนอยู่ในรูปแบบต่อไปนี้
if (นิพจน์ที่เป็นเงื่อนไข) // ถ้าเงื่อนไขเเป็นจริง (true) จะทำคำสั่ง 1 แต่ถ้า
คำสั่ง 1; // เป็นเท็จ (false) จะขัามคำสั่ง 1 ไปทำคำสั่งถัดไป
หรือ
if (นิพจน์ที่เป็นเงื่อนไข) // ถ้าเงื่อนไขเเป็นจริง (true) จะทำคำสั่งที่อยู่ในบล๊อก
{ // แต่ถ้าเป็นเท็จ (false) จะกระโดดออกจากบล๊อก
คำสั่ง 1; // ไปทำคำสั่งถัดไป
คำสั่ง 2;
…
}
หรือ
if (นิพจน์ที่เป็นเงื่อนไข)
{
คำสั่งบล๊อก1; // ถ้าเงื่อนไขเเป็นจริง (true) จะทำคำสั่งที่อยู่ในบล๊อก1
}
else
{
คำสั่งบล๊อก2; // ถ้าเงื่อนไขเเป็นเท็จ (false) จะทำคำสั่งที่อยู่ในบล๊อก2
}
ลูป for (for Loops)
ช่วยทำคำสั่งหรือบล๊อกของคำสั่งที่ต้องการซ้ำแล้วซ้ำอีก จนพบเงื่อนไขที่กำหนดจึงออกจากลูป
for ( ค่าเริ่มต้น; เงื่อนไข; ค่าเพิ่มขึ้นหรือค่าลดลง)
{
คำสั่งต่างๆ;
}
การเริ่มต้นลูป for มี 3 ส่วนดังนี้
• ค่าเริ่มแรกของลูป for เป็นนิพจน์ เช่น i=0 หรือ int i=0 ตัวแปรที่ประกาศในส่วนนี้ของลูป for เป็นประเภทโลคอล จะถูกทำลายทิ้งเมื่อสิ้นสุดการประมวลผลของลูป
• เงื่อนไข (condition) จะเกิดขึ้นภายหลังที่ลูป for วนรอบทำงานในแต่ละครั้ง เงื่อนไขต้องเป็นนิพจน์หรือฟังก์ชันที่ให้ค่าชนิด boolean
• ค่าเพิ่มขึ้นหรือลดลง เป็นนิพจน์ใดๆ