เริ่มตนกับภาษาจาวา
Modern Programming Languages
1
เริ่มตนกับภาษาจาวา โปรแกรมภาษาจาวาเบื้องตน เริ่มตนกับภาษาจาวา
การตั้งชื่อ, คียเวิรด และชนิดของตัวแปร
นิพจนและ โครงสรางของเงื่อนไข
สตริงและอะเรย
การเขียนโปรแกรมเชิงวัตถุ คลาสและวัตถุ
คุณสมบัติของ การเขียนโปรแกรมเชิงวัตถุ
(class andobject)
การดักจับขอผิดพลาด Exceptions
การสรางสวนติดตอกับผูใ ช ( Graphic User Interfaces ) สราง GUIs
การจัดการกับ เหตุการณ
สวนประกอบ ในแพ็คเกจ AWT
จาวาแอพเพลต จาวาแอพเพลตเบื้องตน
มัลติเทรดดิ้ง เทรด
การติอตอสื่อสาร การจัดการอินพุต/เอาตพุต และไฟล
[email protected]
เน็ตเวิรค
1/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
จุดเดนของภาษาจาวา •
Simple : ภาษาจาวางายในการเขียนโปรแกรม คือ ไมมีพอยนเตอร มีกลไกในการจัดการหนวยความจํา
ใหอัตโนมัติ • • • • •
ขอกําหนดของภาษาจาวาไมขึ้นกับระบบปฏิบัติการ สามารถนําไปทํางานไดบน ระบบปฏิบัติการอื่นๆได คุณสมบัตินี้เรียกวา “Write Once Run Anywhere” Object Oriented Programming : เปนภาษาที่ออกแบบมาเพื่อใชในการเขียนโปรแกรมเชิงวัตถุ เชน การสืบทอดคุณสมบัติ, การซอนรายละเอียด และการใชงานไดหลายรูปแบบ เปนตน Dynamic : ออกแบบมาเพื่อสามารถปรับเปลี่ยนหรือเพิ่มเติมไลบารี่ตางๆไดงาย Multithread : สามารถทํางานไดหลายๆงาน ไดพรอมกัน Code Security : ตรวจสอบจาวาไบตโคด วาโปรแกรมถูกตองตามขอกําหนดหรือไม โดยมีการ ตรวจสอบความผิดพลาดที่อาจเกิดขึ้นในกระบวนการตางๆ อาทิเชน การคอมไพล และการรันโปรแกรม Portable
:
องคประกอบเทคโนโลยีจาวา
องคประกอบหลัก แบงเปน 3 สวน ดังนี้ 1. Java Virtual Machine (JVM) เปนสวนที่ทําหนาที่เปนตัวอินเตอรพรีเตอร (interpreter) – เปนสวนที่ทําหนาที่เปนตัวอินเตอรพรีเตอร (interpreter) คือ จะทําการแปลจาวาไบตโคด ใหเปนภาษา ที่เครื่องเขาใจ – จาวาไบตโคดสามารถรันไดหลายแพลตฟอรม ถาแพลตฟอรมนั้นมี JVM 2. Java Runtime Environment (JRE) เปนสวนที่ใชในการรันโปรแกรมภาษาจาวา เปนสวนที่ใชในการรันโปรแกรม โดยจะทํางาน 3 ขั้นตอน ดังนี้ – โหลดไบตโคดโดยใช Class loader คือการโหลดคลาสทุกคลาสที่เกี่ยวของในการรันโปรแกรม – ตรวจสอบไบตโคดโดยใช Bytecode Verifier คือการตรวจสอบวาโปรแกรมจะตองไมมีคําสั่งที่ทําใหเกิด ความผิดพลาดกับระบบ เชน การแปลงขอมูลที่ผิดพลาด หรือมีการแทรกแซงเขาสูระบบภายในเปนตน – รันไบตโคด โดยใช Runtime Interpreter 3. Java 2 Software Developer Kit (J2SDK) เปนชุดพัฒนาโปรแกรมภาษาจาวา ประกอบไปดวยโปรแกรม ตางๆ แตไมมีโปรแกรม Editor รวมอยูดวย อยางเชน – โปรแกรมคอมไพเลอร (javac.exe) – โปรแกรมอินเตอรพรีเตอร (java.exe)
จาวาคอมไพลเลอร และ การรันโปรแกรมจาวา การสรางและรันโปรแกรมดวยภาษาจาวานั้นอาศัย J2SDK แตเนื่องจากโปรแกรมนี้ไมมีโปรแกรม Editor รวมอยูดวย ในการสรางไฟลตองเปน text file ที่มีนามสกุล “.java” ในระบบปฏิบัติการวินโดวสสามารถ สรางโปรแกรมภาษาจาวาโดยใช notepad สวนการคอมไพลและรันโปรแกรมจะตองเรียกใชงานผาน command line ซึ่งจะไมสะดวกในการใชงาน
[email protected]
2/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
Runtime
Class Loader Compile
จาวาซอรสโคด javac.exe
จาวาไบตโคด
จาวา คอมไพลเลอร
จาวาไบตโคด ไฟลนามสกุล .class
java interpreter : JVM
ไฟลนามสกุล .java
Runtime Hardware
Mobile
PDA
Notebook
Unix system
Macintosh
แพลตฟอรมของเทคโนโลยีจาวา (Platform of Java Technology) Test.class Java API JVM
Java Platform
Hardware Platform
แพลตฟอรมคือฮารดแวรและซอฟตแวรที่โปรแกรมจะใชในการประมวลผล โดยทั่วไปการทํางานจะ พิจารณาจากองคประกอบของฮารดแวรและระบบปฏิบัติการที่ใชเชน Windows, Linux และ MacOs แต แพลตฟอรมของเทคโนโลยีของจาวาจะใชเพียงสวนของซอฟตแวรเทานั้น ประกอบไปดวย • Java Virtual Machine (JVM) เปนสวนที่ใชติดตอกับแพลตฟอรมสวนฮารดแวร
[email protected]
3/37
เริ่มตนกับภาษาจาวา •
Modern Programming Languages
เปนขอกําหนดที่วาดวยคลาสและ อินเตอรเฟสตางๆ ที่กําหนดไวในแพ็กเกจมาตรฐานของภาษาจาวาคูมือ Java API จะแสดง รายละเอียดตางๆ ของคลาสหรืออินเตอรเฟสดังนี้ o ลําดับการสืบทอดคลาส o คําอธิบายเกี่ยวกับคลาสและจุดประสงคทั่วไป o รายชื่อคุณสมบัติตางๆและอธิบายรายละเอียดของคลาส o รายชื่อเมธอดตางๆและอธิบายรายละเอียดของคลาส o รายชื่อ Constructor ตางๆและอธิบายรายละเอียดของคลาส
Java Application Programming Interface (Java API)
แพลตฟอรมของจาวา 2 (Platform of Java 2)
แพลตฟอรมของจาวา 2 มี 3 รูปแบบคือ
[email protected]
4/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
1. Java 2 Platform, Standard Edition (J2SE) เปนแพลตฟอรมที่ใชในการพัฒนาโปรแกรม
ภาษาจาวากับเครื่องพีซีทั่วไป ประกอบดวย Java Java Applet (โปรแกรมจาวาที่รันบนบราวเซอร)
Application
(โปรแกรมใชงานทั่วไป) และ
เปนแพลตฟอรมที่มุงเนนในการพัฒนา โปรแกรมเครือขาย สําหรับใชงานในองคกร โดยใชโปรแกรม Application Server หรือ Web
2. Java 2 Platform, Enterprise Edition (J2EE)
Server 3. Java 2 Platform, Micro Edition (J2ME) เปนแพลตฟอรมที่ใชพัฒนาโปรแกรมเพื่อใชงาน
กับอุปกรณอิเล็กทรอนิกส ที่มีทรัพยากรจํากัด เชน มือถือหรือพีดีเอ (PDA : Digital Asistance)
Personal
การเขียนโปรแกรมคอมพิวเตอร การเขียนโปรแกรมคอมพิวเตอรมี 2 แบบ คือ 1. การเขียนโปรแกรมแบบโครงสราง (Structure Programming) C, Pascal, Basic, ... 2. การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming : OOP) C++, Java, ...
การเขียนโปรแกรมแบบโครงสราง การเขียนโปรแกรมแบบโครงสราง คือ โปรแกรมจัดแบงออกเปนชุดคําสั่งยอยๆ หรือฟงกชันหลายๆ ฟงกชัน ซึ่งฟงกชันหนึ่งจะมีหนาที่เปนโปรแกรมหลัก (Main Function) และโปรแกรมหลักจะเรียกฟงกชันยอย (Sub Function) ใดๆ หรือฟงกชันยอยใดๆ จะเรียกฟงกชันยอยอื่นๆไดตามชนิดของโครงสราง
Global dada …. …. Sub Function 1 Main Function …. Call Sub Function 1
Sub Function 2
…. Sub Function 3
Call Sub Function 2 …. Call Sub Function 3 …. …. Call ………………
Sub Function 4
Sub Function N
จากรูปขางตน การทํางานในโปรแกรมหลักจะมีการเรียกใชงานฟงกชันยอยหลายๆฟงกชัน หาก โปรแกรมมีขนาดใหญ มีการทํางานที่ซับซอนมากขึ้น อาจเกิดปญหาจากการเรียกใชขอมูล (Global data) เดียวกัน ทําใหเกิดความยุงยากมากขึ้น ซึ่งทําใหยากตอการแกไขโปรแกรมในภายหลัง
[email protected]
5/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
การเขียนโปรแกรมเชิงวัตถุ การเขียนโปรแกรมเชิงวัตถุ คือ การมองสิ่งตางๆรอบตัวเปนวัตถุ(object) ทั้งที่เปน รูปธรรมและ นามธรรม เมื่อมองสิ่งตางๆ เปนวัตถุไดแลว เราจะมีตนแบบของสิ่งนั้นๆ ทําใหการเขียนโปรแกรมเปนเรื่องงาย สามารถทําไดรวดเร็ว และการปรับปรุงแกไขโปรแกรมขนาดใหญใชเวลานอยลง • รูปธรรม คือ สิ่งที่จับตองได เชน รถยนต, นักศึกษา, คอมพิวเตอร เปนตน • นามธรรม คือ สิ่งที่จับตองไมได เชน คะแนนรายวิชา, ตารางเที่ยวบิน, การวาดรูป เปนตน ออบเจกต ประกอบไปดวย 2 สวน คือ • คุณลักษณะ (attribute) คือ สิ่งที่บอกลักษณะทั่วไปของวัตถุ หรือขอมูลของวัตถุ (data) • พฤติกรรม (behavior) คือ สิ่งที่วัตถุสามารถกระทําได หรือการกระทําของวัตถุ (method) ตัวอยาง : ออบเจกตของรถยนต ออบเจกตของรถยนต
คุณลักษณะ สี : ดํา, แดง, บรอนซทอง ประเภท : กระบะ,สปอรต,เกง ยี่หอ : อีซูซุ, โตโยตา, บีเอ็มดับบิว รุน : vios,adventure,serie7
พฤติกรรม สตารตเครื่อง ดับเครื่อง เปลี่ยนเกียร การเบรค
แนวความคิดในการเขียนโปรแกรมเชิงวัตถุ •
• •
•
Abstract Data Type (ADT) การจัดรวมสิ่งตางๆ
รวมเปนกลุมหรือเปนการสรางคลาสนั่นเอง (Class) คือการสรางระบบที่มีความซับซอน นั้นจะตองมีการสรางองคประกอบยอยในแตละสวนดวย แนวความคิดของ ADT การซอนรายละเอียด (Encapsulation) คือการปองกันไมใหออบเจกตภายนอกเขาถึงขอมูลไดอยาง อิสระ ขอดีคือสรางความปลอดภัยใหกับขอมูลได เนื่องจากขอมูลจะถูกเขาถึงไดจากผูมีสิทธิ์เทานั้น การสืบทอด (Inheritance) การสืบทอดคุณสมบัติจากคลาสแมไปยังคลาสลูก คือคลาสลูกสามารถสืบ ทอดคุณสมบัติบางอยางมาจากคลาสแมไดเลย ขอดีคือสามารถนําออบเจกตกลับมาใชใหม (reuse) ประหยัดเวลาในการทํางาน การใชงานไดหลายรูปแบบ (Polymorphism) คือเมธอดหนึ่งๆ ที่ทํางานไดหลายๆรูปแบบ กลาวคือ เมธอดชื่อเดียวสามารถทํางานแตกตางกันได แบงเปน 2 แบบ คือ โอเวอรโหลดดิ้ง(Overloading) และ การโอเวอรไรดิ้ง (Overriding) จะกลาวในโดยละเอียดในบทที่ 5 ตอไป
[email protected]
6/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
คลาส (Class) คลาสเปรียบเสมือนพิมพเขียว (template) ซึ่งกําหนดรายละเอียดของขอมูล (variable/data member) และพฤติกรรม (method) เรียกวาเปนตนแบบใหกับออบเจกตนั่นเอง ดังนั้นการสรางออบเจกตจะตองสรางคลาส ขึ้นมากอน โดยองคประกอบของคลาส มีดังนี้ • ชื่อคลาส • ขอมูล (variable/data member) • การทํางาน (method/function) ตัวอยาง : คลาสรถ object2
object3 object1 Template Class Car Color Type Brand Serie startEngine stopEngine changeGear break
Attribute/Object variable/Data member
Behavior/Method/Function
object5
object4
object6
จากรูปขางตน จะเห็นไดวาจากคลาสตนแบบของรถ (Class Car) ซึ่งประกอบไปดวยคุณลักษณะและ พฤติกรรมที่แสดงโครงสรางหรือตนแบบของรถไวนั้น เราสามารถนําโครงสรางนี้มาสราง ออบเจกตของรถขึ้นมาใช งานไดอีกหลายคัน ดังนั้นสามารถกลาวไดวากอนสรางออบเจกตขึ้นมาใชงานนั้น จะตองสรางคลาสขึ้นมากอน เสมอ
[email protected]
7/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
Variable Method และ Message •
Variable : ชนิดของขอมูลในแตละออบเจกต
•
Method : การทํางานในแตละออบเจกต
•
Message : กลไกในการสื่อสารระหวางออบเจกต
ยกตัวอยางเชน แตละออบเจกตจะประกอบไปดวย Variable และ Method หาก Variables ถูกซอนรายละเอียด(private variable)ไมสามารถเรียกใช งานไดโดยตรง การขอใชขอมูลจากออบเจกตอื่นๆ สามารถทําไดโดยขอใชผาน Method ของออบเจกต
•
ออบเจกต A
ออบเจกต B message
method
method
variable
Return value
variable
จากรูปขางตน method จาก ออบเจกต A เรียกใช method จาก ออบเจกต B โดยสง message ไปยัง ออบเจกต B เมื่อ ออบเจกต B ไดรับก็จะประมวลผลตามคํารองขอเพื่อใหไดผลลัพธ จากนั้นจะสงผลลัพธ กลับไปยัง ออบเจกต A เรียกวาเปนการ Return value
การประกาศคลาส accessibility class ClassName { Attributes or Variables ……………… methodA() { ……………… } }
การประกาศตัวแปร รูปแบบ : accessibility dataType variableName;
ตัวอยาง : int count; private String name; public double gpa;
[email protected]
8/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
การประกาศเมธอด รูปแบบ : accessibility returnType methodName(parameter) { [Method Body] } ตัวอยาง : public void setName(String n) { name = n; }
การสรางออบเจกต สามารถทําได 2 วิธี คือ รูปแบบที่ 1 : ClassName objectName; objectName = new ClassName();
รูปแบบที่ 2 : ClassName objectName = new ClassName(); *** ในการสรางออบเจกต ใชคียเวิรด new เพื่อทําการสรางออบเจกต ซึ่งในการสรางออบเจกตจะมีสิ่งที่
เกิดขึ้น คือ • มีการจองพื้นที่หนวยความจํา เพื่อเก็บขอมูลของออบเจกต • มีการเรียกใชเมธอดพิเศษ(เมธอดที่มีชื่อเหมือนคลาส) ขึ้นเรียกวา constructor • กําหนดคาเริ่มตนใหกับตัวแปรของออบเจกต
ความแตกตางระหวางคลาสกับออบเจกต ชื่อ Class
Object
คําอธิบาย เปนพิมพเขียวหรือตนแบบในการ กําหนดคุณสมบัติและการทํางานไว เพื่อนําไปใช
ออบเจกตเกิดจากคลาส ประกอบดวย คุณสมบัติและการทํางานตามที่คลาส กําหนด
[email protected]
ตัวอยาง Class Student { String id,name; double gpa; void show() { System.out.println(“ID : ”+id); System.out.println(“Name : ”+name); System.out.println(“GPA : ”+gpa); } } Student s1 = new Student(); Student s2 = new Student();
9/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
ตัวอยางการเขียนโปรแกรมดวยภาษาซี
ตัวอยางการเขียนดวยภาษาจาวา
[email protected]
10/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
ตัวอยาง Command Line Arguments C Code void main(int argc, char* argv[]) { …… } o argc // จํานวนของ arguments ที่สงผาน command line o
argv // พอยเตอรอะเรยจัดเก็บสตริงของ arguments ที่รับเขามา
Java Code public static void main (String args[]) { …… } o args // อะเรยจัดเก็บสตริงของ arguments ที่รับเขามา
[email protected]
11/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
วิธีการดาวนโหลดและการติดตัง้ ตัวแปลภาษาจาวา การดาวนโหลดโปรแกรมที่เกี่ยวของในภาษาจาวา มีดังนี้ 1. J2SDK (Java 2 Software Developer Kit) เปนชุดพัฒนาจาวาแอพพลิเคชั่น
2. 3.
ประกอบไปดวย
โปรแกรมคอมไพเลอร(Compiler : javac.exe), โปรแกรมของตัวแปลภาษา(Interpreter : java.exe) และโปรแกรมอื่นๆ ซึ่งยังครอบคลุม J2RE ไวในตัวมันอีกดวย J2RE ใชในการรันโปรแกรมจาวา ประกอบไปดวยไลบรารี่ตางๆ ที่เขียนขึ้นดวยภาษาจาวา (สําหรับ เครื่องที่ไมมี J2SE SDK ได) J2SE Documentation คือเอกสารที่ใชประกอบการใชงานแพ็คเกจตางๆในภาษาจาวา
ขั้นตอนในการดาวนโหลด มีดังนี้ 1. เขาไปที่ http://java.sun.com แลวคลิกที่ลิงค J2SE 1.4.2 SDK ที่อยูในหัวขอ Popular Downloads ดังรูปดานลาง
2.
เมื่อเขาไปยังหนาดาวนโหลด ในหัวขอ J2SE SDK ดังรูปหนาตอไป
[email protected]
v1.4.2_06 SDK
และคลิกที่ลิงค
Download J2SE
12/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
3.
ในหนาจอนี้จะเปนขอตกลงในการดาวนโหลด ใหเลือก Accept แลวคลิก Continue ดังรูปดานลาง
4.
เขาสูหนาจอในการดาวนโหลด ในหัวขอ Windows Installation, Multi-language ดังรูปหนาตอไป
[email protected]
Platform
ใหเลือก Windows
Offline
13/37
เริ่มตนกับภาษาจาวา
5.
Modern Programming Languages
กลับไปที่หนาจอในขอ 2. เพื่อทําการดาวนโหลด เอกสารที่ใชประกอบในการใชงานภาษาจาวา ในหัวขอ J2SE v1.4.2 Documentation แลวคลิก Dowonload ดังรูปดานลาง
[email protected]
14/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
ขั้นตอนในการติดตั้งตัวแปลภาษาจาวา มีดังนี้ 1. ทําการดับเบิ้ลคลิกที่ไฟล j2sdk-1_4_2_08-windows-i586-p.exe ที่ดาวนโหลดมา 2. จะเขาสูหนาจอที่เปนขอตกลงในการติดตั้งโปรแกรม ใหเลือก I accept the terms agreement แลวคลิกปุม Next ดังรูปดานลาง
3.
in the license
จะมีองคประกอบใหเลือกในการติดตั้งอยู 4 สวน คือ Development Tools, Demos, Source Code และ Public Java Runtime Environment หากตองการติดตั้งทุกองคประกอบ ใหคลิกปุม Next แต หากไมตองการติดตั้งองคประกอบใดสามารถทําได ยกตัวอยางเชน ไมตองการติดตั้ง Demos ใหคลิกที่ หัวขอ Demos แลวเลือก “Don’t install this feature now.” ดังรูปดานลาง
[email protected]
15/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
4.
จากนั้นจะแสดงหนาจอใหทําการเลือกบราวเซอรที่ใชในการรันดวย Java Plug-in แลวคลิกปุม Next ดัง รูปดานลาง
5.
เมื่อการติดตั้งเสร็จใหคลิกปุม Finish
การติดตั้งเอกสารประกอบโปรแกรมภาษาจาวา ทําการขยายไฟล (extract) j2sdk-1_4_2-docs.zip ที่ดาวนโหลดมา โดยนําไปเก็บไวในโฟลเดอรใดก็ ไดที่ตองการ จะใหดีควรเก็บที่ที่อยูของโปรแกรมจาวาจะไดไมลืม หากติดตั้งโปรแกรมที่ C:\j2sdk1.4.2_08 ให สรางโฟลเดอร docs แลวนําไฟลที่ขยายเก็บในโฟลเดอรนี้ ดังรูปดานลางแสดงใหเห็นองคประกอบของไฟล j2sdk-1_4_2-docs.zip ที่ทําการขยายออกมา
[email protected]
16/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
หากตองการศึกษาการทํางานของ Java API ใหเขาไปที่โฟลเดอร api แลวดับเบิ้ลคลิกไฟล index.html แสดงดังรูปดานลาง
การสรางและรันโปรแกรมดวยภาษาจาวา การสรางไฟลตองเปน text file ที่มีนามสกุล “.java” ในระบบปฏิบัติการวินโดวสสามารถสรางโปรแกรม ภาษาจาวาโดยใช notepad สวนการคอมไพลและรันโปรแกรมจะตองเรียกใชงานผาน command line ซึ่งจะไม สะดวกในการใชงาน public class FirstProgram { public static void main(String args[]) { System.out.println("Hello, JAVA"); } }
เปด notepad แลวทําการพิมพโปรแกรมดังรูปดานบน โดยที่อักษรตัวพิมพเล็กและตัวพิมพใหญมีผลใน การทํางานของภาษาจาวา เพราะภาษาจาวาเปน case-sensitive บันทึกไฟลดวยชื่อ FirstProgram.java ใน สวนของการบันทึกไฟลโปรแกรมภาษาจาวามีกฎดังนี้ • หากประกาศชื่อคลาส โดยระบุหนาคลาสเปน public แลวจะตองทําการบันทึกชื่อไฟลใหเหมือนกับชื่อ คลาส อยาลืมวาภาษาจาวาเปน case-sensitive • ใน 1 ไฟลประกอบไปดวยกี่คลาสก็ได แตสามารถประกาศเปน public คลาสไดเพียงคลาสเดียว
[email protected]
17/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
ในกรณีที่คลาสไมไดประกาศถูกเปน public จะทําใหสามารถตั้งชื่อไฟลเปนอะไรก็ได แตการตั้งชื่อไฟล ใหตรงกับชื่อคลาสนั้นเปนที่นิยม เพราะเมื่อคอมไพลโปรแกรมผานจะไดไฟล “.class” ทําใหสามารถ อางอิงไดวาไฟล “.class” นี้คอมไพลมาจากไฟล “.java” ไฟลใด เปดหนาตาง DOS ไปยังไดเร็กทอรี่ ที่เก็บไฟล FirstProgram.java จากนั้นคอมไพลโปรแกรมดวย คําสั่งดังนี้ •
javac FirstProgram.java
ถ า คอมไพล เ สร็ จ สิ้ น ด ว ยดี และเมื่ อ ตรวจสอบในไดเร็ ก ทอรี่ ที่ ทํ า งานอยู จ ะพบไฟล ใ หม ถู ก สร า งขึ้ น ชื่ อ FirstProgram.class ดังรูปดานลาง
จากนั้นทําการรันโปรแกรมดวยคําสั่งดังนี้ java FirstProgram
ที่หนาจอจะแสดงขอความ Hello, JAVA ดังรูป ดานบน
[email protected]
18/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
จากโคดโปรแกรม FirstProgram.java ดังรูปดานบน ในการคอมไพลเกิดปญหา มีการแจงตําแหนง ขอผิดพลาดที่บรรทัดที่ 4 วาตองการเครื่องหมายเซมิโคลอน ดังรูปผลการคอมไพลดานบน
จากโคดโปรแกรม FirstProgram.java ดังรูปดานบน ในการคอมไพลเกิดปญหา มีการแจงตําแหนง ขอผิดพลาดที่บรรทัดที่ 1 ดังรูปผลการคอมไพลดานบน ซึ่งปญหานี้เกิดจากชื่อไฟลกับชื่อคลาสไมตรงกัน แตในปจจุบันมีการพัฒนาโปรแกรม IDE (Integrated Development Environment) ขึ้นมาเปน เครื่องมือชวยในการพัฒนาโปรแกรมภาษาจาวา เพื่อใหสามารถพัฒนาโปรแกรมไดเร็วขึ้น จึงเลือกโปรแกรม JCreator ที่ออกแบบมาเพื่อเขียนโคดภาษาจาวา โดยสามารถเรียกคําสั่งในการคอมไพลและรันโปรแกรมที่ พัฒนาขึ้นจากเมนูที่กําหนดไว โปรแกรม JCreator เปน Editor ซึ่งสามารถทําการคอมไพลและรันโปรแกรม ภาษาจาวาได แตไมสามารถทําการดีบักได
[email protected]
19/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
วิธีการดาวนโหลดและติดตั้งโปรแกรม JCreator กอนการติดตั้งโปรแกรม JCreator จะตองลงโปรแกรม J2SE SDK และ J2SE Documentation เขาไปที่ http://www.jcreator.com/download.htm มีขั้นตอนในการดาวนโหลด มีดังนี้ 1. ทําการเลือก Download JCreator LE v2.50 – Freeware แสดงดังรูปดานลาง
2.
ทําการ Submit โดยจะตองใสชื่อ, นามสกุล และ อีเมล โดยเฉพาะอยางยิ่ง ตองเปนอีเมลที่ใชไดถูกตอง เนื่องจากทาง Xinox Software จะสงลิงคที่ใชในการดาวนโหลดกลับมาทางอีเมล แสดงดังรูปดานลาง
[email protected]
20/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
3.
เมื่อ Submit เรียบรอยแลว จะไดดังรูปดานลาง
4.
เช็คเมลที่ได การดาวนโหลดทําไดโดยคลิกลิงค URL ที่ใหมา แสดงดังรูปดานลาง
[email protected]
21/37
เริ่มตนกับภาษาจาวา 5. 6.
Modern Programming Languages
เมื่อดาวนโหลดเสร็จ ใหทําการขยายไฟล (extract) jcrea250.zip กอน จากนั้นจะไดไฟล Setup.exe ทําการดับเบิ้ลคลิกไฟล Setup.exe เพื่อเริ่มการติดตั้งโปรแกรม JCreator เขาหนาจอการติดตั้งโปรแกรม ทําการคลิกปุม Next แสดงดังรูปดานลาง
7.
จะเขาสูหนาจอที่เปนขอตกลงในการติดตั้งโปรแกรม ใหเลือก I accept the agreement แลวคลิกปุม Next แสดงดังรูปดานลาง
8.
เลือกไดรฟและโฟลเดอรที่จะทําการติดตั้งโปรแกรม (ในที่นี้ไมจาํ เปนตองเปลี่ยนแปลง) คลิกปุม Next แสดงดังรูปดานลาง
[email protected]
22/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
9.
กําหนดชื่อโฟลเดอรใน Start Menu (ในที่นี้ไมจําเปนตองเปลี่ยนชื่อ) แสดงดังรูปดานลาง
10.
เลือก Create a desktop icon เพื่อสรางไอคอนที่เดสกท็อป อํานวยความสะดวกในการเลือกใชงาน ถา ไมตองการไอคอน ใหคลิกที่เลือกไวแลวออกไป จากนั้นคลิกปุม Next แสดงดังรูปดานลาง
11.
เขาสูหนาจอแสดงขอความแสดงรายละเอียดในการติดตั้ง ถาทุกอยางเปนไปตามความตองการ คลิกปุม Install หากตองการแกไขใหคลิกปุม Back กลับไปยังตําแหนงที่ตองการแกไข แสดงดังรูปดานลาง
[email protected]
23/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
12.
เมื่อติดตั้งโปรแกรมเสร็จใหเลือก Launch JCreator LE เพื่อทําการกําหนดคาเริ่มตนในการใชงาน จากนั้นคลิกปุม Finish แสดงดังรูปดานลาง
13.
ทําการกําหนดชนิดไฟลที่เกี่ยวของในการใชโปรแกรม JCreator ไฟลที่ปรากฏอยูเริ่มตนมี 3 ชนิด ไม ตองทําการเพิ่มหรือลบชนิดใดออกไป ใหคลิกปุม Next แสดงดังรูปดานลาง
14.
ใหทําการตั้งคา path ไปยังโปรแกรมจาวาที่ทําการติดตั้งไวกอนหนานี้ C:\j2sdk1.4.2_08 แสดงดังรูป ดานลาง
[email protected]
24/37
เริ่มตนกับภาษาจาวา 15.
Modern Programming Languages
ใหทําการตั้งคา path ไปยังเอกสารประกอบการใชงานภาษาจาวา ที่ไดทําการขยายไวกอนหนานี้ C:\j2sdk1.4.2_08\docs
การใชงานโปรแกรม JCreator ในการพัฒนาโปรแกรมดวยภาษาจาวา เปดโปรแกรม โดยเลือกที่ไอคอน
[email protected]
จะไดหนาตางแสดงดังรูปดานลาง
25/37
เริ่มตนกับภาษาจาวา 1.
Modern Programming Languages
การสรางไฟลเลือกไปที่เมนู FileÆNew เกิด Dialog ดังรูปดานลาง
เลือก Tab Files แลวเลือก icon Java File จากนั้นทําการพิมพชื่อไฟล เมื่อตั้งชื่อไฟลเสร็จใหคลิกปุม OK จะ ไดผลดังรูปดานลาง
*** เลือก Folder ที่ตองการเก็บไฟล (สําหรับใน Jcreator ตองทําการสรางไฟลใน subfolder มิฉะนั้น
จะ compile ไมผาน )
[email protected]
26/37
เริ่มตนกับภาษาจาวา 2.
Modern Programming Languages
การคอมไพลและรันโปรแกรม 1
2
ในสวนของปุมที่ 1 ทําการคอมไพล ในสวนของปุมที่ 2 ทําการรัน ทําการพิมพโปรแกรมดังรูปดานลาง เมื่อเสร็จแลวทําการคลิกปุมคอมไพล ถาการคอมไพลผานไปดวยดี จะแสดงขอความที่กรอบขางลาง วา Process completed.
อธิบายโปรแกรม บรรทัดที่ 1 กําหนดชื่อคลาสเปน FirstProgram.java เมื่อสั่งคอมไพลจะไดไฟล FirstProgram.class บรรทัดที่ 2 เมธอด main เปนเมธอดหลักที่เริ่มการทํางาน (ถาไมมีจะไมสามารถรันการทํางานได) บรรทัดที่ 3 เรียกใชเมธอด println เพื่อแสดงขอความ Hello, JAVA ออกทางหนาจอ *** เมธอด main ในภาษาจาวา public static void main(String args[]) { … } o public กําหนดให main สามารถเรียกใชไดทุกที่ คือให Java Interpreter สามารถเรียก o o
เมธอด main เริ่มทํางานได static เปนคียเวิรดในการกําหนดใหเมธอด main สามารถทํางานไดโดยไมตองสรางออบ เจกตดวยคําสั่ง new void เปนตัวบอกวาเมธอดนี้ไมมีการคืนคา
[email protected]
27/37
เริ่มตนกับภาษาจาวา o
Modern Programming Languages String args[] command line argument ที่ใชรับคาพารามิเตอรเขามาในเมธอด main
จะมีชนิดขอมูลเปนอะเรยสตริง จากนั้นคลิกปุมเพื่อรันโปรแกรม จะไดผลแสดงดังรูปดานลาง
รูปดานลาง ยกตัวอยางโคดที่คอมไพลไมผาน เกิดขอผิดพลาดแจงวา C:\Modern Programming\1_48\FirstProgram.java:1: class Firstprogram is public, should be declared in a file named Firstprogram.java public class Firstprogram { ^ 1 error
[email protected]
28/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
เนื่องจากสรางคลาสโดยระบุหนาคลาสเปน public แลวจะตองบันทึกชื่อไฟลใหเหมือนกับชื่อคลาส (ใน หนึ่งไฟลประกอบดวยกี่คลาสก็ได แตสามารถประกาศเปน public ไดเพียงคลาสเดียว) ถึงแมวาจะสามารถตั้งชื่อไฟลเปนชื่ออะไรก็ได ในกรณีที่คลาสนั้นไมถูกระบุเปน public แตก็ยังเปนที่ นิยมวาควรตั้งชื่อไฟลใหเหมือนกับชื่อคลาส เพราะเมื่อคอมไพลแลวไดไฟล .class ออกมาแลว จะสามารถอางอิง ไดงายวาไฟล .class นี่คอมไพลมาจากไฟล .java ใด ในโคดนี้แกใหคอมไพลผานอยางไร ?
รูปดานลาง เปนอีกตัวอยางหนึ่งที่คอมไพลไมผาน ซึ่งมีขอผิดพลาดแจงวา C:\Modern Programming\1_48\FirstProgram.java:4: ';' expected } ^ 1 error
[email protected]
29/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
ในโคดขางบนนี้แกใหคอมไพลผานอยางไร ?
รูปดานลาง เปนตัวอยางหนึ่งที่คอมไพลไมผาน ซึ่งมีขอผิดพลาดแจงวา C:\Modern Programming\1_48\FirstProgram.java:2: invalid method declaration; return type required public static main(String args[]) { ^ 1 error
ในโคดนี้แกใหคอมไพลผานอยางไร ?
[email protected]
30/37
เริ่มตนกับภาษาจาวา 3.
Modern Programming Languages
การรับคา command line arguments ใหทดลองพิมพโปรแกรมดังรูปขางลาง แลวทําการคอมไพลให ผานแลวรันเพื่อดูผลการทํางาน
ผลการรันที่ไดคือ Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at ShowArguments.main(ShowArguments.java:3) Press any key to continue...
ไมสามารถแสดงผลการทํางานไดเนื่องจาก ยังไมไดกําหนดคา arguments ที่ตองการแสดงออกทางหนาจอ ในโคดโปรแกรมคา arguments เก็บอยูในตัวแปรอะเรยสตริงชื่อ args
[email protected]
31/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
การกําหนดคา arguments ดวยโปรแกรม JCreator ทําไดดังนี้ 1. เลือกเมนู ConfigureÆOptions 2. เลือก JDK Tools จากนั้น Select Tool Type เปน Run Application แลวเลือก default ดังรูป ดานลาง
3.
จากนั้นกดปุม Edit จะปรากฏไดอะล็อกดังรูปดานลาง
[email protected]
32/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
4.
จากนั้นเลือกแท็บ Parameters จะปรากฏดังรูปดานลาง
5.
ใหเลือกที่ชอง Prompt for main method arguments แลวทําการเลือกที่ชอง Use class-path ออก ดังรูปดานลาง
เมื่อทําการรันโปรแกรมจะแสดงไดอะล็อก ใหพิมพขอความที่ตองการแสดง 3 ขอความ ดังรูปดานลาง
[email protected]
33/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
จากรูปขางบน จะมีทั้งหมด 3 arguments โดยที่แตละตัวตองคั่นดวย space คือ 1. args[0] = Hello 2. args[1] = Java 3. args[2] = Programming
ผลการรันที่ไดคือ Line 1 Hello Line 2 Java Line 3 Programming Press any key to continue...
หากกําหนดคา arguments ไมครบ 3 ตัว เกิดผลอยางไร ? เพราะอะไรจึงเปนเชนนั้น
[email protected]
34/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
คําถามทายบท 1.
2. 3. 4.
มองสิ่งตางดังตอไปนี้ใหเปนวัตถุ โดยยกตัวอยางคุณลักษณะและพฤติกรรม อยางละ 5 ตัวอยาง 1.5. สุนัข 1.1. โทรทัศน 1.2. ตูเย็น 1.6. บาน 1.3. คอมพิวเตอร 1.7. รูปทรงตางๆ 1.4. นักเรียน อธิบายความแตกตางระหวางคลาสและออบเจกต การสรางออบเจกตทําได 2 วิธี แสดงวิธีสรางของทั้งสองวิธี อธิบายแนวความคิดในการเขียนโปรแกรมเชิงวัตถุ ทั้ง 4 แนวความคิด
แบบฝกหัดทายบท 1.
สรางคลาสตนแบบ Student.java ดังโปรแกรมตอไปนี้ จากนั้นคอมไพลและรันดูผลที่ได public class Student{ String id,name; double gpa; void show(){ System.out.println("ID : "+id); System.out.println("Name : "+name); System.out.println("GPA : "+gpa); } }
ผลที่ได
2.
จากนั้นทําการสรางโปรแกรม CreateStudent.java เพื่อนําคลาส Student มาใช public class CreateStudent{ public static void main(String[] args){ Student s = new Student(); s.id = "39111027"; s.name = "Manee"; s.gpa = 3.5; s.show(); } }
ผลที่ได
[email protected]
35/37
เริ่มตนกับภาษาจาวา 3.
Modern Programming Languages
จากขอ 2 ทําการแกไขที่เมธอด main ดังนี้ a. public static void main(String[] a)
ผลการคอมไพล
ผลรัน
b. static void main(String[] args)
ผลการคอมไพล
ผลรัน
c. public void main(String[] args)
ผลการคอมไพล
ผลรัน
d. public static void main(int[] args)
ผลการคอมไพล
[email protected]
36/37
เริ่มตนกับภาษาจาวา
Modern Programming Languages
ผลรัน
e. public static main(String[] args)
ผลการคอมไพล
[email protected]
37/37