วันพุธที่ 14 ธันวาคม พ.ศ. 2554

Overview Java Programming for Android #2










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