Work1. พื้น ฐานโปรแกรมภาษา
JAVA
อาจารย์ศิริพร ศักดิ์บุญญารัตน์
ครูวิชาการ สาขาวิชาคอมพิวเตอร์และเทคโนโลยี
โรงเรียนมหิดลวิทยานุสรณ์
2. หัว ข้อ
ไวยากรณ์ร ะดับ ของคำา
ชนิด ข้อ มูล แบบพื้น ฐาน
ตัว แปรและค่า คงที่
ตัว ดำา เนิน การ
การแปลงชนิด ข้อ มูล
ชนิด ข้อ มูล แบบอ้า งอิง
คำา สัง อิน พุต และเอาท์พ ุต
่
4. ไวยากรณ์ร ะดับ ของคำา : comment
Comment คือ ข้อความที่แทรกอยู่ภายในโปรแกรม
ซึ่ง compiler จะไม่แปลข้อความนี้ให้เป็นส่วนหนึ่ง
ของโปรแกรม กล่าวคือข้อความนี้จะไม่มีผลต่อการ
ทำางานของโปรแกรม การ comment เขียนไว้เพื่อ
อธิบายโปรแกรมเพื่อให้ผอ่านเข้าใจโปรแกรมง่ายยิ่ง
ู้
ขึ้น และช่วยทำาให้การแก้ไขและปรับปรุงโปรแกรม
เป็นไปได้ง่ายขึ้น
ภาษาจาวากำา หนดรูป แบบของการเขีย น
comment ไว้ด ัง นี้
1) ข้อความเดียว จะใช้เครื่องหมาย // นำาหน้า
5. ไวยากรณ์ร ะดับ ของคำา : comment
ตัว อย่า ง แสดงการเขียน comment ในรูปแบบ
ต่างๆ
/* This program is to show
how to write comments */
public class CommentDemo {
// Main method
public static void main(String args[]) {
System.out.println("Document");
}
}
6. ไวยากรณ์ร ะดับ ของคำา : identifier
Identifier คือชือที่ตั้งขึ้นในภาษาจาวา ซึ่งอาจ
่
เป็นชื่อของคลาส ชื่อของตัวแปร ชือของเมธอด หรือ
่
ชือของค่าคงที่ ซึ่งจะต้องเป็นไปตามกฎการตั้งชือ
่ ่
ดังนี้
ต้องขึ้นต้นด้วยอักขระ A-Z, a-z, _ หรือ $ เท่านัน
้
ประกอบด้วยตัวอักขระมากกว่าหนึ่งตัว ตัวอักขระหลัง
จากตัวแรกนันจะต้องเป็นตัวอักขระข้างต้น หรือเป็นตัวเลข
่
0-9 เท่านั้น
ต้องไม่ตรงกับคำาสงวน
7. ไวยากรณ์ร ะดับ ของคำา : identifier
ตัว อย่า ง ของ ตัว อย่า ง ของ
indentifier ที่ถูกต้อง indentifier ที่ไม่ถูก
MyVariable ต้อง
_MyVariable My Variable
$data 9Pi
Sum_Score @net
… System
…
8. ไวยากรณ์ร ะดับ ของคำา : identifier
หลัก การตั้ง ชื่อ ที่น ิย มปฏิบ ัต ิก ัน โดยทั่ว ไป
การตั้งชื่อ Class
จะขึ้นต้นด้วยตัวอักษรพิมพ์ใหญ่แล้วตามด้วยตัวอักษรพิมพ์เล็ก หรือตัวเลข โดยจะ
ใช้ตัวอักษรพิมพ์ใหญ่สำาหรับอักษรนำาของแต่ละคำาที่ตามมาในชือ่
ควรเป็นคำานาม
ตัวอย่าง เช่น Student, Car, Sample เป็นต้น
การตั้งชื่อ Variable
จะขึ้นต้นด้วยตัวอักษรพิมพ์เล็ก โดยจะใช้ตัวอักษรพิมพ์ใหญ่สำาหรับอักษรนำาของ
แต่ละคำาทีตามมาในชื่อ
่
ควรเป็นคำานามหรือเป็นชื่อสั้นๆ
ตัวอย่าง เช่น id, name, surname, idNumber เป็นต้น
การตั้งชื่อ Method
จะใช้หลักการเดียวกับการตั้งชื่อตัวแปร แต่ควรเป็นคำากริยา
ตัวอย่าง เช่น getName, setName, showDetails เป็นต้น
การตั้งชื่อ Constant
จะใช้ตัวอักษรพิมพ์ใหญ่ทั้งหมด และจะแยกคำาโดยใช้เครื่องหมาย _
(underscore)
ควรเป็นคำานาม
ตัวอย่าง เช่น PI, MAX เป็นต้น
9. ไวยากรณ์ร ะดับ ของคำา : keyword
Keyword คือชือที่มีความหมายพิเศษในจาวา
่
compilerของภาษาจาวาจะเข้าใจความหมายและคำา
สั่งที่จะต้องดำาเนินการสำาหรับ keyword แต่ละตัว
ภาษาจาวาได้กำาหนด keyword ไว้ดังนี้ เช่น
10. ไวยากรณ์ร ะดับ ของคำา : สัญ ลัก ษณ์
แยกคำา (separator)
ภาษาจาวามีสญลักษณ์แยกคำาต่างๆ ทีสามารถนำาไปใช้เขียน
ั ่
ในโปรแกรมได้ดังนี้
สัญลักษณ์ หน้าที่
แยกคำา
; เพือระบุการสินสุดของคำาสังต่างๆ ภายใน
่ ้ ่
ภาษาจาวา
() สำาหรับต่อท้าย method หรือคำาสั่งอื่นๆ ใน
ภาษาจาวา
, สำาหรับแยกตัวแปรหรือคำาสั่งในภาษาจาวา
. เพือใช้ในการระบุ attribute หรือ method
่
ของ object หรือใช้ในการระบุ package
11. ไวยากรณ์ร ะดับ ของคำา : ช่อ งว่า ง
(whitespace)
โปรแกรมภาษาจาวาสามารถที่จะมีช่องว่างเพื่อแยก
คำา ประโยค หรือคำาสั่งต่างๆ ภายในโปรแกรมได้
โดยช่องว่างจะมีขนาดเท่าไรก็ได้ ทั้งนี้ compiler
ของภาษาจาวาจะไม่นำาช่องว่างมาเกี่ยวข้องกับขนาด
ของโปรแกรม bytecode ช่องว่างจะช่วยทำาให้รูป
แบบของ sourcecode ดูง่ายขึ้น รูปแบบของช่อง
ว่างประกอบด้วย
ช่อ งว่า ง
แท็ป
การขึ้น บรรทัด ใหม่
12. ไวยากรณ์ร ะดับ ของคำา : ข้อ มูล ค่า
คงที่ (Literals)
ข้อ มูล ค่า คงที่ (Literals) คือคำาที่ใช้แสดงข้อมูลที่
เป็นตัวเลข ตัวอักขระ ข้อความ หรือค่าทางตรรกะ ซึ่ง
ในภาษาจาวาได้กำาหนดข้อมูลค่าคงที่ไว้ 5 ประเภท
ดังนี้
ตรรกะ (boolean)
ตัวอักขระ (character)
ตัวเลขจำานวนเต็ม (integral)
ตัวเลขทศนิยม (floating point)
ข้อความ (string)
13. ชนิด ข้อ มูล แบบพืน ฐาน
้
ชนิด ข้อ มูล ในภาษาจาวาแบ่ง เป็น 2 ประเภท
คือ
ชนิดข้อมูลแบบพืนฐาน
้ (primitive data type)
ชนิดข้อมูลแบบอ้างอิง (reference data type)
ชนิด ข้อ มูล แบบพื้น ฐานแบ่ง เป็น 4 ประเภทคือ
ชนิดข้อมูลตรรกะ (logical) คือชนิด boolean
ชนิดข้อมูลอักขระ (textual) คือชนิด char
ชนิดข้อมูลตัวเลขจำานวนเต็ม (integer) คือชนิด byte,
short, int และ long
14. ชนิด ข้อ มูล แบบพืน ฐาน :
้
ขนาดและช่ว งค่า ของชนิด ข้อ มูล แบบ
พื้น ฐานของภาษาจาวา
15. ชนิด ข้อ มูล แบบพืน ฐาน : ข้อ มูล
้
ชนิด ตรรกะ
ข้อ มูล ชนิด ตรรกะมีข ้อ มูล ค่า คงที่อ ยู่ 2 ค่า คือ
true และ false
ตัว อย่า ง
boolean check = true;
เป็นการกำาหนดให้ตัวแปรชื่อ check มีชนิดข้อมูลเป็น
boolean และกำาหนดให้มค่าเป็น true
ี
16. ชนิด ข้อ มูล แบบพืน ฐาน : ข้อ มูล
้
ชนิด อัก ขระ
ข้อ มูล ชนิด อัก ขระใช้เ พื่อ แสดงตัว อัก ขระหนึง
่
ตัว
ตัว อย่า ง
char alphabet = ‘M’;
เป็นการประกาศตัวแปรชื่อ alphabet มีชนิดข้อมูลเป็น
char โดยมีค่าเป็นตัวอักขระ M
17. ชนิด ข้อ มูล แบบพืน ฐาน : ข้อ มูล
้
ชนิด อัก ขระ
อัก ขระพิเ ศษที่น ย มใช้โ ดยทั่ว ไป
ิ
18. ชนิด ข้อ มูล แบบพืน ฐาน : ข้อ มูล
้
ชนิด จำา นวนเต็ม
มีช นิด ข้อ มูล พืน ฐาน
้ 4 ชนิด คือ
byte, short, int, long
ข้อ มูล ค่า คงทีส ามารถเขีย นได้
่ 3 แบบคือ
เลขฐานสิบ เช่น -123, 3009 เป็นต้น
เลขฐานแปด คือ การเขียนเลขจำานวนเต็มที่ขึ้นต้นด้วย
เลข 0 แล้วตามด้วย 0 – 7 เช่น 072
เลขฐานสิบหก คือ การเขียนเลขจำานวนเต็มที่ขึ้นต้น
ด้วย 0x แล้วตามด้วย 0 – 9 หรือ A – F เช่น 0x2D
ข้อ มูล ค่า คงทีข องเลขจำา นวนเต็ม ทีเ ป็น ชนิด long
่ ่
จะมีต ว อัก ษร l หรือ L ต่อ ท้า ย เช่น
ั
3l, 089L, 0xBCL
19. ชนิด ข้อ มูล แบบพืน ฐาน : ข้อ มูล
้
ชนิด ตัว เลขทศนิย ม
ข้อ มูล ชนิด ตัว เลขทศนิย มจะเป็น เลขที่ม ี
เครื่อ งหมายจุด ทศนิย ม เช่น 78.288,
-8.90
มีช นิด พืน ฐาน 2 ชนิด คือ double (เก็บ
้
ข้อ มูล ขนาด 64 บิต ) และ float (เก็บ
ข้อ มูล ขนาด 32 บิต )
สามารถเขีย นในรูป แบบของเลขยก
กำา ลัง สิบ (exponential form) ได้โ ดย
ใช้ต ัว อัก ษร E หรือ e ระบุจ ำา นวนที่เ ป็น
เลขยกกำา ลัง สิบ เช่น 7.02E34, 4e-9
20. ตัว แปรและค่า คงที่
ข้อ มูล ที่เ ก็บ อยูใ นโปรแกรมเช่น ข้อ มูล ที่
่
เป็น คุณ ลัก ษณะของ object คุณ ลัก ษณะ
ของ class และข้อ มูล ใน method จะ
แบ่ง เป็น สองประเภทคือ ตัว แปรและค่า
คงที่ ซึง ่
• ตัว แปร คือ ข้อ มูล ที่ส ามารถ
เปลี่ย นแปลงค่า ได้ใ นโปรแกรม
• ค่า คงที่ คือ ข้อ มูล ที่ก ำา หนดค่า ได้เ พีย ง
ครั้ง เดีย วและไม่ส ามารถเปลี่ย นแปลง
ค่า ได้ใ นโปรแกรม
21. ตัว แปรและค่า คงที่ : ชนิด ข้อ มูล
type size Default Contains
byte 8 bits 0 Signed integer
short 16 bits 0 Signed integer
int 32 bits 0 Signed integer
long 64 bits 0 Signed integer
float 32 bits 0.0 IEEE754 floating point
double 64 bits 0.0 IEEE754 floating point
boolean 1 bits false (true,false)
char 16 bits u0000 Unicode Character
22. ตัว แปรและค่า คงที่ : การประกาศ
ตัว แปร
[modifier] dataType variableName[,variableName];
modifier คือ keyword ที่ระบุคณสมบัติต่างๆ
ุ
ของตัวแปร เช่น access modifier ส่วนกรณีที่
ไม่ระบุจะถือว่าเป็น default
dataType คือชนิดข้อมูล
variableName คือชื่อของตัวแปรที่เป็นไปตาม
กฎการตั้งชือ่
ตัว อย่า ง
int sum; //คือการประกาศตัวแปรชื่อ sum ให้มี
23. ตัว แปรและค่า คงที่ : คำา สั่ง กำา หนด
ค่า
variableName = expression;
variableName คือชื่อของตัวแปรที่เป็นไปตาม
กฎการตั้งชือ
่
expression คือนิพจน์ซึ่งเป็นผลลัพธ์ที่ได้จาก
การคำานวณข้อความที่อาจประกอบด้วยค่าคงที่
ตัวแปร และตัวดำาเนินการ (operator)
ตัว อย่า ง
sum = 89; //คือกำาหนดให้ตัวแปร sum เก็บข้อมูล
89
24. ตัว แปรและค่า คงที่ : การประกาศ
ตัว แปรและการกำา หนดค่า
[modifier] dataType variableName = expression
[,variableName = expression];
ตัว อย่า ง
int sum = 12; //คือการประกาศตัวแปรชื่อ sum
ให้มีชนิดเป็น int และเก็บข้อมูล 12
float price = 708.0f; //คือการประกาศตัวแปรชื่อ
price ให้มีชนิดเป็น float และเก็บข้อมูล 708.0f
25. ตัว แปรและค่า คงที่ :การประกาศค่า
คงที่
[modifier] final dataType CONSTANT_NAME = expression;
modifier คือ keyword ที่ระบุคุณสมบัติต่างๆ ของตัวแปร เช่น
access modifier ส่วนกรณีที่ไม่ระบุจะถือว่าเป็น default
dataType คือชนิดข้อมูล
CONSTANT_NAME คือชื่อของค่าคงที่ โดยทั่วไปนิยมใช้ตัว
อักษรพิมพ์ใหญ่ และแยกคำาด้วยเครื่องหมาย _
Expressioin คือนิพจน์ซึ่งเป็นผลลัพธ์ทได้จากการคำานวณ
ี่
ข้อความที่อาจประกอบด้วยค่าคงที่ ตัวแปร และตัวดำาเนินการ
(operator)
ตัว อย่า ง
final int MAX = 9999;
26. ตัว แปรและค่า คงที่ : ขอบเขตของ
ตัว แปรและค่า คงที่
ตัวแปรและค่าคงที่ที่ประกาศขึ้นจะสามารถ
ใช้งานภายในบล็อกคำาสัง { } ที่ประกาศ
่
เท่านั้น โดยภาษาจาวาแบ่งตัวแปรและค่า
คงที่เป็น 2 ประเภทคือ
ตัวแปรหรือค่าคงที่ที่เป็นคุณลักษณะของ
object หรือคุณลักษณะของ class
ตัวแปรหรือค่าคงที่ที่อยู่ในบล็อกของ
method ที่เรียกว่าค่าคงที่ภายใน (local
constant) หรือตัวแปรภายใน (local
27. ตัว แปรและค่า คงที่ : ขอบเขตของ
ตัว แปรและค่า คงที่
ตัวแปรจะถูกกำาหนดค่าเริ่มต้นให้อัตโนมัติ
ดังนี้
28. ตัว แปรและค่า คงที่ : ตัว อย่า ง
ขอบเขตของตัว แปร
public class VariableScopeDemo {
public int i; // object variable
public void method1() {
int j = 4; // local variable
int k = 2; // another local variable
}
public void method2() {
int j = 0; // local variable
System.out.println(i);
// calling an object variable i
// System.out.println(k); // illegal
}
}
29. ตัว แปรและค่า คงที่ :
ตัว อย่า งแสดงตัว แปรภายในและตัว แปร
ของ object
public class ScopeExample {
private int i=1;
public void method1() {
int i=4, j=5;
this.i = i+j;
method2(7);
}
public void method2(int i) {
int j=8;
this.i = i+j;
}
}
--------------------------------------------------------------------------------------------------
public class TestScoping {
public static void main(String args[]) {
ScopeExample scope = new ScopeExample();
scope.method1();
}
}
30. ตัว ดำา เนิน การ
ตัวดำาเนินการแบ่งออกเป็น 4 ประเภทคือ
ตัวดำาเนินการทางคณิตศาสตร์ (Arihmetic
Operator)
ตัวดำาเนินการแบบสัมพันธ์ (Relational Operator)
ตัวดำาเนินการทางตรรกศาสตร์ (Logical Operator)
ตัวดำาเนินการแบบบิต (Bitwise Operator)
31. ตัว ดำา เนิน การ :
ตัว ดำา เนิน การทางคณิต ศาสตร์ (Arithmetic
Operator)
ตัวดำาเนินการทางด้านคณิตศาสตร์ ได้แก่เครื่องหมาย
ทีใช้ในการบวก ลบ คูณ หาร ตัวเลข และอื่น ๆ
่
ตัว ความหมาย ตัว อย่า ง
ดำา เนิน
การ
- การลบ X–Y
+ การบวก X+Y
* การคูณ X*Y
/ การหาร X/Y
% การหารจะเอาเฉพาะ 11%3 = 3 เศษ 2 ดังนั้น 2
เศษไว้ เป็นผลลัพธ์
-- การลดค่าลงครั้งละ X- -หรือ - -X เหมือนกับ
1 X=X-1
32. ตัว ดำา เนิน การ :
ตัว ดำา เนิน การทางคณิต ศาสตร์ (Arithmetic
Operator)
นอกจากตัวดำาเนินการบวก ลบ คูณ หาร ธรรมดา
แล้ว ยังมีโมดูลัส (modulas) คือการหารเอา
เฉพาะเศษ และมีวิธีการรวบรัดการใช้ตัวดำาเนิน
การเลขคณิตดังนี้
รวมสัญลักษณ์ + และ = เข้าด้วยกันกลาย
เป็น +=
- และ = เข้าด้วยกันกลายเป็น
-=
33. ตัว ดำา เนิน การ :
ตัว อย่า งการรวบรัด การใช้ต ัว ดำา เนิน การ
เลขคณิต
34. ตัว ดำา เนิน การ :
ตัว ดำา เนิน การแบบสัม พัน ธ์(Arithmetic
Operator)
เครื่องหมายที่ใช้ในการเปรียบเทียบและตัดสินใจ
ผลการเปรียบเทียบจะให้ค่าเป็น 1 และ เท็จจะให้
ค่าเป็น 0
เครื่อ งห ความหมาย ตัว อย่า ง
มาย
> มากกว่า A > B (A มากกว่า B)
>= มากกว่าหรือ A >= B (A มากกว่า
เท่ากับ หรือเท่ากับ B)
< น้อยกว่า A < B (A น้อยกว่า B)
<= น้อยกว่าหรือ A <= B (A น้อยกว่า
เท่ากับ หรือเท่ากับ B)
== เท่ากับ A = = B (A เท่ากับ B)
35. ตัว ดำา เนิน การ :
ตัว ดำา เนิน การทางตรรกศาสตร์ (Arithmetic
Operator)
เครื่องหมายตรรกะมีจุดประสงค์ใช้ในการเปรียบ
เทียบเพื่อตัดสินใจซึ่งผลที่ได้จากการเปรียบเทียบ
จะได้ผลลัพธ์ 2 อย่าง คือ ถ้าได้ผลลัพธ์เป็นจริงจะมี
ค่าเป็น 1 และถ้าได้ผลลัพธ์เป็นเท็จจะมีคา 0
่
คำา สั่ง && (AND) เป็นการนำาเงื่อนไข 2 เงื่อนไขมาเปรียบ
เทียบกันซึ่งผลลัพธ์ทได้จะเป็นดังนี้
ี่
36. ตัว ดำา เนิน การ :
ตัว ดำา เนิน การทางตรรกศาสตร์ (Arithmetic
Operator)
คำา สั่ง | | (OR) เป็นการนำาเงื่อนไข 2 เงื่อนไขมาเปรียบ
เทียบกันซึงผลลัพธ์ที่ได้จะเป็นดังนี้
่
คำา สั่ง ! (NOT) เป็น การทำา นิเ สธซึ่ง ผลลัพ ธ์ท ไ ด้จ ะเป็น
ี่
ดัง นี้
37. ตัว ดำา เนิน การ :
ตัว ดำา เนิน การแบบบิต
ตัว ดำา เนิน การแบบบิต เป็น ตัว ดำา เนิน การทีใ ช้ก ับ ข้อ มูล
่
ชนิด ตัว เลขจำา นวนเต็ม เพื่อ จัด การกับ ข้อ มูล เชิง บิต
หรือ เพือ เลื่อ นบิต โดยมีเ ครื่อ งหมายต่า งๆ ดัง นี้
่
ตัว อย่า ง
int x = 8;
System.out.println(x >> 32); // หมายถึงการเลื่อน
38. ลำา ดับ ความสำา คัญ ของตัว ดำา เนิน
การ
ในบางครั้ง นิพ จน์ป ระกอบด้ว ยตัว ดำา เนิน การมากมาย
ทำา ให้เ กิด ความยุ่ง ยากในการพิจ ารณาขั้น ตอนการ
ทำา งานของตัว ดำา เนิน การ จึง ได้ต ั้ง กฎเกี่ย วกับ ลำา ดับ
การทำา งานก่อ นหลัง ของตัว ดำา เนิน การ (Operator)
ดัง นี้
39. ลำา ดับ ความสำา คัญ ของตัว ดำา เนิน
การ
ในบางครั้ง นิพ จน์ป ระกอบด้ว ยตัว ดำา เนิน การมากมาย
ทำา ให้เ กิด ความยุ่ง ยากในการพิจ ารณาขั้น ตอนการ
ทำา งานของตัว ดำา เนิน การ จึง ได้ต ั้ง กฎเกี่ย วกับ ลำา ดับ
การทำา งานก่อ นหลัง ของตัว ดำา เนิน การ (Operator)
ดัง นี้
40. ชนิด ข้อ มูล แบบอ้า งอิง
ตัว แปรหรือ ค่า คงทีป ระกาศเป็น ชนิด ข้อ มูล อื่น ๆ ซึง
่ ่
ไม่ใ ช่ช นิด ข้อ มูล แบบพืน ฐาน จะเป็น ชนิด ข้อ มูล แบบ
้
อ้า งอิง ซึ่ง ก็ค ือ object ในจาวาโดยแบ่ง เป็น 2 แบบ
คือ
ชนิด ข้อ มูล ทีเ ป็น array
่
ชนิด ข้อ มูล ทีเ ป็น class
่
ตัว อย่า ง
String s = new
String(“Hello”);