Basic Elements of Java&WorkShops ครั้งที่ 2 Basic Elements of Java&WorkShops
วัตถุประสงค์ ทราบถึงโครงสร้างพื้นฐานของภาษา java ทราบถึงชนิดข้อมูลเบื้องต้น เลือกใช้ arithmetic operators(ตัวดำเนินการทางคณิตศาสตร์)ได้ การเขียนโปรแกรมเพื่อหาค่าผลลัพธ์ของนิพจน์ทางคณิตศาสตร์ ทราบถึงกระบวนการรับ แสดงผล ข้อมูล
โครงสร้าง java อ.ธวัฒน์ชัย ศิลังค์ประชา
ก่อนศึกษาโครงสร้างพื้นฐานให้พิจารณาโปรแกรมด้านล่างและ ให้ทดลองปฏิบัติตามคำแนะนำ(ปฏิบัติ) การสร้างแฟ้มชุดคำสั่งด้วย BlueJ (ฟังอธิบายและปฎิบัติตาม)โปรแกรมแรกของนักศึกษา(ซึ่งยังไม่ทราบสิ่งใดเลย) //File Name: First.java public class First { public static void main(String[] args) System.out.println("My First Program!"); System.out.println("Learn how to program using Java"); }
อธิบาย public class First public static void main(String[] args) //File Name: First.java public class First { public static void main(String[] args) System.out.println("My First Program!"); System.out.println("Learn how to program using Java"); } อธิบาย public class First เป็นการกำหนดชื่อคลาสชื่อ First public static void main(String[] args) เป็นชื่อเมธอด(method) หลักที่ต้องมี void เมธอดนี้ไม่ต้องคืนค่า (ไม่ต้องมี return ตามด้วยค่า) args เป็นพารามิเตอร์ที่เป็นอะเรย์ของสายอักขระที่รับจากผ่านนอกโปรแกรม public , class , static เป็นคำสงวน
อธิบาย System.out ใช้ในการแสดงผล เรียกว่า standard output object ตัวอย่าง System.out.println(“Hello”); System.out.println(“ 1. Apple \n 2.Banana”);
ขอบเขตของคลาสและเมธอด public class ชื่อคลาส { //เริ่มต้นคลาส //File Name: First.java public class First { public static void main(String[] args) System.out.println("My First Program!"); System.out.println("Learn how to program using Java"); } ขอบเขตของ main ขอบเขตของ คลาส ขอบเขตของคลาสและเมธอด public class ชื่อคลาส { //เริ่มต้นคลาส // บรรจุ เมธอด (กลุ่มของคำสั่งที่เราตั้งชื่อ ) public static void main(String[] args) { … } //สิ้นสุดขอบเขตของเมธอด main } //สิ้นสุดขอบเขตของคลาส ขอบเขตของ คลาส ขอบเขตของ main
โปรแกรมเบื้องต้น หน่วยการเขียนโปรแกรมในจาวา คลาส (class) เก็บไว้ในแฟ้ม .java และต้องมีคลาสเริ่มต้นที่มีชื่อเดียวกับชื่อคลาสที่มี main เป็นสมาชิกเสมอ //File Name: First.java public class First { public static void main(String[] args) System.out.println("My First Program!"); System.out.println("Learn how to program using Java"); }
โครงสร้าง java การสร้างโปรแกรม ขั้นตอนในการสร้างโปรแกรม 1.สร้าง class ใหม่ 2.สร้าง main method 3.บรรจุคำสั่งการทำงานใน main method
ประกาศสร้าง Class (Class Declaration) [modifier] class ClassName { [class member] } modifier เป็นคีย์เวิร์ด(Keyword) ใช้เป็น access modifier เช่น public ใช้สำหรับกรณีถูกเรียกใช้จากทุก class ได้เป็นต้น รายละเอียดจะกล่าวถึงเมื่อศึกษาถึงเรื่องเกี่ยวกับ Method อีกครั้ง
access_modifier ตัวกำหนดขอบเขตของการเรียกใช้ method นั้นๆ static --> เรียกใช้งานได้โดยไม่จำเป็นต้องสร้าง object public --> ถูกเรียกใช้จากทุก class private --> ถูกเรียกใช้ได้เฉพาะภายใน class ที่ประกาศ method นี้เท่านั้น <blank> --> ถูกเรียกใช้โดย class ที่อยู่ใน package เดียว กันกับ class ที่ประกาศ method นี้
Main Class ในโปรแกรมจะต้องมี class หนึ่งที่ถูกกำหนดให้เป็น main class ใน main class จะต้องมี method ที่ชื่อ main เมื่อ execute โปรแกรม main method จะถูกทำงานเป็นอันดับแรก main method ในจาวาต้องประกาศในลักษณะดังนี้ public static void main (String arg[]) { <method body> }
3.คำสั่งการทำงานใน main method 1.class 2.main method 3.คำสั่งการทำงานใน main method กลุ่มลำดับของ values ที่ส่งมายัง methods กลุ่มลำดับของ terms ที่ใช้บอกลักษณะของ method public static void main (String args[]) { คำสั่งการทำงานใน main method; } Modifiers Modifiers Return Type Method Name Parameter class ชื่อclass { ชื่อของ method data value ที่คืนให้กับผู้เรียก เรียกใช้งานได้โดยไม่จำเป็นต้องสร้าง object กลุ่มลำดับของ instructions ถูกเรียกใช้จากทุก class Method Body เป็นส่วนที่เราใส่ Statements ของการทำงานของโปรแกรม }
3.คำสั่งการทำงานใน main method 1.class 2.main method 3.คำสั่งการทำงานใน main method กลุ่มลำดับของ values ที่ส่งมายัง methods กลุ่มลำดับของ terms ที่ใช้บอกลักษณะของ method data value ที่คืนให้กับผู้เรียก ชื่อของ method Modifiers Modifiers Return Type Method Name Parameter class Helloworld { public static void main(String[] args) System.out.println("Hello World!"); }
รูปแบบการตั้งชื่อของจาวา (Java Namming Convention) ตัวแรกของชื่อ class ให้ขึ้นต้นด้วยตัวพิมพ์ใหญ่ ตัวแรกของชื่อ Object และ method ให้ขึ้นต้นด้วยตัวพิมพ์เล็ก ชื่อที่ประกอบขึ้นจากคำหลายคำให้ใช้ตัวพิมพ์ใหญ่ช่วยแยกคำ ชื่อของ Class ,Object ควรเป็นคำนาม ชื่อของ method ควรเป็นคำกริยา ชื่อของค่าคงที่ (constant) ให้ใช้ตัวพิมพ์ใหญ่ทั้งหมดและใช้ _ เป็นตัวช่วยแยกคำ
ขั้นตอนการสร้างและสั่งให้โปรแกรมทำงาน 1. การ SetPath c:\>set classpath=.;%classpath% 2. javac ชื่อแฟ้ม.java เช่น First.java java ชื่อแฟ้มจากข้อ 2. เช่น java First หรือ java -classpath . First
ข้อมูลพื้นฐานภาษาจาวา
ตัวระบุ ชนิดข้อมูลพื้นฐาน
การเขียนหมายเหตุ การเขียนหมายเหตุใน JAVA // ข้อความ หรือ /* ข้อความ */ /* ข้อความ */ /* ข้อความ 1 ข้อความ 2 */
Semicolons, Blocks, and Write space ใช้แสดงจุดสิ้นสุดของคำสั่งใน JAVA คำสั่งอาจมีบรรทัดเดียว หรือหลายก็ได้ เช่น sum = sum + score; หรือ sum = sum + score1 + score2; Block เป็นกลุ่มของคำสั่งที่อยู่ภายใต้วงเล็บปีกกา ใช้แสดงขอบเขตของตัวแปร หรือ ใช้ในการจัดกลุ่มของคำสั่ง เช่น for (int I =0 ; i<10; i++) { System.out.print(“I=“+i); sum = sum + I; }
ตัวระบุ(Identifiers) ตัวระบุ หมายถึงชื่อที่ใช้ในการตั้งชื่อตัวแปร ชื่อคลาส ชื่อเมธอด ตัวระบุ ต้องขึ้นต้นด้วยอักษร หรือ $ หรือ _ ตัวระบุ ถือว่าตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แตกต่างกัน ตัวอย่าง Score, $Name, _Amount, Balance_amt
ตัวแปร (Variables) ตัวแปร คืออะไร การตั้งชื่อตัวแปร และค่าคงที่ ตัวแปร เป็นชื่อ หรือตัวระบุที่ใช้อ้างถึงหน่วยความจำหน่วยหนึ่งหน่วยใด เพื่อใช้อ้างถึงพื้นที่หน่วยความจำนั้นได้โดยผ่านตัวแปร ตัวแปรหนึ่งตัวจะบรรจุค่าได้เพียงค่าเดียว หรือได้เพียงตัวเลขหนึ่งค่า หรืออักขระหนึ่งค่า int number1; int number2=10; char c=‘A’; การตั้งชื่อตัวแปร และค่าคงที่ ขึ้นต้นด้วยตัวพิมพ์เล็ก ไม่ควรใช้ $ หรือ _ ขึ้นต้นชื่อตัวแปร เขียนให้สื่อความหมาย ถ้าชื่อประกอบด้วยคำหลายคำให้ขึ้นคำใหม่ด้วยตัวพิมพ์ใหญ่ เช่น scoreOfStudent
ค่าคงที่ (Constants) ค่าคงที่เป็นค่าที่กำหนดครั้งแรกเพียงครั้งเดียว แล้วไม่สามารถเปลี่ยนค่าได้ระหว่างประมวลผล ทำไม การกำหนดค่าคงที่ทำให้การแก้ไขโปรแกรมได้ง่าย เช่น taxRate แทนอัตราภาษี final int taxRate = 7; ถ้ามีการอ้างถึงอัตราภาษีให้ใช้ taxRate แทน กรณีมีการแก้ไขอัตราภาษีให้แก้ที่เดียว ไม่ต้องตามแก้ทุกที่ วิธีเขียน ต้องมีคำสงวน final นำหน้าชนิดข้อมูลของค่าคงที่ พร้อมกำหนดค่าเริ่มต้นดังตัวอย่าง
คำสงวน (Keyword) คำสงวน ที่ไม่ควรตั้งชื่อคลาส หรือตัวแปร หรือเมธอด ซ้ำ abstract boolean break byte case catch char class const continue default do double else extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try void volatile while
ชนิดข้อมูลพื้นฐาน ชนิดตรรกะ เป็นชนิดที่มีค่าเพียงสองค่า คือ true หรือ false boolean found = false; ชนิดจำนวนเต็ม short, int, long ชนิดจำนวนจริง float , double ข้อความ char และ String
ชนิดข้อมูลจำนวนเต็ม ขอบเขตของค่า ประเภทข้อมูล ช่วงข้อมูล หน่วยความจำ byte -128 ถึง 127 short -32,768 ถึง 32,767 int -2,147,483,648 ถึง 2,147,483,647 long -9 x 1018 ถึง 9 x 1018 หน่วยความจำ 8 บิต 16 บิต 32 บิต 64 บิต
ค่าคงที่ของจำนวนเต็ม (Integer Literal) การเขียนค่าคงที่จำนวนเต็ม เขียนได้ดังนี้ เลขฐานสิบ (Decimal Number) เขียนตามปกติเช่น 120 เลขฐานแปด (Octal Number) ต้องขึ้นต้นด้วย 0 เช่น 025 เลขฐานสิบหก (Hexa-Decimal Number) ต้องขึ้นต้นด้วย 0x เช่น 0x1AC2 ขนาดของจำนวนเต็มปกติมีขนาด 32 บิต แต่ถ้าเครื่องที่เป็น 64 บิต ถ้าต้องให้ integer มีขนาด 64 บิต ให้เพิ่ม ‘L’ หรือ ‘l’ ต่อท้ายตัวเลข เช่น x64 = 12345679L;
ชนิดข้อมูลทศนิยม ขอบเขต ตัวอย่างการประกาศตัวแปร double number1 = 2.35; float number2 = 2.35f; ขอบเขต float, 4 bytes, range approx. ±[10-38, 10+38]. double, 8 bytes, range approx. ±[10-308, 10+308]. The no. of sign digits is approx. 15.
ชนิดข้อมูลตรรกะ ตัวอย่าง boolean exit_loop; exit_loop = false; ค่าที่เก็บใน boolean มีเพียง 2 ค่าเท่านั้นคือ true หรือ false
ชนิดข้อมูลอักขระ ตัวอย่างการประกาศ char c; c = ‘A’; การกำหนดค่าคงที่ ต้องระบุภายใต้เครื่องหมาย ‘ ‘ อักขระแต่ละตัวมีขนาด 16 บิต แต่ถ้าเป็นรหัส ASCII เก็บได้แตกต่างกันถึง 256 ตัว ขนาด ถ้าเป็นรหัส Unicode เก็บได้แตกต่างกันถึง 65,535 ตัว
การประกาศตัวแปร การประกาศตัวแปร ชื่อชนิดข้อมูล ชื่อตัวแปร; double d; ชื่อชนิดข้อมูล ชื่อตัวแปร; ตัวอย่าง: double d; หรือ int x,y; int x=5, y; float f=2.34f;
ชนิดข้อมูลสายอักขระ ค่าที่เก็บในตัวแปรชนิดสายอักขระ ต้องอยู่ภายใต้เครื่องหมาย “ “ เช่น “Hello”, “120”, “Thankyou” หรือ “ “ ซึ่งแตกต่างจาก ‘ ‘ ตัวอย่าง String city = “Bangkok "; String text = “This is a simple text string."; int number = 13; System.out.println(“The number’s value is " + number + “."); String cities = city + " Bangkok"; System.out.println(cities);
นิพจน์ (Expression) นิพจน์พีชคณิต บวก + a + 10 A + 10 ลบ - a – b a –b Java operation Arithmetic operator Algebraic Expression Java Expression บวก + a + 10 A + 10 ลบ - a – b a –b คูณ * a * b a*b หาร / a/b หรือ ab a/b หาเศษ % 5 mod 2 5%2
นิพจน์พีชคณิต ลำดับความสำคัญ (Precedence) 1. ( ) 1. ( ) 2. * หรือ / หรือ % ทำจากซ้ายไปขวา 3. + หรือ ลบ ทำจากซ้ายไปขวา ตัวอย่าง: y = (a +b)/2*a + c; ทำ (a + b) (a + b) /2 (a +b)/2 * a (a + b)/2*a + c เก็บผลลัพธ์ไว้ใน y
นิพจน์ (Expression) ตัวดำเนินการเท่ากัน (equality operator) < ตัวอย่าง ความหมาย == x == y x มีค่าเท่ากับ y จริงหรือไม่ != x != y x มีค่าไม่เท่ากับ y จริงหรือไม่ > X > y x มีค่ามากกว่า y จริงหรือไม่ < x<y x มีค่าน้อยกว่า y จริงหรือไม่ >= x>=y x มีค่ามากกว่าหรือเท่ากับ y จริงหรือไม่ <= x<=y x มีค่าน้อยกว่าหรือเท่ากับ y จริงหรือไม่
ตัวดำเนินการสัมพันธ์ ( Relational Operators ) == ( equal ) != ( not equal ) < ( less than ) > ( greater than ) <= ( less than or equal ) >= ( greater than or equal ) ผลลัพธ์ที่ได้คือค่า boolean ( true หรือ false)
ตัวดำเนินการสัมพันธ์ ( Relational Operators ) รูปแบบ การทำงาน ตัวอย่าง < Op1 < Op2 คืนค่าความจริงเป็นจริงถ้า Op1 น้อยกว่า Op2 A = (1<3); // a = true <= Op1 <= Op2 คืนค่าความจริงเป็นจริงถ้า Op1 น้อยกว่าหรือเท่ากับ Op2 A = (5<=7); // a = true > Op1 > Op2 คืนค่าความจริงเป็นจริงถ้า Op1 มากกว่า Op2 A = (5>7); // a=false >= Op1 >= Op2 คืนค่าความจริงเป็นจริงถ้า Op1 มากกว่าหรือเท่ากับ Op2 A = (5>=7); // a=false == Op1 == Op2 คืนค่าเป็นจริงถ้า Op1 เท่ากับ Op2 A = (5==7); // a=false เพราะ 5 ไม่เท่ากับ 7
ตัวดำเนินการทางตรรกะ ( Logical Operators ) รูปแบบ การทำงาน ตัวอย่าง ! (Not) !Op1 เปลี่ยนค่าความจริงเป็นตรงกันข้าม A = !(true); // a = false && (And) Op1 && Op2 ดูผลการคำนวณตารางถัดไป A = (true && fales); // a = false || (Or) Op1 || Op2 A = (false|| false); // a = false ^ (Exclusive Or) Op1 ^ Op2 A = (false^ false); // a = false
Logical Operators && (AND) || (OR) ! (NOT)
ตารางแสดงผลของ Boolean Operators A && B A || B A ^ B !A T F ตัวอย่างโปรแกรม BoolLogicDemo.java
ฝึกปฏิบัติ
ตัวอย่าง PrimitiveVariable.java class PrimitiveVariable { public static void main(String args[]) { double d;d = 11.11; System.out.println(d); int a = 3500; System.out.println(a); } }
class Hello2 { public static void main(String[] args) {int a = 10; int b= 30; int c; c = a+b; System.out.println("Hello World! My student"); System.out.println("Hello c = "+c); }
// FloatDouble.java class FloatDouble { public static void main(String args[]) { float float_pi = 3.1415926535897896F; double double_pi = 3.1415926535897896D; System.out.println(float_pi); System.out.println(double_pi); }
class FloatOp { public static void main(String args[]) { System.out.println(1.0 + 2.0); System.out.println(2.0 - 3.0); System.out.println(3.0 * 4.0); System.out.println(4.0 / 5.0); System.out.println(10.0 % 3.0); }
class Find { public static void main(String[] args) { float c,f; f= 98.6f; c= (f-32)/9*5; System.out.println("f="+f+"c= "+c); }
Arithmetic Operators + , - , * , / , % Shorthand Assignment Operator x += n; // same as x = x + n; x -= n; // same as x = x – n; x *= n; // same as x = x * n; x /= n; // same as x = x / n; x++; // same as x = x + 1; x- -; // same as x = x – 1;
String Arithmetic String concatenation: ‘+’ or ‘+=’ Example str = “Hi” + “friends”; ผลลัพธ์ str จะเท่ากับ “Hi friends”
class PrimitiveVariable { public static void main(String args[]) { double d;d = 11.11; System.out.println(d); int a = 3500; System.out.println(a); } }
public class DefineVariable1 { public static void main(String []args) { int age; // ...... age .................... float currency; // ...... currency ............. char letter; // ...... letter ............ boolean single; // ...... single ......... final float PI = 314e-2f; // ...... PI ............ 3.14 ... float age = 26; // .... 26 ........ age currency = 45.23f; // .... 45.23 ........ currency letter = 'A'; // ................ . ........ letter single = true; // .......... true ........ single System.out.println("age = " + age); System.out.println("currency = " + currency); System.out.println("letter = " + letter); System.out.println("single = " + single); System.out.println("PI = " + PI); }
public class DefineVariable2 { public static void main(String args[]) { long age = 50; double currency = 9.98812e2d; char letter = 'C'; boolean single = false; System.out.println("age = " + age); System.out.println("currency = " + currency); System.out.println("letter = " + letter); System.out.println("single = " + single); }
ตัวอย่าง BasicMath.java class BasicMath{ public static void main (String args[]){ int a = 1 + 1; int b = a * 3; int c = b / 4; int d = b - a; int e = -d; int f = 9%5; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); System.out.println("e = " + e); System.out.println("9%5 = " + 9%5); }
ตัวอย่าง BooleanLiteral.java class BooleanLiteral { public static void main(String args[]) { System.out.println(true); System.out.println(false); System.out.println(1 < 2); System.out.println('A' == 'B'); }
public class DefineVariable1 { public static void main(String []args) { int age; // ...... age .................... float currency; // ...... currency ............. char letter; // ...... letter ............ boolean single; // ...... single ......... final float PI = 314e-2f; // ...... PI ............ 3.14 ... float age = 26; // .... 26 ........ age currency = 45.23f; // .... 45.23 ........ currency letter = 'A'; // ................ . ........ letter single = true; // .......... true ........ single System.out.println("age = " + age); System.out.println("currency = " + currency); System.out.println("letter = " + letter); System.out.println("single = " + single); System.out.println("PI = " + PI); } Final= ไม่อนุญาตให้มีการประกาศซ้ำ
public class DefineVariable2 { DefineVariable2.java ตัวอย่าง public class DefineVariable2 { public static void main(String args[]) { long age = 50; double currency = 9.98812e2d; char letter = 'C'; boolean single = false; System.out.println("age = " + age); System.out.println("currency = " + currency); System.out.println("letter = " + letter); System.out.println("single = " + single); }
public static void main ( String[] args ) char ch = 'A' ; ตัวอย่าง CharEg.java class CharEg { public static void main ( String[] args ) char ch = 'A' ; System.out.println("A char: " + ch ); }
public static void main ( String[] args ) double value = 32; DoubleEg.java ตัวอย่าง class DoubleEg { public static void main ( String[] args ) double value = 32; System.out.println("A double: " + value); }
public static void main(String[] args) { float c,f; f= 98.6; Find.java ตัวอย่าง class Find { public static void main(String[] args) { float c,f; f= 98.6; c= (f-32)/9*5; System.out.println("f="+f+"c= "+c); }
public class BoolLogicDemo { public static void main (String args[]) { //a few boolean boolean a = true; boolean b = false; boolean c = a || b ; boolean d = a && b ; boolean e = a ^ b ; boolean f = ( !a && b) || (a && !b); boolean g = !a; System.out.println(" a = " + a); System.out.println(" b = " + b); System.out.println(" a||b = " + c); System.out.println(" a&&b = " + d); System.out.println(" a^b = " + e); System.out.println(" !a&&b||a&&!b = " + f); System.out.println(" !a = " + g); } } // BoolLogicDemo
import java.lang.*; public class ArithmeticDemo { public static void main(String[] args) { //a few numbers int i = 37; int j = 42; double x = 27.475; double y = 7.22; System.out.println("Variable values..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" x = " + x); System.out.println(" y = " + y); //มีต่อ
//adding numbers System.out.println("Adding..."); System.out.println(" i + j = " + (i + j)); System.out.println(" x + y = " + (x + y)); //subtracting numbers System.out.println("Subtracting..."); System.out.println(" i - j = " + (i - j)); System.out.println(" x - y = " + (x - y)); //multiplying numbers System.out.println("Multiplying..."); System.out.println(" i * j = " + (i * j)); System.out.println(" x * y = " + (x * y)); //มีต่อ
//dividing numbers System.out.println("Dividing..."); System.out.println(" i / j = " + (i / j)); System.out.println(" x / y = " + (x / y)); //computing the remainder resulting from dividing numbers System.out.println("Computing the remainder..."); System.out.println(" i % j = " + (i % j)); System.out.println(" x % y = " + (x % y));
//mixing types System.out.println("Mixing types..."); System.out.println(" j + y = " + (j + y)); System.out.println(" i * x = " + (i * x)); } }
การรับ-แสดงผลลัพธ์ Input&Output
การแสดงข้อความในกล่องโต้ตอบ คำอธิบาย import javax.swing.JOptionPane; - import ช่วยให้ตัวแปลภาษาสามารถค้นหาคลังโปรแกรมได้ถูกต้อง ในที่นี้ใช้ Java API ชื่อคลาสที่ใช้คือ JOptionPane ซึ่งบรรจุใน Package ชื่อ javax.swing
การแสดงข้อความในกล่องโต้ตอบ คำอธิบาย JOptionPane.showMessageDialog(null,” "Learn to \n Java Progromming"); - เป็นการร้องขอใช้บริการจากเมธอด ชื่อ showMessageDialog ของ Object ชื่อ JOptionPane (ชื่อเดียวกับคลาส) เพื่อแสดงข้อความ “Learn to \n Java Programming” บนกล่องโต้ตอบ -null หมายถึงเป็นการส่งอาร์กิวเมนต์ไปให้พารามิเตอร์เพื่อบอกว่าไม่มีวินโดวส์ใด เป็นแม่ของกล่องโต้ตอบนี้
การแสดงข้อความในกล่องโต้ตอบ คำอธิบาย Systen.exit(0); - เป็นการร้องขอให้ exit ทำงาน เพื่อจบโปรแกรม System เป็นชื่อของObject ชื่อเดียวกับคลาส อยู่ใน Package ชื่อ java.lang - ในการเขียนโปรแกรมติดต่อแบบ GUI ต้องใช้ exit เสมอเพื่อจบโปรแกรม - เลขศูนย์ หมายถึงคืนค่ากลับไปที่เรียกโปรแกรม ( shell script ของ UNIX) นี้มา เพื่อบอกว่าไม่มีปัญหาโปรแกรมจบลงอย่างสมบูรณ์
ตัวอย่างโปรแกรมรับและแสดงผลด้วยกล่องโต้ตอบ // File Name: Equation.java import javax.swing.JOptionPane; public class Equation { public static void main(String[] args) String strX, strOutput; int x; int y; strX = JOptionPane.showInputDialog("Enter x "); x = Integer.parseInt(strX); y = x *x + 2*x + 10; strOutput = " Y=x*x + 2*x +10 \n x = " + x + "\n y = " + y; JOptionPane.showMessageDialog(null,strOutput); System.exit(0); } //end method main } //end class
ตัวอย่างโปรแกรมรับและแสดงผลด้วยกล่องโต้ตอบ คำอธิบาย String strX, strOutput; -ประกาศตัวแปรชื่อ strX และ strOutput ชนิด String String เป็นชื่อคลาส ใน java.lang -หน้าที่ strX คอยรับค่าที่ส่งมาจากกล่องโต้ตอบ showInputDialog -หน้าที่ strOutput เก็บข้อความผลลัพธ์ เพื่อนำไปแสดงบนกล่องโต้ตอบ ที่ได้จาก showMessageDialog
ตัวอย่างโปรแกรมรับและแสดงผลด้วยกล่องโต้ตอบ คำอธิบาย strX = JOptionPane.showInputDialog("Enter x "); แสดงกล่องโต้ตอบรับค่า แล้วส่งค่ากลับเป็นสายอักขระมาเก็บไว้ใน strx
ตัวอย่างโปรแกรมรับและแสดงผลด้วยกล่องโต้ตอบ คำอธิบาย x = Integer.parseInt(strX); Integer เป็นอ็อบเจกต์ชื่อเดียวกับคลาส Integer เมธอด parseInt ทำหน้าที่แปลงสายอักขระที่ส่งมาจาก strX ให้เป็นจำนวนเต็ม แล้วคืนกลับไป 4 “4” strX x 4
ตัวอย่างโปรแกรมรับและแสดงผลด้วยกล่องโต้ตอบ คำอธิบาย JOptionPane.showMessageDialog (null,strOutput); JOptionPane.showMessageDialog(null, strOutput,"Results", JOptionPane.INFORMATION_MESSAGE);
ตัวอย่างโปรแกรมรับและแสดงผลด้วยกล่องโต้ตอบ ตารางค่าคงที่ระบุไอคอนของ JOptionPane JOptionPane.ERROR_MESSAGE JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE JOptionPane.QUESTION_MESSAGE JOptionPane.PAIN_MESSAGE ไม่มีไอคอน
การนำข้อมูลเข้าและออกผ่านทาง Dialog Box แทน การรับข้อมูล การใช้ System.in.read การใช้ BufferReader ร่วมกับ InputSreamReader แนะนำให้ใช้ การนำข้อมูลเข้าและออกผ่านทาง Dialog Box แทน
โดยใช้ JOptionPane คลาส JOptionPane เป็นคลาสที่อยู่ใน package javax.swing และ ใช้สำหรับการรับข้อมูลผ่านทางคีย์บอร์ด และแสดงข้อมูลทางจอภาพ ในการทำงานของ graphics mode หรือ GUI โดยจะแสดงออกมาในลักษณะของ popup window ที่เรียกว่า dialog box
ลักษณะของ dialog box ของ JOptionPane InputDialog MessageDialog ConfirmDialog
การนำข้อมูลเข้าทาง InputDialog Box InputDialog เป็น Method ที่ java มีไว้ให้ใช้ในกลุ่มที่ใช้ Swing นำเข้า รูปแบบ String ตัวแปร = JOptionPane.showInputDialog(null,”ข้อความ”); นำออก รูปแบบ JOptionPane.showMessageDialog(null,“ข้อความ " ); หรือ รูปแบบ JOptionPane.showMessageDialog (null,“ข้อความ " + ตัวแปร);
Input Dialog สร้างขึ้นจาก method ที่ชื่อ showInputDialog() ซึ่งจะ return ค่ากลับมาเป็น String ตัวอย่างเช่น String response = JOptionPane.showInputDialog( null, “What is your name?”);
Arguments of showInputDialog() ชื่อหัวข้อ (title) (option) ชนิดของ InputDialog (option) ERROR_MESSAGE INFORMATION_MESSAGE PLAIN_MESSAGE QUESTION_MESSAGE WARNING_MESSAGE
showInputDialog()
การแปลงชนิดค่าที่รับเข้าจาก InputDialogไปสู่ชนิดข้อมูลที่ต้องการ ใช้ Method parse ใน javax.swing.JOptionPane Int ตัวแปร = Integer.parseInt(ตัวแปรString); Float ตัวแปร = Float.parseFloat(ตัวแปรString); String data = JOptionPane.showMessageDialog(null,“เงินเดือน" ); Float salary = Integer.parseInt(data);
import javax.swing.JOptionPane; class FindCfromF { public static void main(String[] args) { String message,data;float f,c; data = JOptionPane.showInputDialog(null,"Enter F degree : "); f = Float.parseFloat(data); c = ((f-32)/9)*5; message = "f = "+f+" c = "+c; JOptionPane.showMessageDialog(null,message); System.exit(0); }
Message Dialog MessageDialog เป็น dialog box ที่ใช้สำหรับแสดงข้อความ หรือข้อมูลต่างๆ โดยถูกสร้างจาก method ชื่อว่า showMessageDialog() ค่า argument ของ showMessageDialog() จะเหมือนกับ showInputDialog()
showMessageDialog() JOptionPane.showMessageDialog(null, "Hello..Java!!"); JOptionPane.showMessageDialog(null, "This program will terminate in 10 seconds", "Programtermination", JOptionPane.WARNING_MESSAGE);
Confirm Dialog ConfirmDialog เป็น dialog box ที่มีปุ่มคำสั่ง Yes No และ Cancel ปรากฎด้วย โดยสร้างจาก method ชื่อ showConfirmDialog() showConfirmDialog() จะ return ค่ากลับเป็น ตัวเลขจำนวนเต็ม (integer) โดยขึ้นกับปุ่มที่ผู้ใช้คลิก นั่นคือ ปุ่ม Yes จะมีค่าเท่ากับ 0 ปุ่ม No จะมีค่าเท่ากับ 1 และปุ่ม Cancel จะมีค่าเท่ากับ 2
Arguments of showConfirmDialog() ชื่อของ parent window ข้อความที่ต้องการแสดงใน inputDialog ชื่อหัวข้อ (title (option) ค่าคงที่ของปุ่ม Yes No และ Cancel ที่ต้องการแสดง ซึ่งมี 2 แบบ คือ (option) YES_NO_CANCEL_OPTION YES_NO_OPTION ชนิดของ InputDialog ซึ่งจะถูกกำหนดโดยค่าคงที่ต่อไปนี้ (option) ERROR_MESSAGE INFORMATION_MESSAGE PLAIN_MESSAGE QUESTION_MESSAGE WARNING_MESSAGE
showConfirmDialog() int s = JOptionPane.showConfirmDialog(null, ”Are you ready to quit? "); int s = JOptionPane.showConfirmDialog( null, "Are you ready to quit?", "Exit confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
ฝึกปฎิบัติตัวอย่าง Input1 ถึง Input14.java
import javax.swing.JOptionPane; public class Input1 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: "); System.exit(0); }
import javax.swing.JOptionPane; class Input2 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: ", "Data Input",JOptionPane.ERROR_MESSAGE); System.exit(0); }
import javax.swing.JOptionPane; class Input3 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: ", "Data Input",JOptionPane.INFORMATION_MESSAGE); System.exit(0); }
import javax.swing.JOptionPane; class Input4 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: ", "Data Input",JOptionPane.PLAIN_MESSAGE); System.exit(0); }
import javax.swing.JOptionPane; class Input5 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: ", "Data Input",JOptionPane.WARNING_MESSAGE); System.exit(0); }
import javax.swing.JOptionPane; class Input6 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: ", "Data Input",JOptionPane.QUESTION_MESSAGE); System.exit(0); }
import javax.swing.JOptionPane; class Input7 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: "); JOptionPane.showMessageDialog(null, "Hello! "+data); System.exit(0); }
import javax.swing.JOptionPane; class Input8 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: "); JOptionPane.showMessageDialog(null,data, " Input Name : ",JOptionPane.WARNING_MESSAGE); System.exit(0); }
import javax.swing.JOptionPane; class Input9 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: "); JOptionPane.showMessageDialog(null,"Hello " + data, " Input Name : ",JOptionPane.WARNING_MESSAGE); System.exit(0); }
import javax.swing.JOptionPane; class Input10 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: "); JOptionPane.showMessageDialog(null,"Hello " + data); System.exit(0); }
import javax.swing.JOptionPane; class Input11 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: "); JOptionPane.showMessageDialog(null,"Hello " + data); int s = JOptionPane.showConfirmDialog(null,"Are you ready to quit? "); System.exit(0); }
import javax.swing.JOptionPane; class Input12 { public static void main(String[] args) { String data; data = JOptionPane.showInputDialog(null,"Enter Name: "); JOptionPane.showMessageDialog(null,"Hello " + data); int s = JOptionPane.showConfirmDialog(null,"Are you ready to quit? "); JOptionPane.showMessageDialog(null,"no select = " +s ); System.exit(0); }
import javax.swing.JOptionPane; class Input13{ public static void main(String[] args) { float score; double d; int mid_score,final_score,total_score; char ch; String data, message; message = " "; mid_score = 30 ; data = JOptionPane.showInputDialog("Enter final score: "); final_score = Integer.parseInt(data); total_score = mid_score+final_score; message = "Mid = " + mid_score +"Final = "+final_score+ " Total score = " + total_score; JOptionPane.showMessageDialog(null, message); System.exit(0); }
import javax.swing.JOptionPane; class Input14{ public static void main(String[] args) { float salary,ot,debt,net; String data, message; data = JOptionPane.showInputDialog("Enter Your Salary: "); salary = Float.parseFloat(data); data = JOptionPane.showInputDialog("Enter Your OT: "); ot = Float.parseFloat(data); data = JOptionPane.showInputDialog("Enter Your debt : "); debt = Float.parseFloat(data); net = salary+ot-debt; message = "salary = "+ salary + " ot = "+ ot + "debt = " + debt + " net = "+net ; JOptionPane.showMessageDialog(null, message); System.exit(0); }
import javax.swing.JOptionPane; public class FindAverage { public static void main ( String args[ ] ) { float x, y, average; String data, outText; data = JOptionPane.showInputDialog("Enter first value : "); x = Float.parseFloat(data); data = JOptionPane.showInputDialog("Enter second value : "); y = Float.parseFloat(data); average = (x + y) / 2.0f; outText = "Average number between " + x + " and " + y + " is " + average; JOptionPane.showMessageDialog(null, outText); System.exit(0); }
ครั้งต่อไป Control Structure && Expression