วันศุกร์ที่ 1 ตุลาคม พ.ศ. 2553

คลาส (class)

บทที่ 4
คลาส (class)


วัตถุประสงค์
1.เพื่อให้ผู้ศึกษาเข้าความหมายของคลาส (class)
2.เพื่อให้ผู้ศึกษาเกิดความเข้าใจ และสามารถสร้างคลาสในโปรแกรมเชิงวัตถุได้

การกำหนดคลาส (class) ในการเขียนโปรแกรมเชิงวัตถุถือว่ามีความสำคัญเป็นอย่างยิ่ง เนื่องจากแนวคิดเชิงวัตถุมองว่า ทุกๆสิ่งที่กำลังประมวลผลคือวัตถุ (object) และวัตถุจะถูกสร้างขึ้นมาตามต้นแบบหรือคลาส

1. คลาส
คลาส (class) หมายถึง ต้นแบบ หรือแม่แบบ ซึ่งบอกรายละเอียดของสิ่งต่างๆ หากเปรียบเทียบกับโลกแห่งความเป็นจริง คลาสจะหมายถึงแบบแปลนบ้าน หรือพิมพ์เขียว ซึ่งเป็นสิ่งที่ผู้รับเหมาก่อสร้างใช้เพื่อประกอบการสร้างบ้าน


2. องค์ประกอบของคลาส
ภายในคลาส (class) หรือต้นแบบจะประกอบไปด้วยข้อมูล (Data) และพฤติกรรม (Behavior) ของคลาส ในบางตำราอาจใช้คำว่า Properties แทน Data และใช้คำว่า Method แทน Behavior

คลาส

ข้อมูล , คุณสมบัติ

พฤติกรรม

class xxxxx

Properties

Method






3. การตั้งชื่อคลาส
ในการตั้งชื่อคลาส หรือการ identifier มีหลักการที่สำคัญ ดังนี้
1) เขียนเป็นคำติดกัน
2) ไม่ใช้เครื่องหมาย underscore ( _ )
3) คำที่อยู่ถัดไปจะเริ่มต้นด้วยตัวพิมพ์ใหญ่
4) การตั้งชื่อตัวแปร และเมธอดควรเริ่มต้นด้วยตัวพิมพ์เล็ก
5) ในการกำหนดค่าคงที่ (constant) ควรใช้ตัวอักษรพิมพ์ใหญ่ทั้งหมด และใช้เครื่องหมาย (underscore) _ เพื่อแยกคำ

4. คลาสในภาษาจาวา
ในภาษาจาวา ได้กำหนดแนวทางในการเขียนโปรแกรม ที่กล่าวถึงคลาส ดังนี้
1) ในโปรแกรมภาษาจาวา จะต้องมีคลาส (class) อย่างน้อย 1 คลาส
2) ภายใน 1 โปรแกรม สามารถมีคลาสที่เป็น public ได้เพียง 1 คลาส
3) คลาสที่เป็น public จะต้องใช้ชื่อเดียวกับชื่อโปรแกรมเสมอ
4) ต้องทำการสร้าง object ของ class ก่อนเรียกใช้เมธอดเสมอ
class ชื่อคลาส
{
// ส่วนของเมธอดในคลาส
public static void main(String[] args) // เมธอด main
{
xxxxxxxxxxxxxxx ; // ประโยคคำสั่งที่ 1
xxxxxxxxxxxxxxx ; // ประโยคคำสั่งที่ 2
}
static void Test(String s) // เมธอด Test
{
xxxxxxxxxxxxxxx ; // ประโยคคำสั่งที่ 1
}

} // จุดสิ้นสุดของคลาส
Data_Memeber; // ส่วนที่เป็น Data ในคลาส

















ตัวอย่าง การกำหนดคลาสรถยนต์
รถยนต์
+สี
+ล้อ
-เลขตัวถัง
+สตาร์ท ( )
+เคลื่อนที่ ( )
+เบรค ( )
ชื่อคลาส
คุณสมบัติ
เมธอด









ตัวอย่าง โปรแกรม Hello (Hello.java)

5
3
1

อธิบาย
บรรทัดที่ 1 เป็นการประกาศชื่อคลาส
บรรทัดที่ 3 ประกาศเมธอด main( ) ของคลาส Hello
บรรทัดที่ 5 แสดงข้อความ ออกทางจอภาพ

ทำการคอมไพล์ซอร์สโปรแกรม (Source Program)



เมื่อประมวลผล (Run) โปรแกรม จะได้ผลลัพธ์ตามภาพ


จากโค้ดโปรแกรม Hello.java จะพบว่ามีเพียงเมธอดเดียวในโปรแกรมนี้ คือ main( ) เมื่อโปรแกรมถูกประมวลผล (Execute) ก็จะทำคำสั่งภายใน main( ) ทันที โดยจะแสดงข้อความผ่านทาง Output Unit ของระบบ (จอภาพ) ออกมาว่า Hello! you are a java programmer ?

5. แหล่งข้อมูลอ้างอิง :
1) http://en.wikipedia.org/wiki/Class_(computer_science)
2) http://odanobunaka.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3DObject%2520Oriented%2520Programming

6. คำถามท้ายบท
1) จงอธิบายความสำคัญของคลาส (class) มาพอสังเขป
2) คลาสกับออปเจ็คต์ต่างกันอย่างไร ?
3) เครื่องหมาย { ……… } ใช้เพื่อวัตถุประสงค์ใด ?
4) จงเขียนคลาสเครื่องคิดเลข (calculator)
5) จงเขียนคลาสลิฟต์ (Lift)
6) จงอธิบายความแตกต่างระหว่าง Properties และ Method ของคลาสมาพอสังเขป
7) ในการเขียนโปรแกรมภาษาจาวา หากตั้งชื่อคลาสคนละชื่อกับซอร์สโค้ด (Source Code) จะมีผล
อย่างไร ?

การติดตั้งโปรแกรม JDK 1.6.0 update 20

ภาคผนวก ก.
การติดตั้งโปรแกรม JDK 1.6.0 update 20


วัตถุประสงค์
1. เพื่อให้ผู้ศึกษาเข้าใจกระบวนการติดตั้งโปรแกรม JDK

ขั้นตอนการติดตั้ง
1. ดาวน์โหลดโปรแกรม JDK จากเว็บไซต์ http://www.oracle.com/us/sun/index.html

2. Double Click ไฟล์ jdk-6u20-windows-i586.exe


3. รอสักครู่จะปรากฏหน้าจอของโปรแกรม Windows Installerให้กดปุ่ม Next เพื่อไปยังหน้าต่อไป


4. กดปุ่ม Accept เพื่อยอมรับข้อตกลงในการใช้ซอฟต์แวร์

5. กำหนดโฟลเดอร์สำหรับติดตั้งโปรแกรม JDK 1.6.0 จากนั้นกดปุ่ม Next


6. หากทำการคลิ้กดูองค์ประกอบแต่ละตัว จะพบรายละเอียดและไดเรกทอรีที่จะทำการติดตั้งลงไป





หากไม่ต้องการเปลี่ยนแปลงค่าใดๆ ให้กดปุ่ม Next เพื่อไปยังขั้นตอนต่อไป

7. ชุดติดตั้งจะเริ่มทำการคัดลอกองค์ประกอบต่างๆ ลงในระบบ



8. ขั้นตอนต่อจากการติดตั้งตัว Development Ket คือการติดตั้ง Java Runtime Environment ซึ่งค่าโดยปริยาย (Default) จะถูกติดตั้งไว้ที่ C:\Program Files\Java\jre6\


ที่หน้านี้ให้กดปุ่ม Next


9. ตามภาพ จะแสดงการป้อนรหัสผ่าน การยืนยันรหัสผ่าน และการกำหนดภาษาที่รองรับ






10. เมื่อการติดตั้งองค์ประกอบต่างๆ เสร็จสิ้นลง จะปรากฏข้อความแจ้งให้ทราบ ในขั้นตอนนี้ให้กดปุ่ม Finish


เมื่อเสร็จสิ้นการติดตั้งโปรแกรม JDK 1.6.0 update 20 ผู้ใช้สามารถทำการทดสอบว่าการติดตั้งสมบูรณ์โปรแกรมสมบูรณ์หรือไม่โดยอาศัยการทดสอบรุ่น (Version) ของจาวาบนเครื่อง หรือทดสอบด้วยการคอมไพล์ซอร์สโค้ดภาษาจาวา ซึ่งจะบอกรายละเอียดได้มากกว่า

การตรวจสอบเวอร์ชั่นของจาวา

1. ไปที่ Start Menu เลือกคำสั่ง Run …

2. พิมพ์คำสั่ง cmd ลงในช่อง Open: แล้วกดปุ่ม OK


3. จะปรากฏหน้าต่างสำหรับรับคำสั่ง (Command Prompt)


4. พิมพ์คำสั่ง java -version ซึ่งเป็นคำสั่งสำหรับเรียกดูรุ่นของโปรแกรมจาวาบนเครื่อง ซึ่งเครื่องที่ติดตั้งโปรแกรมจาวาเอาไว้จะมีการตอบกลับมาด้วยรุ่นของจาวา









การตั้งค่าพาธสำหรับจาวา
การตั้งค่าพาธในระบบจะช่วยให้ระบบรู้จักที่อยู่ หรือตำแหน่งของคำสั่งต่างๆ ของโปรแกรมจาวา ดังนั้นจึงมีประโยชน์ต่อการคอมไพล์และรันโปรแกรมภาษาจาวาอย่างมาก เนื่องจากสามารถคอมไพล์และรันโปรแกรมจากไดเรกทอรีใดก็ได้
การตั้งค่าพาธสำหรับโปรแกรมจาวาจะประกอบไปด้วยการแก้ไขค่า System Variable ที่ชื่อว่า PATH และการเพิ่มตัวแปลที่ชื่อว่า JAVA_HOME ซึ่งมีรายละเอียด ดังนี้
1. ไปที่ Start Menu เลือกคำสั่ง Settings


2. ที่ Control Panel จะเห็นคำสั่งมากมายของระบบ




3. ทำการดับเบิ้ลคลิ้กที่คำสั่ง System เพื่อแก้ไขค่าระบบ


4. ไปที่แท็ป Advanced จากนั้นเลือกคำสั่ง Environment Variables


5. ที่ System Variables ชื่อ Path เลือกและกดปุ่ม Edit

6. เพิ่มพาธของ JDK 1.6.0 ต่อท้ายค่าเดิมของตัวแปรพาธ

C:\Program Files\Java\jdk1.6.0_20\bin






7. กดปุ่ม เพื่อบันทึกค่าตัวแปร Path

8. กดปุ่ม อีกครั้ง เพื่อบันทึกค่า System Properties


การคอมไพล์โปรแกรมที่เขียนด้วยภาษาจาวา
การคอมไพล์โปรแกรมภาษาจาวา (Java Code) จะอาศัยคำสั่ง javac โดยมีรูปแบบการเรียกใช้ ดังนี้
javac <ซอร์สโค้ดภาษาจาวา.java>





เพื่อให้เห็นภาพได้ชัดเจนขึ้น ให้ทำการเขียนคำสั่งภาษาจาวาแล้วตั้งชื่อว่า HelloWorld.java โดยมีรายละเอียด ดังนี้

จากนั้นไปที่ Start Menu แล้วเลือกคำสั่ง Run …

พิมพ์คำสั่ง cmd เพื่อเรียกใช้ Command Prompt แล้วกดปุ่ม OK


พิมพ์คำสั่ง cmd เพื่อเรียกใช้ Command Prompt แล้วกดปุ่ม OK


พิมพ์คำสั่ง javac ตามด้วยชื่อซอร์สโค้ด แล้วกดปุ่ม Enter


ตรวจสอบว่าคอมไพล์แล้วได้ Object File หรือไม่ด้วยการใช้คำสั่ง dir


พิมพ์คำสั่ง java แล้วตามด้วยชื่อ Object File เพื่อทดสอบผลการทำงานของโปรแกรม

การติดต่อ MS Access Database ด้วย JDBC

การติดต่อ MS Access Database ด้วย JDBC
ไฟล์ JDBC_SELECT.java
import java.io.*;
import java.sql.*;

class JDBC_SELECT
{

static final String DB = "jdbc:odbc:ODBC_NORTHWIND";
static final String USER = "";
static final String PASSWORD = "";

public static void main(String[] args)
{
int ID=0;
String Name = "";

System.out.println("==========================");
System.out.println("SupplierID CompanyName ");
System.out.println("==========================");

try
{
// สร้าง class ชื่อว่า sun.jdbc.odbc.JdbcOdbcDriver ขึ้นมา เพื่อกำหนด Driver ให้กับ JDBC
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// สร้าง Connection object เพื่อใช้ในการติดต่อกับฐานข้อมูล
Connection db = DriverManager.getConnection(DB, USER, PASSWORD);

// SQL command
String query = "select * from Suppliers ";

// ใช้สำหรับ สร้าง statement ที่จะใช้ในการ execute sql command
Statement stmt = db.createStatement();

// สร้าง Resultset เพื่อรับผลของการ execute query ตัว resultset นี้ จะมีการทำงานเหมือน
// Recordset ก็คือเป็นคล้าย ๆ กับ pointer ที่ชี้ข้อมูลในตารางที่ตำแหน่งปัจจุบัน หรือ Record ปัจจุบัน
ResultSet rs = stmt.executeQuery(query);

// rs.next() ใช้ในการเลื่อน record ไปยัง record ถัดไป จะกว่าจะหมด
while (rs.next())
{

//SupplierID = rs.getString(1); //หรือใช้rs.getInt("id"));
//CompanyName = rs.getString(2); // หรือใช้ rs.getString("name"));

ID = rs.getInt("SupplierID");
Name = rs.getString("CompanyName");

//System.out.println("ID = " + ID + "\n" + "Name = " + Name);
System.out.println(+ ID + " " + Name);

}
// จะเห็นว่าผลของการทำ Loop while จะให้ค่า record สุดท้ายมาเก็บไว้ในตัวแปร ID, Name
// ซึ่งมันจะทับค่าข้อมูลที่ได้มาจาก record แรก เราจะมีวิธีการแก้ไขอย่างไร? ไปดูใน MyJDBCvector.java

rs.close();
stmt.close();
db.close();
}
catch (Exception ex)
{
System.err.println(ex);
System.out.println("Error");
System.out.println(ex);
}

}
}// end class