จากตวั อยา่ งจะเหน็ ได้ว่า มีการเรียกใชง้ านตัวแปรอาร์เรยโ์ ดยระบตุ ำ� แหนง่ ขอ้ มลู ภายในเครอ่ื งหมาย
[ ] เชน่ Ans = intScore[2] * 3; เปน็ การกำ� หนดค่าใหก้ บั ตวั แปร Ans โดยมีค่ามาจากผลคณู ระหว่างคา่ ใน
ตัวแปรอาร์เรยต์ �ำแหนง่ ที่ 3 กบั 3 เปน็ ต้น
พื้นฐานการเขียนโปรแกรมเชิงวัตถุ
ในแนวคิดการเขียนโปรแกรมแบบ OOP น้ัน ความรู้พื้นฐานท่ีควรรู้เพื่อให้เข้าใจในหลักการเขียน
โปรแกรมมีดังน้ี
z คลาส (Class) เป็นตน้ แบบของออบเจ็กตท์ เ่ี ป็นตัวกำ� หนดคุณสมบัตแิ ละความสามารถพนื้ ฐานที่
ทุกๆ ออบเจก็ ต์ตอ้ งมี เชน่ คลาสของแมว ซึง่ แมวแต่ละตัวจะต้องมชี ื่อสายพันธุ์ มสี ี มีความสงู
และนำ�้ หนัก โดยทแ่ี มวแตล่ ะตัวตอ้ งสามารถเดนิ ได้ ว่งิ ได้ และรอ้ งได้ เป็นตน้
z แอตทริบิวต์ (Attribute) เป็นคุณสมบัตติ ่างๆ ของคลาส
z เมธอด (Method) เป็นความสามารถตา่ งๆ ของคลาส
z ออบเจ็กต์ (Object) เป็นเหมือนตัวแทนแมวแต่ละตัวท่ีมีคุณสมบัติและความสามารถที่
แตกตา่ งกนั เชน่ แมวตวั ท่ี 1 เปน็ พนั ธไ์ุ ทย, สขี าว, สงู 30 cm, นำ้� หนกั 1.5 kg โดยทเ่ี ดนิ ได้ 100 m/h,
วงิ่ ได้ 1km/h, รอ้ งเสยี งดงั และแมวตวั ที่ 2 เปน็ พนั ธไ์ุ ทย, สเี ทา, สงู 35 cm, นำ�้ หนกั 1.9 kg โดยที่
เดินได้ 200 m/h, วงิ่ ได้ 1.7 km/h, รอ้ งเสียงดัง เป็นตน้ สงั เกตได้วา่ แมวแต่ละตวั มีโครงสรา้ ง
เดียวกนั แตจ่ ะต่างกันเพียงแค่คุณสมบัติและความสามารถเทา่ นน้ั
CAT ชือ่ คลาส
- Name แอตทรบิ วิ ต์
- Color
+ Height เมธอด
+ Weight
+ setWeight
+ setHeight
+ upWeight
+ downWeight
+ upHeight
การสรา้ งคลาส
การสร้างคลาสเปรยี บเสมือนการเริ่มตน้ เขยี นโปรแกรมแบบ OOP ซึ่งผู้อา่ นควรศึกษาให้เขา้ ใจ โดย
มีรปู แบบการสรา้ งคลาสดังนี้
[รูปแบบการเข้าถงึ ] class ชอ่ื คลาส
{
[การประกาศแอตทริบวิ ต์]
[การประกาศเมธอด]
}
340 Android App Development ฉบับสมบูรณ์
โดยที่การต้ังช่ือคลาส นิยมตัง้ ชื่อดว้ ยรปู แบบดงั น้ี
z ต ัง้ ชื่อตามกฎการต้ังช่อื ตัวแปรภาษา Java
z น ิยมขนึ้ ตน้ ค�ำแตล่ ะค�ำด้วยอกั ษรตวั พมิ พ์ใหญ่
z ค วรต้งั ชอ่ื เปน็ ค�ำนาม
ตัวอยา่ งการสรา้ งคลาส เช่น
public class Cat
{
}
การประกาศแอตทริบวิ ต์
การประกาศแอตทริบวิ ตเ์ ปน็ สว่ นหนึง่ ของการสร้างคลาส ซึ่งผูอ้ ่านควรศึกษาใหเ้ ข้าใจ โดยมรี ปู แบบ
การประกาศแอตทริบวิ ต์ดังนี้
[รปู แบบการเข้าถงึ ] ชนิดขอ้ มูล ชื่อแอตทริบวิ ต์;
โดยทก่ี ารตง้ั ชอ่ื แอตทริบิวต์ นยิ มต้ังชื่อดว้ ยรูปแบบดงั นี้
z ต ง้ั ช่ือตามกฎการต้ังชอ่ื ตวั แปรภาษา Java
z น ยิ มขน้ึ ต้นดว้ ยอักษรคำ� แรกเป็นอกั ษรตัวพิมพ์เลก็ แตค่ ำ� ต่อไปจะขน้ึ ต้นด้วยอกั ษรตวั พมิ พ์ใหญ่
z ควรตง้ั ชอื่ เป็นค�ำนาม
ตวั อยา่ งการประกาศแอตทริบิวต์ เชน่
private String nameCat;
private String colorCat;
public double heightCat;
public double weightCat;
การประกาศเมธอด
การประกาศเมธอดเป็นส่วนหน่ึงของการสร้างคลาส ซึ่งผู้อ่านควรศึกษาให้เข้าใจ โดยมีรูปแบบการ
ประกาศเมธอดดงั น้ี
[รปู แบบการเขา้ ถึง] ชนิดข้อมลู ทส่ี ง่ กลับ ช่ือเมธอด ([ขอ้ มูลทร่ี บั เข้ามา])
{
ชุดคำ� สง่ั ;
}
โดยทก่ี ารตงั้ ชอื่ เมธอด นยิ มตัง้ ช่อื ดว้ ยรูปแบบดงั นี้
z ตั้งชื่อตามกฎการต้งั ชื่อตวั แปรภาษา Java
z นยิ มขึน้ ตน้ ด้วยอกั ษรคำ� แรกเป็นอักษรตวั พมิ พเ์ ลก็ แตค่ �ำตอ่ ไปจะขน้ึ ต้นดว้ ยอกั ษรตวั พมิ พใ์ หญ่
z ค วรต้งั ช่ือเปน็ คำ� กรยิ า
ภาคผนวก ความรู้เบื้องต้นการเขียนโปรแกรมภาษาจาวา 341
342 ตัวอยา่ งการประกาศเมธอด เชน่
public void setWeight(double dblWeight)
{
weightCat = dblWeight;
}
public void setHeight(double dblHeight)
{
heightCat = dblHeight;
}
public double upWeight(double dblWeight)
{
weightCat = weightCat + dblWeight;
return weightCat;
}
public double downWeight(double dblWeight)
{
weightCat = weightCat - dblWeight;
return weightCat;
}
public double upHeight(double dblHeight)
{
heightCat = heightCat + dblHeight;
return heightCat;
}
จากตวั อยา่ งการสรา้ งคลาส การประกาศแอตทรบิ ิวต์ และการประกาศเมธอด ซึง่ จะไดค้ ลาสดงั น้ี
public class Cat {
private String nameCat;
private String colorCat;
public double heightCat;
public double weightCat;
public void setWeight(double dblWeight)
{
weightCat = dblWeight;
}
public void setHeight(double dblHeight)
{
heightCat = dblHeight;
}
public double upWeight(double dblWeight)
{
weightCat = weightCat + dblWeight;
return weightCat;
}
public double downWeight(double dblWeight)
{
Android App Development ฉบับสมบูรณ์
weightCat = weightCat - dblWeight;
return weightCat;
}
public double upHeight(double dblHeight)
{
heightCat = heightCat + dblHeight;
return heightCat;
}
}
การสรา้ งออบเจก็ ต์
ในการเขยี นโปรแกรมแบบ OOP ออบเจก็ ต์จะถูกสร้างมาจากคลาส หมายความไดว้ า่ คลาสคอื แบบ
สำ� หรบั การสรา้ งแมว และออบเจ็กตค์ ือ โมเดลของแมวทสี่ รา้ งขน้ึ จากแบบเพอ่ื ใชง้ าน โดยทส่ี ามารถสรา้ งโมเดล
ของแมวได้มากกว่า 1 ตัวจากแบบท่มี ีเพยี งแบบเดยี ว ซง่ึ มรี ูปแบบการสร้างออบเจก็ ต์ดังนี้
ชอ่ื คลาส ชอื่ ออบเจก็ ต์;
ชอ่ื ออบเจ็กต์ = new ชือ่ คลาส;
หรอื
ชอื่ คลาส ชอื่ ออบเจ็กต์ = new ชอ่ื คลาส;
ตัวอย่างการสร้างออบเจก็ ต์ เชน่
Cat catThai;
catThai = new Cat;
Cat catPersia = new Cat;
การใชง้ านออบเจก็ ต์
เมื่อได้เรียนรู้การสร้างออบเจ็กต์มาแล้ว หัวข้อนี้จะได้ศึกษาการใช้งานออบเจ็กต์ท่ีได้สร้างข้ึน ซึ่งมี
ตัวอย่างดังนี้
Cat catPersia = new Cat;
catPersia.setHeight(30.5);
catPersia.setWeight(2.3);
ภาคผนวก ความรู้เบื้องต้นการเขียนโปรแกรมภาษาจาวา 343
บรรณานุกรม
1. Android Community [Access 04/05/2012]
Android Developer: http://groups.google.com/group/android-developers/
Source Code: http://source.android.com/
Thailand Android Community http://www.thaiandroidphone.com/
Droidsand Thailand Community http://www.droidsans.com/
2. Atrecto, Inc., HelloAndroid – Android Resource [Access 04/05/2012]
http://www.helloandroid.com/
http://www.helloandroid.com/tutorials
3. Bogotobogo, “Android Tutorial,” [Access 04/05/2012] Available at http://bogotobogo.com/
android.html
4. Brian Hall, “Beej’s Guide to Network Programming,” [Access 04/05/2012] Available at
http://beej.us/guide/bgnet/
5. Chakchai So-In, “322 261, 322 262, 322749 Course Material,” Available at http://web.kku.ac.th/
chakso/.
6. Dharma P. Agrawal and Qing-An Zeng, “Introduction to Wireless and Mobile Systems,” 608 pp.,
CL-Engineering, June 2010.
7. DroidNova [Access 04/05/2012]
http://www.droidnova.com/android-3d-game-tutorial-part-i,312.html
http://www.droidnova.com/android-3d-game-tutorial-part-ii,328.html
http://www.droidnova.com/android-3d-game-tutorial-part-iii,348.html
http://www.droidnova.com/android-3d-game-tutorial-part-iv,358.html
http://www.droidnova.com/android-3d-game-tutorial-part-v,376.html
http://www.droidnova.com/android-3d-game-tutorial-part-vi,436.html
8. Ed Burnette, “Hello, Android: Introducing Google’s Mobile Development Platform (Pragmatic
Programmers)”, 250 pp., Pragmatic Bookshelf, October 2009.
9. Frank Ableson and Robi Sen, “Android in Action,” 592 pp., Manning Publications, February 2011.
10. Frank Ableson, “Introduction to Android development,” IBM Technical Report, May 2009. [Access
04/05/2012]
Available at http://www.ibm.com/developerworks/opensource/library/os-android-devel/
11. Frank Ableson, Charlie Collins and Robi Sen, “Unlocking Android: A Developer’s Guide,” 416 pp.,
Manning Publications, June 2009.
12. Google Android Websites: [Access 04/05/2012]
Sample Codes, Available at http://developer.android.com/resources/samples/index.html
Tutorials, Available at http://developer.android.com/resources/tutorials/hello-world.html
Android Emulator, Available at http://developer.android.com/guide/developing/tools/emulator.html
บรรณานุกรม 345
13. James F. Kurose and Keith W. Ross, “Computer Networking: A Top-Down Approach,” 864 pp.,
Addison Wesley, March 2009.
14. James Steele and Nelson To, “The Android Developer’s Cookbook: Building Applications with the
Android SDK,” 400 pp., Addison-Wesley Professional, October 2010.
15. Kenneth L. Calvert and Michael J. Donahoo, “TCP/IP Sockets in Java, Second Edition: Practical
Guide for Programmers,” 192 pp., Morgan Kaufmann, February 2008.
16. Lars Vogel, “Java Tutorial,” [Access 04/05/2012] Available at http://www.vogella.de/java.html
17. Lars Vogel, “Eclipse IDE Tutorial,” [Access 04/05/2012] Available at
http://www.vogella.de/articles/Eclipse/article.html
18. Lauren Darcey and Shane Coder, “Sams Teach Yourself Android Application Development in 24
Hours (Sams Teach Yourself – Hours),” 480 pp., Sams, June 2010.
19. Mark L Murphy, “Android Programming Tutorials,” 434 pp., CommonsWare, LLC, September
2010.
20. Mark Murphy, “Beginning Android 2,” 416 pp., Apress, March 2010.
21. Marko Gargenta, “Learning Android,” 268 pp., O’Reilly Media, March 2011.
22. RickRogers,JohnLombardo,ZigurdMednieksandG.BlakeMeike,“AndroidApplicationDevelop-
ment: Programming with the Google SDK,” 336 pp., O’Reily Media, May 2009.
23. Sayed Hashimi, Satya Komatineni and Dave MacLean, “Pro Android 2,” 736 pp., Apress, March
2010.
24. ShaneConderandLaurenDarcey,“AndroidWirelessApplicationDevelopment,”792pp.,Addison-
Wesley Professional, December 2010.
25. W. Richard Stevens, “UNIX Network Programming: Networking APIs: Sockets and XTI; Volume
1,” 1009 pp., Prentice Hall PTR, January 1998.
26. Wiki, “Introduction to Android,” [Access 04/05/2012] Available at http://en.androidwiki.com/wiki/
Introduction_to_Android
27. William Stallings, “Data and Computer Communications,” 888 pp., Prentice Halls, August 2010.
28. William Stallings, “Wireless Communications & Networks,” 576 pp., Prentice Hall, November
2004.
29. จักรชยั โสอนิ ทร์ ดร., พงษ์ธร จันทรย์ อย, “Basic Android APP Development,” 264 หนา้ , ไอดซี ี
พรีเมียร,์ 2554.
30. อนนั ต์ ผลเพ่มิ , “แลนไร้สาย,” 192 หน้า, ซีเอด็ , 2550.
31. อรรณพ ขนั ธกิ ลุ , อำ� นาจ มมี งคล, “ออกแบบและตดิ ตง้ั ระบบ Wireless LAN 2nd Edition,” 704 หนา้ ,
ไอดซี ี พรีเมียร์, 2553.
346 Android App Development ฉบับสมบูรณ์
INDEX
ก ล�ำดับความส�ำคัญของตัวด�ำเนินการ...............................331
ลีเนียร์ เลย์เอาต์...............................................................107
กราฟิก................................................................................241
การเขียนค�ำอธิบายโปรแกรม...........................................334 ว
การจัดรูปแบบ....................................................................332
การจัดวางหน้าจอ..............................................................150 วงรอบชีวิตของแอพพลิเคชัน............................................ 10
การประกาศตัวแปร...........................................................328 วิว.......................................................................................... 92
การแปลงชนิดข้อมูล.........................................................332 วิวกรุ๊ป................................................................................123
การรับข้อความ..................................................................166
การส่งข้อความ..................................................................164 ส
การส่งออกไฟล์ .apk..............................................297, 321
เกม.....................................................................................241 สถาปัตยกรรมของแอนดรอยด์.............................................5
แก้ไขข้อมูล........................................................................237 สร้างและปรับปรุงฐานข้อมูล............................................223
ค ห
คลาส..................................................................................340 หน้าจอสัมผัส.....................................................................263
ค่าคงท่ี................................................................................329 หลักการต้ังชื่อตัวแปร.......................................................328
ช อ
ชนิดของข้อมูล...................................................................327 ออบเจ็กต์...........................................................................340
อาร์เรย์...............................................................................337
ซ อินเด็กซ์..............................................................................337
อีเวนต.์ ...............................................................................102
เซนเซอร.์ ...........................................................................271 แอ็คทิวิตี้............................................................................... 51
แอตทริบิวต์........................................................................340
ต แอนดรอยด์.............................................................................1
แอบโซลูต เลย์เอาต์.........................................................116
ตัวด�ำเนินการ.....................................................................329
A
ท
Absolute Layout.............................................................116
เทเบิล เลย์เอาต์................................................................119 ACCESS_FINE_LOCATION........................................176
Activity................................................................................ 51
พ ADT...................................................................................... 27
Android..................................................................................1
พอร์ต..................................................................................207 Android Architecture.........................................................5
เพิ่มข้อมูล...........................................................................235 Android Development Tool........................................... 27
Android Market..............................................................295
ฟ Android SDK..................................................................... 25
Android Software Development Kit........................... 25
เฟรม เลย์เอาต์..................................................................114 API Level..........................................................................298
apk...........................................................................297, 321
ม Application Component....................................................9
Application Life Cycle.................................................... 10
เมธอด................................................................................340 Attribute............................................................................340
ร ดัชนี 347
รีเลทีฟ เลย์เอาต์...............................................................111
ล
ลบข้อมูล.............................................................................236
ล็อกแคท............................................................................289
B Image Switcher View...................................................130
ImageView........................................................................100
Button...............................................................................101 Imperial Systems............................................................. 75
Imperial Units................................................................... 75
C Implicit type conversion..............................................332
Index..................................................................................337
cast....................................................................................333 insert..................................................................................223
Class..................................................................................340
J
D
Java Development Kit.................................................... 14
Dalvik Debug Monitor Server..........................180, 285 JDK...................................................................................... 14
Data...................................................................................287
Database Adapter.........................................................216 L
Database Management System................................215
Data Type........................................................................327 Latency.............................................................................287
DBMS................................................................................215 Linear Layout..................................................................107
DDMS......................................................................180, 285 ListView............................................................................123
Declaration.......................................................................328 LogCat..............................................................................289
delete.................................................................................223
Devices.............................................................................287 M
Dialog................................................................................250
do.......................................................................................336 Marker...............................................................................191
Method..............................................................................340
E
O
Eclipse................................................................................. 18
EditText............................................................................... 98 Object................................................................................340
Emulator...........................................................................171 ODBC................................................................................215
Emulator Control............................................................287 onAccuracyChanged....................................................277
Event..................................................................................102 onCreate............................................................................. 11
Explicit type conversion..............................................333 onDestroy........................................................................... 11
onPause.............................................................................. 11
F onRestart............................................................................ 11
onResume.......................................................................... 11
File Explorer....................................................................292 onSensorChanged.........................................................277
for.......................................................................................336 onStart................................................................................ 11
Frame Layout..................................................................114 onStop................................................................................ 11
OOP...................................................................................340
G Open Database Connectivity.....................................215
Operators.........................................................................329
getPrefValue....................................................................149 Options Menu.................................................................134
Global Positioning System.........................................173 Outline................................................................................. 57
Google API Key.............................................................182
Google Map....................................................................182 P
GPS....................................................................................173
Graphic...................................................................241, 254 Permission.............................................................158, 161
Port....................................................................................207
I Port of Entry...................................................................207
Preferences Screen......................................................145
if..........................................................................................334
ImageButton....................................................................104
348 Android App Development ฉบับสมบูรณ์
Process.............................................................................287 W
Properties........................................................................... 57
WebView...........................................................................141
Q while..................................................................................336
query..................................................................................223
R
Relative Layout...............................................................111
S
Screen Orientation........................................................150
ScrollView........................................................................126
Sensor...............................................................................271
setContent.......................................................................141
setIndicator......................................................................141
setOnPreferenceClickListener....................................149
Short Message Service...............................................157
SMS...................................................................................157
Socket...............................................................................198
Speed................................................................................287
SQLite...............................................................................215
switch................................................................................335
T
Table Layout...................................................................119
Tablet.................................................................................. 72
TabWidget........................................................................138
TCP....................................................................................198
Telephony Status...........................................................287
TextView............................................................................. 95
TouchScreen...................................................................263
Transmission Control Protocol..................................198
U
UI.......................................................................................... 91
update...............................................................................223
User Interface................................................................... 91
V
versionCode..........................................................298, 309
versionName.........................................................298, 309
VIBRATE...........................................................................273
View..................................................................................... 92
ViewGroup.......................................................................123
Voice..................................................................................287
ดัชนี 349
ISBN 978-616-200-361-5