Overview Java Programming for Android #2
ตัวดำเนินการ (Operator)
Ø นิพจน์ภาษาจาวาอาจจะประกอบด้วยข้อมูลค่าคงที่ ตัวแปร หรือค่าคงที่ต่างๆ โดยจะมีตัวดำเนินการต่างๆ ไว้เพื่อคำนวณหาผลลัพธ์ที่เป็นชนิดข้อมูลต่างๆ
Ø ตัวดำเนินการในภาษาจาวาแบ่งออกเป็น 4 ประเภทคือ
· ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operator)
· ตัวดำเนินการแบบสัมพันธ์ (Relational Operator)
· ตัวดำเนินการทางตรรกศาสตร์ (Logical Operator)
· ตัวดำเนินการแบบบิต (Bitwise Operator)
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการเพิ่มค่าและลดค่า
Ø ตัวดำเนินการเพื่อบวกค่าทีละ 1 หรือลดค่าทีล่ะ 1
Ø เครื่องหมาย ++หรือ –
Ø ตัวอย่าง
· X++ คือ x = x+1
· ++x คือ x = x+1
· X- - คือ x = x-1
Ø ถ้าวางเครื่องหมายไว้ข้างหน้า โปรแกรมจะคำนวณค่าก่อนแล้วจึงทำคำสั่ง
Ø ถ้าเครื่องหมายไว้ข้างหลัง โปรแกรมจะคำนวณค่าหลังจากทำคำสั่ง
การแปลงชนิดข้อมูล
Ø ในกรณีที่ตัวถูกดำเนินการทั้งสองมีชนิดข้อมูลที่ต่างกัน ภาษาจาวาจะมีหลักการแปลงชนิดข้อมูล (type conversion) ดังนี้
- ถ้าตัวถูกกดำเนินการตัวหนึ่งมีชนิดข้อมูลเป็น double ตัวถูกดำเนินการอีกตัวหนึ่งจะถูกแปลงให้มีชนิดข้อมูลเป็น double โดยอัตโนมัติ
- ถ้าตัวถูกดำเนินการทั้งสองไม่ได้มีชนิดจ้อมูลเป็น double แต่มีตัวถูกดำเนินการตัวหนึ่งที่มีชนิดข้อมูลเป็น long ตัวถูกดำเนินการอีกตัวหนึ่งจะถูกแปลงให้มีชนิดข้อมูลเป็น float โดยอัตโนมัติ
- ถ้าตัวถูกดำเนินการทั้งสองไม่ได้มีชนิดข้อมูลเป็น double หรือ float แต่มีตัวถูกดำเนินการตัวหนึ่งที่มีชนิดข้อมูลเป็น long ตัวถูกดำเนินการอีกตัวหนึ่งจะถูกแปลงให้มีชนิดข้อมูลเป็น long โดยอัตโนมัติ
การแปลงชนิดข้อมูล
Ø ตัวถูกดำเนินการ 2 ค่าตัวแปร จะแปลงให้มีชนิดข้อมูลเป็น int
Ø ตัวอย่าง
Byte b1,b2,b3;
b1 = 2;
b2 = 4;
b3 = b1+b2; //illega1
-คำสั่งที่กำหนดค่า b3 ไม่ถูกต้องเนื่องจาก b1+b2 จะให้ค่าข้อมูลที่มีชนิดข้อมูลเป็น int
Ø การแปลงชนิดข้อมูลมีสองรูปแบบคือ
- การแปลงข้อมูลที่กว้างขึ้น (widening conversion) คือการแปลงจากชนิดข้อมูลที่มีขนาดเล็กกว่าไปเป็นชนิดข้อมูลที่มีขนาดใหญ่กว่า
- การแปลงข้อมูลที่แคบลง (narrowing conversion) คือการแปลงจากชนิดข้อมูลที่มีขนาดใหญ่กว่าไปเป็นชนิดข้อมูลที่มีขนาดเล็กลง ซึ่งอาจมีผลให้เสียความละเอียดของข้อมูลบางส่วนไป
หลักการการแปลงชนิดข้อมูล
Ø ชนิดข้อมูลตัวเลขจำนวนเต็มสามารถแปลงให้เป็นชนิดข้อมูลตัวเลขทศนิยมได้
Ø ชนิดข้อมูล float สามารถแปลงให้เป็นชนิดข้อมูล double ได้
Ø ชนิดข้อมูลตัวเลขจำนวนเต็มมีขนาดเรียงกันจากน้อยไปหามากดังนี้
byte > short > int > long
Ø ชนิดข้อมูล char สามารถแปลงให้เป็นชนิดข้อมูล int ได้
Ø ชนิดข้อมูล Boolean จะไม่มีค่าความสัมพันธ์กับชนิดข้อมูลแบบพื้นฐานอื่น ๆ
byte > short,char > int > long > float > double
ตัวอย่างของการแปลงชนิดข้อมูล
ภาษาจาวาจะปรับชนิดข้อมูลให้อัตโนมัติ ในกรณีต่อไปนี้
Ø กำหนดค่าชนิดข้อมูลที่เล็กกว่าให้กับตัวแปรชนิดข้อมูลที่ใหญ่กว่าอาทิ เช่น
· int I = 4 ;
· long = i ;
นิพจน์ i จะถูกปรับชนิดข้อมูลจาก int ให้เป็น long โดยอัตโนมัติ
Ø ตัวอย่างที่ไม่ถูกต้อง
int amont = 123L ; //illegal
float f = 4.0 ; //illegal
Typecasting
Ø เราสามารถแปลงชนิดข้อมูลขนาดใหญ่ ให้เป็นชนิดข้อมูลที่เล็กกว่าได้ โดยวิธีการที่เรียกว่า
Typecasting
Ø รูปแบบคำสั่ง
( target_type) expression ;
Ø จะทำให้โปรแกรมสามารถคอมไพล์ผ่านได้
Ø บางกรณีอาจทำให้ข้อมูลบางส่วนสูญหายไป
ตัวอย่าง Typecasting
Ø ตัวอย่าง
Int amount = (int) 3.0 ;
· แปลงนิพจน์ที่มีค่า 3.0 ข้อมูลชนิด double ให้เป็นชนิด int
Ø ตัวอย่างที่มีการตัดข้อมูลออก
int x ;
double y = 1.25 ;
x = (int) y ;
ชนิดข้อมูลแบบอ้างอิง
Ø ชนิดข้อมูลแบบอ้างอิงคือออปเจ็คในภาษาจาวา โดยแบ่งออกเป็นสองแบบ คือ
· ชนิดข้อมูลที่เป็นคลาส
· ชนิดข้อมูลที่เป็นอะเรย์
Ø ชนิดข้อมูลแบบอ้างอิงจะมีวิธีการเก็บข้อมูลในหน่วยความจำทีแตกต่างจากการเก็บข้อมูลของชนิดข้อมูลแบบพื้นฐานอาทิเช่น คำสั่ง
คลาส String
Ø String เป็นคลาสที่กำหนดไว้ใน Java API ตัวแปรที่มีชนิดข้อมูลเป็น Sting ก็คือออปเจ็คชนิดหนึ่ง ซึ่ง String ก็คือออปเจ็คชนิดหนึ่ง ซึ่ง String มีข้อแตกต่างจากออปเจ็คทั่วๆไป ดังนี้
· String เป็นออปเจ็คที่มีค่าคงที่ข้อมูลซึ่งก็คือข้อความใดๆที่อยู่ภายในเครื่องหมาย double quote (“ ”) ตัวอย่างที่เช่น
“ This is a java course ”
· String เป็นออปเจ็คที่สามารถสร้างหรือกำหนดค่าได้โดยไม่จำเป็นต้องใช้คำสั่ง new ตัวอย่างเช่น เราสามารถใช้คำสั่ง
String s = “ Thana” ;
· โดยไม่จำเป็นที่จะต้องใช้คำสั่ง
String s = new String (“ Thana”) ;
ตัวอย่างโปรแกรม
Public class StringDemo {
Public static void main(String args[]){
String s1 = “Thana”;
String s2 = “Thana”;
String s3 = new String(“Thana”);
}
}
คำอธิบายโปรแกรม
Ø กรณีที่ไม่ใช้คำสั่ง new ภาษาจาวาจะพิจารณาจาก String Pool ว่ามีข้อความเดิมอยู่หรือไม่
Ø กรณีที่ใช้คำสั่ง new ภาษาจาวาจะสร้างข้อความใหม่และจองเนื้อที่ในหน่วยความจำเสมอ
ตัวดำเนินการที่ใช้กับข้อมูลชนิด String
Ø String เป็นออปเจ็คที่มีตัวดำเนินการที่ใช้ในการเชื่อมข้อมความสองข้อความเข้าด้วยกันโดยใช้เครื่องหมาย + อาทิเช่น
String s1 = “Hello” + “ World”;
Ø ตัวดำเนินการในการเชื่อมข้อความสามารถใช้เชื่อมข้อมูลชนิด String กับตัวถูกดำเนินการที่เป็นชนิดข้อมูลอื่น ๆ ภาษาจาวาจะแปลงชนิดข้อมูลดังกล่าวให้เป็นชนิด String โดยอัตโนมัติอาทิเช่น คำสั่ง
String s1 = “This”;
String s2 = s1 + “ is a test ”;
String s3 = s1+4;
การเรียกใช้ เมธอด ของ Class String
charAt(index) อ่านตัวอักขระจากสตริง โดย index คือลำดับตัวที่จะอ่าน ตัวแรกเริ่มที่ 0
length( ) หาความยาวของสตริง โดยส่งค่ากลับเป็นจำนวนเต็ม
toLowerCase( ) เปลี่ยนอักขระในสตริง ให้เป็น ตัวพิมพ์เล็ก
toUpperCase( ) เปลี่ยนอักขระในสตริง ให้เป็นตัวพิมพ์ใหญ่
ตัวอย่างการเรียกใช้ เมธอด ของ Class String
int stringSize; // ประกาศตัวแปร
String name = “Android”; // กำหนดค่าตัวแปร
stringSize = name.length( ); //ใช้เมธอด length
รับเขียนโปรแกรม Android Application และสอนการเขียนโปรแกรม สอน online ได้
อดุลย์ 081-6452400 e-mail fongwe_a@hotmail.com