1.4k likes | 2.07k Views
พื้นฐานโปรแกรมภาษาจาวา (Overview of Java Programming Language). Nerissa Onkhum. วัตถุประสงค์. แนะนำสัญลักษณ์และคำต่าง ๆ ที่ใช้ในภาษาจาวา แนะนำข้อมูลค่าคงที่และชนิดข้อมูลแบบพื้นฐานที่ใช้ในภาษาจาวา แนะนำการประกาศและคำสั่งกำหนดค่าตัวแปร แนะนำตัวดำเนินการประเภทต่าง ๆ
E N D
พื้นฐานโปรแกรมภาษาจาวา(Overview of Java Programming Language) Nerissa Onkhum
วัตถุประสงค์ • แนะนำสัญลักษณ์และคำต่าง ๆ ที่ใช้ในภาษาจาวา • แนะนำข้อมูลค่าคงที่และชนิดข้อมูลแบบพื้นฐานที่ใช้ในภาษาจาวา • แนะนำการประกาศและคำสั่งกำหนดค่าตัวแปร • แนะนำตัวดำเนินการประเภทต่าง ๆ • อธิบายการแปลงชนิดข้อมูล • แนะนำชนิดข้อมูลแบบอ้างอิง • แนะนำคำสั่งที่ใช้ในการรับข้อมูลและคำสั่งที่ใช้ในการแสดงผล
ไวยากรณ์ภาษาจาวา (Java Syntax) • คำหรือข้อความที่สามารถเขียนในโปรแกรมภาษาจาวาจะต้องเป็นคำ หรือข้อความในรูปแบบใดรูปแบบหนึ่งของประเภทต่างๆ เหล่านี้ • คอมเมนต์ (Comment) • Identifier • คีย์เวิร์ด (Keywords) • สัญลักษณ์แยกคำ (Separators) • ช่องว่าง (White space) • ข้อมูลค่าคงที่ (Literals)
คอมเมนต์ (Comment) • คอมเมนต์คือข้อความที่แทรกอยู่ในโปรแกรม • คอมเมนต์เขียนไว้เพื่อ • อธิบายโปรแกรม • ให้ผู้อ่านเข้าใจโปรแกรมง่ายยิ่งขึ้น • ช่วยทำให้การแก้ไขและปรับปรุงโปรแกรมเป็นไปได้ง่ายขึ้น
คอมเมนต์ (Comment) • คอมเมนต์ในภาษาจาวาแบ่งออกเป็น 3 ประเภท ดังนี้ 1. คอมเมนต์แบบบรรทัดเดียว (One line comment) - ใช้เครื่องหมาย // - โดยข้อความที่อยู่หลังเครื่องหมายนี้ไปจนสุดบรรทัดนั้น จะกลายเป็นคอมเมนต์ เช่น // This is one line comment
คอมเมนต์ (Comment) 2. คอมเมนต์แบบหลายบรรทัด (many line comment) - ใช้เครื่องหมาย /* ร่วมกับ */ - โดยใส่เครื่องหมาย /* ไว้หน้าข้อความที่ต้องการให้เป็น คอมเมนต์และใส่เครื่องหมาย /* ไว้หลังข้อความที่ต้องการให้เป็นคอมเมนต์ เช่น /*This is may line comment*/
คอมเมนต์ (Comment) 3. คอมเมนต์สำหรับสร้างเอกสารประกอบโปรแกรม (documentation comment) - ใช้เครื่องหมาย /** ร่วมกับ */ - คอมเมนต์สำหรับข้อความที่ต้องการสร้างเป็นไฟล์เอกสารที่เป็นไฟล์ประเภท HTML
ตัวอย่างโปรแกรม /* This program is to show how to write comments */ public class ShowComments { // Main method public static void main(String args[]) { /** This is a comment for documentation */ System.out.println("Document"); } }
Identifier • identifier คือชื่อที่ตั้งขึ้นในภาษาจาวา ซึ่งอาจเป็นชื่อของคลาส ชื่อของตัวแปร ชื่อของเมธอด ชื่อของแพ็กเกจ หรือชื่อของอินเตอร์เฟส • identifier จะต้องเป็นไปตามกฎการตั้งชื่อดังนี้ • identifier จะต้องขึ้นต้นด้วยอักขระ A-Z, a-z, _ หรือ $ เท่านั้น • identifier ที่ประกอบไปด้วยตัวอักขระมากกว่าหนึ่งตัว ตัวอักขระหลังจากตัวแรกนั้นจะต้องเป็นตัวอักขระข้างต้น หรือเป็นตัวเลข 0 ถึง 9 เท่านั้น • identifier จะต้องไม่ตรงกับคีย์เวิร์ด และไม่ประกอบด้วยช่องว่าง
Identifier • identifier ในภาษาจาวาเป็น case sensitive • case sensitive หมายถึง ตัวอักษรตัวใหญ่กับตัวอักษรเล็กถือว่าเป็นคนละตัวกัน เช่น • hello • Hello • hELLo
ถูกต้อง MyVariable _MyVariable $x This_is_also_a_variable ไม่ถูกต้อง My Variable 9pns a+c Hello'World public ตัวอย่างของ Identifier
หลักการตั้งชื่อที่ปฏิบัติกันโดยทั่วไปหลักการตั้งชื่อที่ปฏิบัติกันโดยทั่วไป • การตั้งชื่อของคลาส • จะขึ้นต้นด้วยตัวอักษรพิมพ์ใหญ่แล้วตามด้วยตัวอักษรพิมพ์เล็กหรือตัวเลข โดยจะใช้ตัวอักษรพิมพ์ใหญ่เฉพาะอักษรนำของแต่ละคำ ที่ตามมาในชื่อ • ควรเป็นคำนาม • ตัวอย่างเช่น • Sample • HelloWorld • Student • GraduateStudent
หลักการตั้งชื่อที่ปฏิบัติกันโดยทั่วไปหลักการตั้งชื่อที่ปฏิบัติกันโดยทั่วไป • การตั้งชื่อของตัวแปร • จะขึ้นต้นด้วยตัวอักษรพิมพ์เล็ก โดยจะใช้ตัวอักษรพิมพ์ใหญ่ เฉพาะอักษรนำของแต่ละคำที่ตามมาในชื่อ • ควรเป็นคำนามหรือเป็นชื่อสั้นๆ • ตัวอย่างเช่น • x • i • name • id • gpa
หลักการตั้งชื่อที่ปฏิบัติกันโดยทั่วไปหลักการตั้งชื่อที่ปฏิบัติกันโดยทั่วไป • การตั้งชื่อเมธอด • จะใช้หลักการเดียวกับการตั้งชื่อตัวแปร แต่ควรเป็นคำกริยา • ตัวอย่างเช่น getName, setName หรือ showDetails เป็นต้น • การตั้งชื่อค่าคงที่ • จะใช้ตัวอักษรพิมพ์ใหญ่ทั้งหมด และจะแยกคำโดยใช้เครื่องหมาย _ (underscore) • ควรเป็นคำนาม • ตัวอย่างเช่น MIN_GPA เป็นต้น
คีย์เวิร์ด • คีย์เวิร์ดคือชื่อที่มีความหมายพิเศษในภาษาจาวา • คีย์เวิร์ดทุกตัวจะเป็นตัวอักษรตัวพิมพ์เล็ก • คีย์เวิร์ด goto และ const • เป็นคีย์เวิร์ดที่ไม่ได้ตรงกับคำสั่งใดในภาษาจาวา • คำว่า true และ false • ไม่ได้เป็นคีย์เวิร์ดในภาษาจาวา แต่จะเป็นข้อมูลค่าคงที่ชนิดตรรกะ • คำว่า null • ไม่ได้เป็นคีย์เวิร์ดในภาษาจาวา แต่จะเป็นข้อมูลค่าคงที่ของตัวแปรที่มีชนิดข้อมูลเป็นประเภทอ้างอิง
คีย์เวิร์ดที่ใช้ในภาษาจาวาคีย์เวิร์ดที่ใช้ในภาษาจาวา
ช่องว่าง (white space) • โปรแกรมภาษาจาวาสามารถที่จะมีช่องว่างเพื่อที่แยกคำ ประโยค หรือคำสั่งต่าง ๆ ภายในโปรแกรมได้ • white spaceหมายถึงตัวอักษรที่ไม่มีรูปร่างหน้าตา เป็นตัวอักษรที่มองไม่เห็น • จาวาแบ่ง white space ออกเป็น 5 ชนิดได้แก่ • Space character คือ ช่องว่าง • Horizontal tab คือ ตัวอักษรแนวนอนแท็บ (\t) • Form feed คือตัวอักษรขึ้นหน้าใหม่ (\f) • Carriage return คือ ตัวอักษรเลื่อนเคอร์เซอร์ไปซ้ายสุด (\r) • linefeed หรือ newline คืออักษรขึ้นบรรทัดใหม่ (\n)
ช่องว่าง (white space) • white spaceมีหน้าที่ช่วยแยกคำให้อ่านง่ายขึ้น • white spaceมีอยู่เป็นจำนวนเท่าไรระหว่างคำ จะไม่ส่งผลต่อการตีความของคอมไพเลอร์ • หลักการของ white spaceมีอยู่ 2 ข้อ คือ 1. ห้ามมี white space ระหว่างชื่อเมธอดและเครื่องหมายวงเล็บเปิด เช่น
ช่องว่าง (white space) 2. ต้องใส่ white space ไว้หลัง reserved word เสมอ เช่น
ข้อมูลค่าคงที่ (Literal) • ข้อมูลค่าคงที่ คือ คำที่ใช้แสดงข้อมูลที่เป็นตัวเลข ตัวอักขระ ข้อความ หรือค่าทางตรรกะ • ข้อมูลค่าคงที่แบ่งออกเป็น 5 ประเภทดังนี้ • ตรรกะ (boolean) • ตัวอักขระ (character) • ตัวเลขจำนวนเต็ม (integral) • ตัวเลขทศนิยม (floating point) • ข้อความ (string)
ชนิดข้อมูลแบบพื้นฐาน • ชนิดข้อมูลในภาษาจาวาแบ่งเป็นสองประเภทใหญ่ๆคือ • ชนิดข้อมูลแบบพื้นฐาน (primitive data type) • ชนิดข้อมูลแบบอ้างอิง (reference data type) • ชนิดข้อมูลแบบพื้นฐานแบ่งออกเป็น 4 ประเภทดังนี้ • ชนิดข้อมูลตรรกะ (Logical) คือชนิด boolean • ชนิดข้อมูลอักขระ (Textual) คือชนิด char • ชนิดข้อมูลตัวเลขจำนวนเต็ม (Integral) คือชนิด byte,short,int และ long • ชนิดข้อมูลตัวเลขทศนิยม (Floating point) คือชนิด floatและdouble
ข้อมูลชนิดตรรกะ (Logical) • ข้อมูลชนิดตรรกะ (boolean) มีข้อมูลค่าคงที่อยู่ 2 ค่าคือ • true และ false • ตัวอย่างเช่น คำสั่ง boolean flag = true; เป็นการกำหนดตัวแปรที่ชื่อว่า flag ให้มีชนิดข้อมูลเป็น boolean โดยกำหนดให้มีค่าเป็น true
ข้อมูลชนิดตัวอักขระ (Character) • Char เป็นชนิดข้อมูลแบบตัวอักษร (Character) ซึ่งถูกเก็บอยู่ในรูปของมาตรฐาน Unicode มีขนาด 16 บิต • ใช้สำหรับเก็บข้อมูลที่มีความยาวไม่เกิน 1 ตัวอักษรเท่านั้น • โดยการเขียน Character literals จะต้องครอบคลุมด้วยเครื่องหมาย ' ' (Single Quote) • โดยจะมีค่าตั้งแต่ '\u0000' ถึง '\uFFFF'
ข้อมูลชนิดตัวอักขระ (Character) • ตัวอย่างเช่น คำสั่ง char letter = '\u0041'; เป็นการประกาศตัวแปรที่ชื่อว่า letter ให้เป็นข้อมูลชนิด char โดยมีค่าเป็น \u0041 ซึ่งมีค่าเท่ากับตัวอักษร A • ตัวอย่างเช่น คำสั่ง char letter = 'A'; เป็นการประกาศตัวแปรที่ชื่อว่า letter ให้เป็นข้อมูลชนิด char โดยมีค่าเป็นตัวอักษร A เช่นเดียวกับคำสั่งก่อนหน้านี้
อักขระพิเศษที่นิยมใช้ทั่วไปอักขระพิเศษที่นิยมใช้ทั่วไป
ข้อมูลชนิดตัวเลขจำนวนเต็มข้อมูลชนิดตัวเลขจำนวนเต็ม • มีชนิดข้อมูลพื้นฐาน 4 ชนิดคือ • byte,short,int,long • โดยทั่วไปข้อมูลชนิดตัวเลขจำนวนเต็มจะถูกกำหนดให้มีชนิดข้อมูลเป็น int • ข้อมูลค่าคงที่สามารถเขียนได้สามแบบดังนี้ • เลขฐานสิบคือการเขียนเลขจำนวนเต็มทั่วไป เช่น -121 และ 75362 เป็นต้น • เลขฐานแปดคือการเขียนเลขจำนวนเต็มที่ขึ้นต้นด้วยเลข 0 แล้วตามด้วยตัวเลขตั้งแต่ 0 ถึง 7 อาทิเช่น 016 (มีค่าเท่ากับ 14 ในเลขฐานสิบ) • เลขฐานสิบหกคือการเขียนเลขจำนวนเต็มที่ขึ้นต้นด้วย 0x หรือ 0X แล้วตามด้วยตัวเลขตั้งแต่ 0 ถึง 9 หรือตัวอักษร A ถึง F อาทิเช่น 0xA2 (มีค่าเท่ากับ 162 ในเลขฐานสิบ)
ข้อมูลชนิดตัวเลขจำนวนเต็ม • ข้อมูลค่าคงที่ของเลขจำนวนเต็มที่เป็นชนิด long จะมีตัวอักษร l หรือ L ต่อท้าย เช่น • 2l หมายถึง เลขฐานสิบที่มีค่าเป็น 2 ซึ่งเป็นข้อมูลชนิด long • 077L หมายถึง เลขฐานแปดที่เป็นข้อมูลชนิด long • 0xBAACL หมายถึง เลขฐานสิบหกที่เป็นข้อมูลชนิด long
ข้อมูลชนิดตัวเลขทศนิยม (floating point) • ข้อมูลชนิดตัวเลขทศนิยมจะเป็นเลขที่มีเครื่องหมายจุดทศนิยม เช่น • 3.14 หรือ 3.0 • มีชนิดข้อมูลพื้นฐาน 2 ชนิด คือ double และ float • โดยทั่วไปข้อมูลชนิดตัวเลขทศนิยมจะถูกกำหนดให้มีชนิดข้อมูลเป็น double • สามารถเขียนในรูปแบบของเลขยกกำลังสิบ (exponential form) ได้ โดยใช้ตัวอักษร E หรือ e ระบุจำนวนที่เป็นเลขยกกำลังสิบ เช่น • 6.02E23 หรือ 2e-7
ข้อมูลชนิดตัวเลขทศนิยม • ข้อมูลชนิดตัวเลขทศนิยมที่มีชนิดข้อมูลเป็น float จะมีตัวอักษร F หรือ f ต่อท้าย เช่น • 2.718F หรือ 3.14f • ข้อมูลชนิดตัวเลขทศนิยมที่มีชนิดข้อมูลเป็น double จะมีตัวอักษร D หรือ d ต่อท้าย เช่น • 2.718D (โดยทั่วไปไม่จำเป็นต้องใส่ตัวอักษร D เพราะข้อมูลชนิดตัวเลขทศนิยมจะกำหนดให้เป็น double อยู่แล้ว)
ตัวแปร (Variable) • ตัวแปรคือข้อมูลที่สามารถเปลี่ยนแปลงค่าได้ในโปรแกรม โดยใช้คำสั่งกำหนดค่า • คำสั่งในการประกาศตัวแปรของภาษาจาวามีรูปแบบดังนี้ dataType [variableName]; • ตัวอย่างเช่น คำสั่ง int amount; double x,y; float price,wholeSalePrice;
คำสั่งกำหนดค่า (Assignment Statement) • คำสั่งกำหนดค่าจะเป็นคำสั่งที่ใช้ในการเปลี่ยนแปลงค่าของตัวแปร • คำสั่งกำหนดค่า (assignment statement) ซึ่งมีรูปแบบดังนี้ variableName = expression; • ตัวอย่างเช่น x = 1; radius = 3.14; c = ‘a’; y = x+4*3; amount = 121+14;
คำสั่งประกาศและกำหนดค่าตัวแปรคำสั่งประกาศและกำหนดค่าตัวแปร • เราสามารถที่จะประกาศและกำหนดค่าเริ่มต้นของตัวแปรภายในคำสั่งเดียวกัน โดยมีรูปแบบคำสั่งดังนี้ dataTypevariableName = expression • ตัวอย่างเช่น int amount = 123; float price = 12.0f; double x = 4.0, y = 2.5;
ตัวอย่างโปรแกรม public class VariableAssignDemo { public static void main(String args[]) { intx,y; boolean b1; float z = 3.414f; /* The program will not be compiled successfully if a character f is missing */ double w; x = 5; y = 4; b1 = (x > y); w = x * 3.2; System.out.println("x = " + x + " y = " + y); System.out.println("b1 = " + b1); System.out.println("z = " + z + " w = " + w); } }
ค่าคงที่ • การประกาศค่าคงที่ในภาษาจาวาทำได้โดยการใส่คีย์เวิร์ด final หน้าคำสั่งประกาศชื่อ โดยมีรูปแบบดังนี้ final dataType CONSTANT_NAME = expression; • ตัวอย่างเช่น คำสั่ง final int MINIMUM = 4; final double MIN_GPA = 2.00;
ตัวอย่างโปรแกรม public class ConstantDemo { public static void main(String args[]) { final int MAXIMUM = 10; final double MIN_GPA; System.out.println("Maximum is " + MAXIMUM); MIN_GPA = 2.00; System.out.println("Minimum GPA is " + MIN_GPA); // MIN_GPA = 3.00; //illegal } }
ขอบเขตของตัวแปรและค่าคงที่ขอบเขตของตัวแปรและค่าคงที่ • ตัวแปรและค่าคงที่ซึ่งประกาศขึ้นจะสามารถใช้งานภายในบล็อกคำสั่ง ({ }) ที่ประกาศเท่านั้น • ภาษาจาวาแบ่งตัวแปรและค่าคงที่เป็นสองประเภทคือ • ตัวแปรหรือค่าคงที่ที่เป็นคุณลักษณะของออปเจ็คหรือคุณลักษณะของคลาส • ตัวแปรหรือค่าคงที่ที่อยู่ในบล็อกของเมธอดที่เรียกว่าค่าคงที่ภายใน (local constant) หรือตัวแปรภายใน (local variable)
ค่าเริ่มต้นอัตโนมัติของตัวแปรค่าเริ่มต้นอัตโนมัติของตัวแปร • ตัวแปรที่เป็นคุณลักษณะของออปเจ็คหรือคุณลักษณะของคลาสจะถูกกำหนดค่าเริ่มต้นให้โดยอัตโนมัติ
ตัวอย่างโปรแกรม public class VariableScopeDemo { public inti; // object variable public void method1() { int j = 4; // local variable int k = 2; // another local variable } public void method2() { int j = 0; // local variable System.out.println(i); // calling an object variable i // System.out.println(k); // illegal } }
ตัวดำเนินการ (Operator) • นิพจน์ภาษาจาวาอาจจะประกอบด้วยข้อมูลค่าคงที่ ตัวแปร หรือค่าคงที่ต่างๆ โดยจะมีตัวดำเนินการต่างๆไว้เพื่อคำนวณหาผลลัพธ์ที่เป็นชนิดข้อมูลต่างๆ • ตัวดำเนินการในภาษาจาวาแบ่งออกเป็น 4 ประเภทคือ • ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operator) • ตัวดำเนินการแบบสัมพันธ์ (Relational Operator) • ตัวดำเนินการทางตรรกศาสตร์ (Logical Operator) • ตัวดำเนินการแบบบิต (Bitwise Operator)
ตัวดำเนินการ (Operator) • การดำเนินการทางคณิตศาสตร์ • ตัวอย่างของการดำเนินการทางคณิตศาสตร์ เช่น a + b * c • นิพจน์ (Expression) คือ การนำเอาโอเปอเรเตอร์และโอเปอแรนด์หลาย ๆ ตัว มารวมเข้าเป็นประโยคเดียวกัน ซึ่งจากด้านบน จะเรียก a + b * c ว่า “นิพจน์” • โอเปอเรเตอร์ (Operator) คือ ตัวดำเนินการ ซึ่งอาจเป็นการดำเนินการทางคณิตศาสตร์หรือทางตรรกศาสตร์ก็ได้ ซึ่งจากนิพจน์ด้านบน จะเรียก + และ * ว่า “โอเปอเรเตอร์” • โอเปอแรนด์ (Operand) คือ ตัวถูกดำเนินการ ซึ่งอาจเป็น literals, ตัวแปร หรือนิพจน์ก็ได้ ซึ่งจากนิพจน์ด้านบน จะเรียก a, b และ c ว่า “โอเปอแรนด์”
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการเพิ่มค่าและลดค่าตัวดำเนินการเพิ่มค่าและลดค่า • ตัวดำเนินการเพื่อบวกค่าทีละ 1 หรือลดค่าทีละ 1 • เครื่องหมาย ++ หรือ -- • ตัวอย่าง • x++ คือ x = x+1 • ++x คือ x = x+1 • x-- คือ x = x-1 • --x คือ x = x-1 • ถ้าวางเครื่องหมายไว้ข้างหน้า โปรแกรมจะคำนวณค่าก่อนแล้วจึงทำคำสั่ง • ถ้าวางเครื่องหมายไว้ข้างหลัง โปรแกรมจะคำนวณค่าหลังจากทำคำสั่ง
ตัวดำเนินการเพิ่มค่าและลดค่าตัวดำเนินการเพิ่มค่าและลดค่า • x++ มีความหมายเหมือนกับ ++x คือ • เป็นการเพิ่มค่าของ x ขึ้น 1 • แต่เมื่อนำไปใช้ร่วมกับนิพจน์อื่น ๆ ลำดับการทำงานของ x++ และ ++x จะแตกต่างกัน y = x++; z = ++x; ลำดับการทำงานจะเป็น ดังนี้ y = x++ => 1. y = x จะเห็นว่าทั้ง x++ และ ++x ต่างก็ทำ x = x + 1 2. x = x + 1; เหมือนกัน แต่ลำดับการทำงานต่างกัน กล่าวคือ z = ++x => 1. x = x + 1; ++x จะทำการเพิ่มค่าของ x ขึ้น 1 ก่อนที่จะนำค่าของ x 2. z = x ไปใช้ในนิพจน์ แต่ x++ จะนำค่าของ x ไปใช้ในนิพจน์ก่อน แล้วค่อยเพิ่มค่าของ x ขึ้น 1
ตัวอย่างโปรแกรม public class IncrementDemo { public static void main(String args[]) { int x; int y; x = 5; y = x++; System.out.println("x = "+x" y = "+y); y = ++x; System.out.println("x = "+x" y = "+y); } } x = 6 y = 5 x = 7 y = 7 ผลลัพธ์ที่ได้จากการรันโปรแกรม
ตัวดำเนินการแบบสัมพันธ์ตัวดำเนินการแบบสัมพันธ์
ตัวอย่างโปรแกรม public class BooleanDemo { public static void main(String args[]) { int x = 5; int y = 4; boolean b1; b1 = (x!=y); System.out.println("x not equal to y is "+b1); System.out.println("y less than 0 is "+(y<0)); } }
ตัวดำเนินการทางตรรกศาสตร์ตัวดำเนินการทางตรรกศาสตร์