770 likes | 924 Views
Object - Oriented Programming. ผู้สอน อ.วาทินี ดวงอ่อนนาม. การเขียนโปรแกรมเชิงวัตถุ. งานใบที่ 2. บทที่ 4. ปูพื้นฐาน ก่อนเริ่มเขียนโปรแกรม. เนื้อหา. กฎการตั้งชื่อ Identify ชนิดข้อมูลในภาษาจาวา ชนิดข้อมูลพื้นฐาน ตัวดำเนินการทางคณิตศาสตร์ การแปลงชนิดข้อมูล. Class diagram.
E N D
Object - Oriented Programming ผู้สอน อ.วาทินี ดวงอ่อนนาม การเขียนโปรแกรมเชิงวัตถุ
บทที่ 4 • ปูพื้นฐาน ก่อนเริ่มเขียนโปรแกรม
เนื้อหา • กฎการตั้งชื่อ Identify • ชนิดข้อมูลในภาษาจาวา • ชนิดข้อมูลพื้นฐาน • ตัวดำเนินการทางคณิตศาสตร์ • การแปลงชนิดข้อมูล
Class diagram • Class • Attribute(Data) • Method Class Name • AttributeName • MethodName ( )
กฎการตั้งชื่อ Identify Identifier คือชื่อที่ตั้งขึ้นในภาษาจาวา ซึ่งอาจเป็นชื่อของคลาส ชื่อของตัวแปร ชื่อของเมธอด หรือชื่อของค่าคงที่ ซึ่งจะต้องเป็นไปตามกฎการตั้งชื่อ ดังนี้
กฎการตั้งชื่อ Identify 1.ซึ่งที่ตั้งสามารถประกอบด้วยตัวอักษรภาษาอังกฤษ ตัวเลข underscore(_),dollar sign($) 2.แต่ตั้งขึ้นต้นด้วยภาษาอังกฤษ ,_ ,$ เท่านั้น (ห้ามขึ้นต้นด้วยตัวเลข) myCom2 _mycom2 _myCom$ my_Com2 2mycom
กฎการตั้งชื่อ Identify 3. ชื่อที่ตั้งเว้นวรรค หรือ มีช่องว่างไม่ได้ my_Com2 my com2
กฎการตั้งชื่อ Identify 4. จาวาเป็น case-sensitive เหมือนกับ C คือ ภาษาอังกฤษตัวใหญ่ ตัวเล็กถือว่าแตกต่างกันต้องระมัดระวังให้ดี ไม่เช่นนั้นจะเกิดขึ้นผิดพลาดได้ myCom, Mycom, MYCOM
กฎการตั้งชื่อ Identify 5. ความยาวตัวอักษรไม่ควรเกิน 65535 ตัวอักษร
กฎการตั้งชื่อ Identify 6. ต้องไม่ตรงกับคีย์เวิร์ด (Keyword )ใดในภาษาจาวาดังต่อไปนี้ Keyword คือ ชื่อที่มีความหมายพิเศษในจาวา compilerของภาษาจาวาจะเข้าใจความหมายและคำสั่งที่จะต้องดำเนินการสำหรับ keyword แต่ละตัว
เพิ่มเติม คำสงวน (JAVA Keywords) คำสงวน (Keywords or Reserved Word) คือ คำที่ถูกสงวน หรือสำรองไว้โดยตัวแปลภาษา ที่ผู้พัฒนาไม่สามารถนำมาใช้เป็นชื่อตัวแปร ชื่อเมธอด หรือชื่อคลาส เพราะคำสงวนจะมีหน้าที่ของตนเอง ในการควบคุมโครงสร้างของโปรแกรม (Structure) เป็นชนิดของข้อมูล (Data Type) หรือคำขยายแบบของข้อมูล (Modifier) ดังนั้นตัวแปลภาษาจะประกาศคำที่ถูกสงวนไว้ล่วงหน้า มิให้ผู้พัฒนานำไปใช้ และเกิดความสับสนในการพัฒนาโปรแกรม
identifier ตัวอย่างของ identifier ที่ถูกต้อง • MyVariable • _MyVariable • $data • Sum_Score • … ตัวอย่างของ identifier ที่ไม่ถูกต้อง • My Variable • 9Pi • @net • System • …
ตัวอย่างการตั้งชื่อ • x ถูกต้อง • dayofWeek ถูกต้อง • 3dGraph ไม่ถูกต้อง • data1 ถูกต้อง • week day ไม่ถูกต้อง • public ไม่ถูกต้อง • _name
ข้อแนะนำสำหรับการตั้งชื่อให้กับ class • เป็นไปตามกฎข้อ 1-6 • นิยมขึ้นต้นด้วยตัวอักษรตัวใหญ่ หากประกอบด้วยหลายคำนิยมให้ตัวอักษรแต่ละตัวของคำเป็นตัวใหญ่ • นิยมตั้งชื่อเป็นคำนาม Employee, Student, Television MobliePhone, Moblie_Phone
ข้อแนะนำสำหรับการตั้งชื่อให้กับ Attribute,Dataและตัวแปร • เป็นไปตามกฎข้อ 1-6 • นิยมตั้งชื่อเป็นคำนาม • นิยมขึ้นต้นด้วยตัวอักษรตัวเล็ก หากประกอบด้วยหลายคำให้คำแรกขึ้นตัวด้วยตัวเล็กตัวแรกของคำต่อ ๆ ไปขึ้นตัวด้วยตัวใหญ่ employeeId, salary, department name,address ,firstName,last_Name
ข้อแนะนำสำหรับการตั้งชื่อให้กับ Method • เป็นไปตามกฎข้อ 1-6 • นิยมตั้งชื่อเป็นคำกริยา • นิยมขึ้นต้นด้วยตัวอักษรตัวเล็ก หากประกอบด้วยหลายคำให้คำแรกขึ้นตัวด้วยตัวเล็กตัวแรกของคำต่อ ๆ ไปขึ้นตัวด้วยตัวใหญ่ openMobile , getTime ,closeMobile ,setRingtone
ข้อแนะนำสำหรับการตั้งชื่อให้กับ Constant • เป็นไปตามกฎข้อ 1-6 • จะใช้ตัวอักษรพิมพ์ใหญ่ทั้งหมด และจะแยกคำโดยใช้เครื่องหมาย _ (underscore) • ควรเป็นคำนาม PI, MAX
Class diagram : Employee • Class • Attribute(Data) • Method Employee • -empId : int • -salary : double • -timeIn : String • -timeOut :String • + setEmpId (empId : int) • + getSalary (empId : int) :double
Class --> Object Employee • -empId : int • -salary : double • -timeIn : String • -timeOut :String • + setEmpId (empId : int) • + getSalary (empId : int) :double empId Salary timeIn timeOut setEmpId getSalary
Harddisk --> Ram 4 bytes Employee • -empId : int • -salary : double • -timeIn : String • -timeOut :String • + setEmpId (empId : int) • + getSalary (empId : int) :double empId Salary timeIn timeOut 6 bytes n bytes setEmpId n bytes getSalary 4 bytes 4 bytes
ชนิดข้อมูลในภาษา Java • Primitive Data Types ชนิดของข้อมูลพื้นฐาน • Class Types(reference data type) ชนิดของข้อมูลที่ถ่ายทอดมากจากคลาส หรือ Interface • Array Types ชนิดของข้อมูลที่เป็นอาร์เรย์ หรือข้อมูลเป็นชุดๆ
ชนิดข้อมูลพื้นฐาน (Primitive Data Type) • หมายถึงชนิดข้อมูลที่สามารถเก็บข้อมูลที่เป็นข้อมูลทั่วไปหรือข้อมูลพื้นฐาน ภาษาจาวาถูกออกแบบให้มีชนิดข้อมูลพื้นฐาน เนื่องจากผู้ออกแบบต้องการให้ผู้ที่สนใจภาษาจาวาและเคยเขียนโปรแกรมมาก่อน สามารถเข้าใจภาษาจาวาได้อย่างไม่ยากเย็นนัก ชนิดข้อมูลพื้นฐานมี 4 ประเภทหลักๆดังนี้
ชนิดข้อมูลแบบพื้นฐาน • ชนิดข้อมูลแบบพื้นฐานแบ่งเป็น 4 ประเภทคือ • ชนิดข้อมูลตรรกะ (logical) คือชนิด boolean • ชนิดข้อมูลอักขระ (textual) คือชนิด char • ชนิดข้อมูลตัวเลขจำนวนเต็ม (integer) คือชนิด byte, short, intและlong • ชนิดข้อมูลตัวเลขทศนิยม (floating point) คือชนิด float และdouble
ชนิดข้อมูลใน กลุ่ม ตรรกะ (logical)- ชนิดข้อมูล boolean • ใช้พื้นที่เก็บ 8 บิต • มีข้อมูลค่าคงที่อยู่ 2 ค่าคือ • true (จริง) และ false(เท็จ) • ตัวอย่าง • boolean check= true; เป็นการกำหนดให้ตัวแปรชื่อ check มีชนิดข้อมูลเป็น booleanและกำหนดให้มีค่าเป็น true
ชนิดข้อมูลในกลุ่มตัว อักขระ (textual) - ชนิดข้อมูล char • ใช้พื้นที่เก็บ 16 บิต • ข้อมูลชนิดอักขระใช้เพื่อแสดงตัวอักขระ 1 ตัว • คลุมด้วยเครื่องหมาย ‘’(single quote) ตัวอย่าง char alphabet = ‘M’; เป็นการประกาศตัวแปรชื่อ alphabet มีชนิดข้อมูลเป็น char โดยมีค่าเป็นตัวอักขระ M
ตัวอย่าง char X,Y; X=‘A’; Y=‘/uoo41’;
ชนิดข้อมูลในกลุ่ม ตัวเลขจำนวนเต็ม (integer) - ชนิด byte, short, intและ long
ชนิดข้อมูลในกลุ่ม ตัวเลขจำนวนเต็ม (integer) - ชนิด byte, short, intและ long ข้อมูลค่าคงที่ของเลขจำนวนเต็มที่เป็นชนิด long จะมีตัวอักษร lหรือ Lต่อท้าย เช่น • 3l, 7l,7000L,80L * ไม่เช่นนั้นค่าที่กำหนดให้ตัวแปรจะถูกมองเป็น ชนิด int ตัวอย่าง byte a = 1; short b = 2; int c = 3; long d = 4L;
ชนิดข้อมูลในกลุ่ม ตัวเลขทศนิยม (floating point) - ชนิด float และdouble การกำหนดให้ตัวแปรชนิด float ต้องระบุ f ,F ต่อท้ายไม่เช่นนั้นค่าที่กำหนดให้ตัวแปรจะถูกมองเป็น ชนิด double
ชนิดข้อมูลในกลุ่ม ตัวเลขทศนิยม (floating point) - ชนิด float และdouble ตัวอย่าง float e = 5.0f; double x = 6.0;
Note • ตอนนี้ยังไม่ได้กล่าวถึง String นะคะ • ซึ่งไว้สำหรับเก็บค่าข้อมูลที่เป็นกลุ่มคำเช่น “Hello ” , “Somchai” , “ asdfasfsdf”
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์ เช่น A + B * C นิพจน์ (expression) + ,* คือ Operator ตัวดำเนินการ A,B,Cคือ Operand ตัวถูกดำเนินการ
จัดการข้อมูลด้วยตัวดำเนินการจัดการข้อมูลด้วยตัวดำเนินการ • ตัวดำเนินการ (Operator) ทำหน้าที่จัดการ และเราเรียกตัวแปรที่ทำงานร่วมกับตัวดำเนินการว่า Operand
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์ ตัวดำเนินการ + ,- สามารถกระทำกับตัวถูกดำเนินการตัวเดียวได้ เช่น - 5 , +4 เรียกว่า unary operator (ยูนารี)
ลำดับความสำคัญ 12 + 6 / 3 % 2 จะได้ค่าเท่ากับเท่าไหร่ ?
ลำดับความสำคัญ 5 + 2 * 4 ได้ค่า 13 10 / 2 – 3 ได้ค่า 2 8+12*2-4 ได้ค่า 28 10/(5-3) ได้ค่า 5 (4+17) % 2-1 ได้ค่า 0 (6 -3 )* (2+7)/3 ได้ค่า 9
ตัวดำเนินการแบบย่อ (shortcut operator)
Assignment Operator : ตัวดำเนินกำหนดค่า • ตัวดำเนินการกำหนดค่าจะทำหน้าที่กำหนดค่าของข้อมูล โดยนำข้อมูลจากด้านขวาของตัวดำเนินการมากำหนดให้กับตัวแปรที่อยู่ด้านซ้ายของตัวดำเนินการ • ทดลองเขียนโปรแกรมโดยใช้ตัวดำเนินกำหนดค่า
Comparison Operator : ตัวดำเนินการเปรียบเทียบ • ตัวดำเนินการเปรียบเทียบนั้น เป็นการเปรียบเทียบข้อมูลที่อยู่คนละฝั่งของตัวดำเนินการว่าเหมือน หรือแตกต่างกันอย่างไร • ทดลองเขียนโปรแกรมโดยใช้ตัวดำเนินการเปรียบเทียบ
Logical Operator : ตัวดำเนินการทางตรรกศาสตร์ • ตัวดำเนินการทางตรรกศาสตร์จะนำข้อมูลมาประมวลผลในทางตรรกศาสตร์ ซึ่งผลลัพธ์จะออกมาเป็นค่า true หรือ false เท่านั้น ซึ่งเรามักจะใช้เพื่อตัดสินใจกำหนดทิศทางของการทำงานของโปรแกรม • ทดลองเขียนโปรแกรมโดยใช้ตัวดำเนินการทางตรรกศาสตร์