Professional Documents
Culture Documents
2. คอมเมนตขอความมากกวาหนึ่งบรรทัด :
3. คอมเมนตสําหรับขอความที่ตองการสรางเปนไฟลเอกสาร :
phanlapha@yahoo.com 1/25
บทที่ 2 Modern Programming Languages
วิธีการสรางเอกสารการใชโปรแกรมจากตัวอยาง Employee.java
phanlapha@yahoo.com 2/25
บทที่ 2 Modern Programming Languages
2.2 การตั้งชื่อ
การตั้งชื่อคลาส ชื่อตัวแปร ชื่อของเมธอด หรือชื่อของคาคงที่ มีกฎในการตั้งชื่อดังนี้
• อักษรตัวแรกตองขึ้นตนดวย A-Z, a-z, _ (underscore) หรือ $ (dollar sign)
• ตัวอักษรหลังจากตัวแรกสามารถเปนตัวเลขได (0-9)
• ตัวอักษรพิมพเล็กและพิมพใหญตางกัน (case sensitive)
• ชื่อตองไมตรงกับคียเวิรด (keyword)
แนวทางการตั้งชื่อที่นิยมเปนดังนี้
• การตั้งชื่อคลาส
o ขึ้นตนดวยอักษรพิมพใหญแลวตามดวยอักษรพิมพเล็กหรือตัวเลข
o โดยจะใช อั ก ษรพิ ม พ ใ หญ เ ป น อั ก ษรนํ า ของแต ล ะคํ า ที่ ต ามมาในชื่ อ คลาสนั้ น เช น
CapitalizeEveryWord
• การตั้งชื่อคาคงที่
o จะใชอักษรพิมพใหญทั้งหมด โดยจะใช _ (underscore) ขั้นระหวาง
o คําที่ตามมาในชื่อคาคงที่ เชน CAPITALIZE_WITH_UNDERSCORES
• การตั้งชื่อตัวแปรและการตั้งชื่อเมธอด
o ขึ้นตนดวยอักษรพิมพเล็ก โดยจะใชอักษรพิมพใหญเปนอักษรนําของแตละคําที่ตามมาในชื่อตัว
แปรหรือชื่อเมธอด เชน startLowercaseCapitalize
ตัวอยางการตั้งชื่อตัวแปร : name, numberOfWheels, largestInteger
ตัวอยางการตั้งชื่อเมธอด : getName, startEngine, setNumber
2.3 ชนิดของขอมูล
ภาษาจาวาเปนภาษาที่ตองกําหนดชนิดขอมูลใหชัดเจน เรียกวา “strongly-typed” กลาวคือขอมูลที่เปนตัว
แปรในภาษาจาวาจะตองมีการประกาศตัวแปร และจะตองระบุชนิดดวยเสมอ
ภาษาจาวาแบงชนิดขอมูลเปน 2 แบบ คือ
- ชนิดขอมูลแบบพื้นฐาน (primitive types)
- ชนิดขอมูลแบบอางอิง (reference types)
phanlapha@yahoo.com 3/25
บทที่ 2 Modern Programming Languages
o ขอมูลอักขระแบบ unicode
o ขอมูลคาคงที่จะอยูในเครื่องหมาย ‘ (single quote) เชน ‘a’
o สามารถใชเครื่องหมาย \ ไวขางหนา เชน \r, \n, \t, \b, \’, \”, \\
• ขอมูลตรรกะ (logical)
ตัวอยางชนิดขอมูลแบบพื้นฐาน
int x,y; //ประกาศตัวแปร x และ y เปนจํานวนเต็ม
float z = 3.1414f; //ประกาศตัวแปรเปนเลขทศนิยมชนิด float และกําหนดคาใหกับตัวแปร z
double w = 1.1411; //ประกาศตัวแปรเปนเลขทศนิยมชนิด double และกําหนดคาใหกับตัวแปร w
boolean bTruth = true; //ประกาศตัวแปรชนิดตรรกะและกําหนดคาใหตัวแปร bTruth เทากับคาจริง
char c; //ประกาศตัวแปร c เปนอักขระ
c= 'A’; //กําหนดคาใหตัวแปร c
phanlapha@yahoo.com 4/25
บทที่ 2 Modern Programming Languages
การแปลงชนิดขอมูล (Casting)
การแปลงชนิดขอมูล คือ การแปลงขอมูลชนิดหนึ่ง ไปเปนขอมูลอีกชนิดหนึ่ง เพื่อใหชนิดขอมูลสองชนิด
มีความสอดคลองกัน เชน
ผลลัพธที่ได
ขอควรระวังในการแปลงขอมูล!!!
ในการแปลงชนิดขอมูลที่มีขนาดใหญกวา ไปเปนชนิดขอมูลที่มีขนาดเล็กกวา อาจมีผลทําใหสูญเสีย
ขอมูลบางสวนได เชน
ผลลัพธที่ได
phanlapha@yahoo.com 5/25
บทที่ 2 Modern Programming Languages
การแปลงชนิดขอมูลที่ไมมีการสูญเสียขอมูล
ชนิดขอมูลที่ ชนิดขอมูลที่
ถูกแปลง ตองการแปลง
(from type) (to type)
byte short, char, int, long, float, double
short int, long, float , double
char int, long, float , double
int long, float , double
long float , double
float double
ตัวอยาง
Class EmployInfo{
final static String DEPARTMENT = “Computer”;
}
EmployInfo.department = “Finance”;
//compile error คาคงที่สามารถกําหนดคาไดเพียงครั้งเดียว ไมสามารถเปลี่ยนแปลงคาได
2.4 ขอบเขตตัวแปร
ภาษาจาวาแบงขอบเขตตัวแปรเปน 2 ชนิด คือ
• ตัวแปรภายใน เรียกใชงานไดเฉพาะภายในเมธอด
• ตัวแปรออบเจกต เปนคุณลักษณะของคลาส
phanlapha@yahoo.com 6/25
บทที่ 2 Modern Programming Languages
class LocalDemo {
public void methodA() {
int myLocal; //ตัวแปรภายใน
//more code
}
}
ตัวอยาง
class VariableDemo {
int myInt; //ตัวแปรของออบเจคต
void methodOne() {
int myLocal1; //ตัวแปรภายใน
}
void methodTwo() {
int myLocal2; //ตัวแปรภายใน
System.out.println(myInt);
System.out.println(myLocal1);
ในเมธอด methodTwo() ไมรูจักตัวแปร myLocall
}
}
ชนิดขอมูล คาเริ่มตน
byte 0
short 0
int 0
long 0
float 0.0
phanlapha@yahoo.com 7/25
บทที่ 2 Modern Programming Languages
ชนิดขอมูล คาเริ่มตน
double 0.0
char ‘\u0000’
boolean false
คลาส null
ตัวอยาง
ผลลัพธที่ได
phanlapha@yahoo.com 8/25
บทที่ 2 Modern Programming Languages
class ClassVariableDemo {
static int myClassVar;
}
เรียกใชไดดังนี้ ClassVariableDemo.myClassVar
ตัวอยาง
Class EmployInfo{
static String department = “Computer”;
String name = “Phanlapha”;
}
จากตัวอยางคลาส EmployInfo จะเห็นวา
• department เปน class variable เรียกใชงานไดโดยเรียกชื่อคลาส
System.out.println(EmployInfo.department);
• name เปน ตัวแปรของออบเจกต ซึ่งจะตองสรางออบเจกตกอนจึงจะเรียกใชงานได
System.out.println(EmployInfo.name);
EmployInfo employee = new EmployInfo();
System.out.println(employee.name);
ตัวอยาง
phanlapha@yahoo.com 9/25
บทที่ 2 Modern Programming Languages
ผลลัพธที่ได
ตัวอยาง
ผลลัพธที่ได
phanlapha@yahoo.com 10/25
บทที่ 2 Modern Programming Languages
3. การสงผานคาตัวแปร (parameter)
การสงผานตัวแปรในภาษาจาวา แบงออกเปน 2 แบบ คือ
- การสงผานตัวแปรดวยชนิดขอมูลพื้นฐาน (pass by value)
การสงพารามิเตอรแบบนี้ผานเขาไปในเมธอด เปนเพียงการสงคาเขาไปใชงานในเมธอดเทานั้น
หากมีการเปลี่ยนแปลงคาพารามิเตอรภายในเมธอดที่ถูกเรียกใชงาน จะไมมีผลทําใหคาของ
พารามิเตอรที่สงเขาไป มีคาเปลี่ยนแปลงไปดวย
- การสงผานตัวแปรดวยชนิดขอมูลอางอิง (pass by reference)
การสงพารามิเตอรแบบนี้ เปนการสงตําแหนงอางอิงของออบเจกต ดังนั้นการเปลี่ยนแปลงคา
ของตัวแปรออบเจกต จะมีผลทําใหตัวแปรของออบเจกตที่สงเขาไปเปลี่ยนแปลงคาไปดวย
ตัวอยาง
ผลลัพธที่ได
phanlapha@yahoo.com 11/25
บทที่ 2 Modern Programming Languages
Constructor Summary
Point() Constructs and initializes a point at the origin (0,0) of the coordinate
space.
Point(Point p) Constructs and initializes a point with the same location as the
specified Point object.
phanlapha@yahoo.com 12/25
บทที่ 2 Modern Programming Languages
2.5 ตัวดําเนินการ
ตัวดําเนินการในภาษาจาวา แบงเปน 4 ประเภท ดังนี้
• ตัวดําเนินการทางคณิตศาสตร (Arithmetic operators)
• ตัวดําเนินการแบบสัมพันธ (Relational operators)
• ตัวดําเนินการทางตรรกศาสตร (Logical operators)
• ตัวดําเนินการระดับบิต (Bitwise operators)
ตัวดําเนินการทางคณิตศาสตรแบบยอ
ลําดับความสําคัญในการคํานวณคาของนิพจน
1. ทําในเครื่องหมายวงเล็บกอน
2. เครื่องหมายลบหนาตัวเลข ที่เปน unary operator เชน -7
3. *, /, % ลําดับความสําคัญเทากัน การคํานวณเรียงนิพจนจากซายไปขวา
4. +, - ลําดับความสําคัญเทากัน การคํานวณเรียงนิพจนจากซายไปขวา
ตัวอยาง
ผลลัพธที่ได 7
phanlapha@yahoo.com 13/25
บทที่ 2 Modern Programming Languages
ลําดับขั้นตอนการคํานวณ
2 – 3 + (-7 + (9 % 2 / 2) + 33) / 3 + 2 % 2
1
2
o ขั้นตอนที่ 1 9 % 2 = 1
o ขั้นตอนที่ 2 ผลลัพธจากขั้นตอนที่ 1 คือ 1 ไปทําการหารกับ 2 Æ 1/2= 0
จะเหลือนิพจน 2 – 3 + (-7 + 0 + 33) / 3 + 2 % 2
3
4
o ขั้นตอนที่ 3 ทําในวงเล็บจากนิพจนที่ไดในขั้นตอนที่ 2 -7 + 0 + 33 = 26
o ขั้นตอนที่ 4 ผลลัพธจากขั้นตอนที่ 3 คือ 26 ไปทําการหารกับ 3 Æ 26/3= 8
จะเหลือนิพจน 2 – 3 + 8 + 2 % 2
5
o ขั้นตอนที่ 5 2 % 2 = 0 จะเหลือนิพจน 2 – 3 + 8 + 0
6
o ขั้นตอนที่ 6 ทําการคํานวณเรียงจากซายไปขวา ไดผลลัพธเทากับ 7
เครื่องหมาย ตัวอยาง
&& a && b (conditional)
|| a || b (conditional)
! !a
phanlapha@yahoo.com 14/25
บทที่ 2 Modern Programming Languages
ตัวอยาง
ผลลัพธที่ได
พิจารณาการทํางานในแตละบรรทัด
บรรทัดที่ 3 7>>2 คือการเลื่อนบิตไปทางขวา 2 บิต สวนบิตที่วางทางซายมือใส 0 ลงไป
7 Æ 0000 0000 0000 0000 0000 0000 0000 0111
0000 0000 0000 0000 0000 0000 0000 0001 Æ 1
phanlapha@yahoo.com 15/25
บทที่ 2 Modern Programming Languages
2.6 คําสั่งในการตัดสินใจและการวนรอบ
คําสั่งในการตัดสินใจ
@ if-else คําสั่งควบคุมการทํางานโดยพิจารณาจากเงื่อนไข
รูปแบบ
if (logical expression1)
statement1;
else if (logical expression2) {
statement2;
statement3;
}
else
statement4;
phanlapha@yahoo.com 16/25
บทที่ 2 Modern Programming Languages
ตัวอยาง
ผลลัพธที่ได
phanlapha@yahoo.com 17/25
บทที่ 2 Modern Programming Languages
ตัวอยาง
ผลลัพธที่ได
คําสั่งในการวนรอบ
@ for โปรแกรมจะทําการวนรอบจนกวา condition expr จะเปน false
รูปแบบ
for(initial; condition expr; update)
statement;
phanlapha@yahoo.com 18/25
บทที่ 2 Modern Programming Languages
ตัวอยาง
ผลลัพธที่ได
@ while การวนรอบจะหยุดการทํางานเมื่อเงื่อนไขเปนเท็จ
รูปแบบ
while(logical expression)
statement;
ตัวอยาง
@ do-while การวนรอบจะหยุดการทํางานเมื่อเงื่อนไขเปนเท็จ
รูปแบบ
do {
statement;
} while(logical expression);
phanlapha@yahoo.com 19/25
บทที่ 2 Modern Programming Languages
ตัวอยาง
phanlapha@yahoo.com 20/25
บทที่ 2 Modern Programming Languages
แบบฝกหัด
1. จากโปรแกรม MyNumber.java ใหนักศึกษาลองคิดวาเมื่อรันโปรแกรมแลวผลลัพธที่ไดเปนอยางไร
นักศึกษาจะไดประโยชนสูงสุดหากคิดผลลัพธเอง แลวสรางโปรแกรมนี้เพื่อตรวจคําตอบ
public class MyNumber{
static int staticNum;
int number;
public MyNumber() {
staticNum++;
}
int increaseNumber(){
return number++;
}
int decreaseNumber(){
return --number;
}
public static void main(String args[]){
MyNumber n1 = new MyNumber();
System.out.println("Object n1");
System.out.println("Number : "+n1.number);
System.out.println("Call method int increaseNumber()");
System.out.println("return value : "+n1.increaseNumber());
System.out.println("After Call method int increaseNumber()");
System.out.println("Number : "+n1.number);
System.out.println("Static Number(staticNum): "+n1.staticNum);
System.out.println("****************************************");
MyNumber n2 = new MyNumber();
System.out.println("Object n2");
System.out.println("Number : "+n2.number);
System.out.println("Call method int decreaseNumber()");
System.out.println("return value : "+n2.decreaseNumber());
System.out.println("After Call method int countNumber()");
System.out.println("Number : "+n2.number);
System.out.println("Static Number(staticNum): "+n2.staticNum);
}
}
ผลที่ได :
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
phanlapha@yahoo.com 21/25
บทที่ 2 Modern Programming Languages
}
}
phanlapha@yahoo.com 22/25
บทที่ 2 Modern Programming Languages
3. สรางโปรแกรม MaxVariables.java
• เพื่อหาคาสูงสุดของขอมูลตัวเลขทั้งจํานวนเต็มและจํานวนจริง โดยเปดจาวา documents วาคลาสของ
Byte, Short, Integer, Long, Float และ Double มีเมธอดหรือคาคงที่ใหเรียกใชเพื่อดูคาสูงสุดได
หรือไม
• ในสวนของ character ใหหาเมธอด (คลาสของ Character)ในการเช็ควาเปนตัวพิมพเล็กหรือตัวพิมพ
ใหญ
ผลที่ได :
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
phanlapha@yahoo.com 23/25
บทที่ 2 Modern Programming Languages
phanlapha@yahoo.com 24/25
บทที่ 2 Modern Programming Languages
ผลที่ได :
phanlapha@yahoo.com 25/25