Java Servlet & JSP day 1
มีโอกาสได้เรียนรู้พื้นฐานตั้งแต่แรกเริ่มกับเพื่อนๆที่ทำงาน จากนั้นเราอธิบายต่อไปว่า จะใช้ภาษาจาวาเขียนเว็บได้อย่างไร จาวาที่ทำเรื่องเว็บได้เรียกว่า servlet ครับ
ปัจจุบันนี้คงน้อยแล้วสำหรับใครที่จะมาฝึกภาษาจาวาเพื่อเขียนเว็บโดยใช้ servlet นอกเสียจากว่ามีโปรเจกต์เดิมต้องไปดูแล อาจจะแก้ bug หรือเพิ่ม feature เล็กๆน้อยๆ
เอ๊! หรือว่ายังคงเริ่มต้นโปรเจกต์ใหม่ด้วย servlet กันอยู่อีก?
จะด้วยเหตุผลใดก็แล้วแต่ครับ การฝึกฝนความคิดโดยเรียนความคิด OOP จากภาษาจาวาก็ไม่ได้เชยจนเกินไป ตรงกันข้ามมันกลับเป็นความคิดที่แข็งแรงมาก
ดังนั้นจึงถือโอกาสที่ได้รับนี้มาบอกเล่าการเรียนรู้พื้นฐานกระทั่งเราสามารถสร้างเว็บจากภาษาจาวาได้
การประกาศตัวแปร
ทุกสิ่งอย่างที่ทำบนเครื่องคอมพิวเตอร์นั้นล้วนต้องใช้หน่วยความจำครับ เรียกว่าการจองหน่วยความจำ การจองหน่วยความจำสามารถทำได้ด้วยการประกาศตัวแปร
การประกาศตัวแปรจำนวนเต็มและทศนิยม
int x = 100;
ตัวอย่างนี้เป็นการจองหน่วยความจำขนาด 4 bytes ชื่อ x เก็บค่าเป็นจำนวนเต็ม 100 เอาไว้
double y = 99.9;
ตัวอย่างนี้เป็นการจองหน่วยความจำขนาด 8 bytes ชื่อ y เก็บค่าเป็นเลขเทศนิยม 99.9 เอาไว้
ถ้าถามว่า แล้วมีการจองหน่วยความจำหรือประกาศตัวแปรแบบไหนบ้าง ให้ดูตารางนี้
ประกาศตัวแปรแบบ character
char z = 'P';
ตัวอย่างนี้เป็นการจองหน่วยความจำขนาด 2 bytes (โดย default) ในระบบ unicode มีช่วงตั้งแต่ u0000 ถึง uffff
ประกาศตัวแปรแบบ boolean
boolean a = true;
boolean b = false;
เป็นได้เพียง 2 ค่าเท่านั้น ได้แก่ จริง true กับ เท็จ false
การประกาศตัวแปรแบบ String
การจองหน่วยความจำสำหรับ String จะถูกจัดการต่างจากการจองหน่วยความจำที่ผ่านมา เนื่องจาก String อยู่ในรูปของคลาส
String nickName = "Phai";
โปรดสังเกตว่า String จะใช้ S เป็นพิมพ์ใหญ่นำ ภาษาจาวาหมายถึง (meaning) คลาส จากตัวอย่างตัวแปร nickName ได้ชี้ไปยังค่า “Phai”
โจทย์ความคิด
นาย John มาเปิดบัญชี
ถ้ามีลูกค้าเดินทางมาที่แบงก์ขอเปิดบัญชีชื่อนาย John จะเขียนโปรแกรมด้วยภาษาจาวาง่ายๆได้อย่างไร
String customerName = "John";
String accountNumber = "0123456789";
String accountName = "John";
double balance = 500;
โค้ดข้างต้นอธิบายได้ว่าลูกค้าชื่อ John มาเปิดบัญชีหมายเลข 0123456789 ชื่อบัญชีเดียวกับชื่อลูกค้าเองคือ John และฝากเงินไว้ 500 บาท
นางสาว Bee มาเปิดบัญชี
โปรแกรมเดียวกันนี้เพิ่มนางสาว Bee มาขอเปิด 2 บัญชี บัญชีแรกฝาก 500 บาท บัญชีที่สองฝาก 800.50 บาท
String customerName2 = "Bee";
String accountNumber2 = "0123456780";
String accountName2 = "Bee";
double balance2 = 500;
String accountNumber3 = "0123456781";
String accountName3 = "Bee Joo Boo";
double balance3 = 800.50;
โค้ดข้างต้นอธิบายได้ว่าลูกค้าชื่อ Bee มาเปิดบัญชีหมายเลข 0123456780 ชื่อบัญชี Bee และ 0123456781 ชื่อบัญชี Bee Joo Boo ตามลำดับ
เราจะเห็นว่าชื่อตัวแปรที่ใช้มีหมายเลขมาต่อท้ายเพื่อทำให้โปรแกรมนี้รันได้ ไม่อย่างนั้นแล้วชื่อตัวแปรจะซ้ำกันซึ่งถือว่าเป็น error ในภาษาจาวา มันก็จะไม่ทำงานนี้ให้
ลองจินตนาการดูว่าหากมีลูกค้ามาเปิดบัญชีมากกว่านี้โปรแกรมนี้จะไปในทิศทางไหน?
คงมีชื่อตัวแปรที่ใช้หมายเลขมาต่อท้ายเพิ่มขึ้นแน่ๆใช่ไหมครับ
พิมพ์ค่าออกทางจอภาพ
คราวนี้อยากให้ลองพิมพ์ชื่อลูกค้า หมายเลขบัญชี ชื่อบัญชีและยอดคงเหลือออกทางจอภาพ โค้ดน่าจะได้ประมาณนี้
System.out.println("Customer Name: " + customerName);
System.out.println("Account Number: " + accountNumber);
System.out.println("Account Name: " + accountName);
System.out.println("Account Balance: " + balance);
System.out.println("==========");
System.out.println("Customer Name: " + customerName2);
System.out.println("Account Number: " + accountNumber2);
System.out.println("Account Name: " + accountName2);
System.out.println("Account Balance: " + balance2);
System.out.println("==========");
System.out.println("Customer Name: " + customerName2);
System.out.println("Account Number: " + accountNumber3);
System.out.println("Account Name: " + accountName3);
System.out.println("Account Balance: " + balance3);
เมื่อคำสั่ง System.out.println
จะนำสตริงแสดงผลที่จอภาพ จอภาพในที่นี้คือ Command Line หรือ Terminal นั่นเอง
ผลที่ได้
ดูเยอะแยะอ่านยากไปนิด เรามารู้จักกับเมธอดแล้วสร้างสัก 1 เมธอดเพื่อทำงานนี้ดีกว่า
ปกติเมธอด main จะเขียนในรูป static method แบบนี้ถูกไหม public static void main(String[] args) { ... }
ให้เราสร้างเมธอดใหม่ชื่อ print ไว้ถัดจากเมธอด main หน้าตาแบบนี้
static void print(String customerName, String accountNumber, String accountName, double balance) {
System.out.println("==========");
System.out.println("Customer Name: " + customerName);
System.out.println("Account Number: " + accountNumber);
System.out.println("Account Name: " + accountName);
System.out.println("Account Balance: " + balance);
}
เมธอดใหม่นี้จะรับค่า 3 ค่า ได้แก่ customerName, accountNumber, accountName และ balance แล้วนำค่าเหล่านี้ไปพิมพ์ออกทางจอภาพ เวลาเรียกใช้มันในเมธอด main เราจะเรียกแบบนี้
print(customerName, accountNumber, accountName, balance);
print(customerName2, accountNumber2, accountName2, balance2);
print(customerName2, accountNumber3, accountName3, balance3);
ดังนั้น System.out.println
ที่ดูเยอะๆนั่นก็ลบออกไปได้ เหลือแค่นี้
สำหรับ day1 พอเท่านี้ก่อนครับ ให้ทบทวนแล้วก็อ่านภาษาจาวาพื้นฐานนะครับ
อ้างอิง
https://www.sitepoint.com/beginning-java-data-types-variables-and-arrays/