ก้าวแรกสู่โลกจาวา : Hello World

ที่มา : https://introcs.cs.princeton.edu/java/11hello/

เป้าหมายของพวกเราจะนำทางท่านไปสู่โลกของการเขียนโปรแกรมภาษาจาวา  โดยนำทางพวกท่านไปสู่สามท่าพื้นฐาน ที่ต้องการให้โปรแกรมธรรมดาทำงานได้  ติดตั้งแอพพลิเคชั่นต่าง ๆ ที่คุณต้องการให้เรียบร้อย และจาวาต้องมีการติดตั้งลงในคอมพิวเตอร์แล้ว  อีกทั้งคุณยังสามารถแก้ไข และใช้งานผ่านเทอร์มินอลได้ [ Mac OS X ·Windows · Linux ]

การพัฒนาโปรแกรมในภาษาจาวา พวกเราสามารถเข้าใจจาวาได้เลยเพียงแค่ 3 ขั้นตอน

  1. สร้าง : สร้างโปรแกรมที่คุณได้พิมพ์ลงไปใน text editor และบันทึกไฟล์เป็น Myprogram.java
  2. คอมไพล์ : เปิด terminal ในวินโดว์แล้วทำการพิมพ์ “ javac Myprogram.java” นั่นเป็นการประมวลผลของโปรแกรม
  3. ทำงาน : เปิด Terminal ขึ้นมาแล้วทำเดินการพิมพ์ “java Myprogram” เพื่อให้โปรแกรมนั้นทำงานได้นั่นเอง

สำหรับขั้นตอนแรกขั้นตอนสร้างโปรแกรม  ขั้นตอนที่สองเป็นการแปลภาษาเพื่อให้สามารถสนทนากับเครื่องจักรรู้เรื่อง (และการใส่ค่าผลลัพธ์ในไฟล์ MyProgram.class)  และอันดับที่สามารถเป็นการให้โปรแกรมนั้นทำงานจริง ๆ

  • การสร้างโปรแกรมจาวา  โดยโปรแกรมไม่มีอะไรมากไปกว่าการที่ตัวอักษรมาเรียงร้อยถ้อยคำ  ในรูปประโยค เป็นย่อหน้า หรือเป็นบทกลอน เพื่อที่จะสร้างในสิ่งที่พวกเราต้องการ  โดยเราสามารถจัดการตัวอักษรเหล่านั้นได้โดยการใช้ text editor โดยเหมือนกับเรากำลังเขียน email อยู่นั่นละ  HelloWorld.java เป็นโปรแกรมตัวอย่าง  ลองพิมพ์ตัวอักษรลงไปใน text editor  และก็จัดการบันทึกในชื่อไฟล์เป็น HelloWorld.java.
public class HelloWorld {
  public static void main(String[] args) {
     // Prints "Hello, World" in the terminal window.
     System.out.println("Hello, World");
  }
}
  • การคอมไพล์โปรแกรมจาวา  ตัวคอมไพล์เลอร์เป็นโปรแกรมหนึ่งที่ใช้ในการแปลภาษาโปรแกรมจากภาษาจาวา  เป็นภาษา Low Level มันจะนำ text file ที่มีสกุล .java ซึ่งเป็นส่วนขยายที่ไว้ส่งค่าเข้าไปโปรแกรมของคุณ และได้ดำเนินการแปลงไฟล์เป็น .class โดยส่วนขยายที่จะใช้ในการคอมไพล์ไปเป็นรูปแบบภาษาคอมพิวเตอร์ HelloWorld.java  แล้วพิมพ์ตัวอักษรตัวหน้าลงในเทอร์มินัลได้โดยการที่  พวกเราได้พิมพ์สัญลักษณ์ % เพื่อกำหนดค่าที่หน้าต่าง command แต่มันสามารถแสดงต่างกันขึ้นอยู่กับระที่คุณใช้เลย

%javac HelloWorld.java

ถ้าคุณได้ทำการพิมพ์ถูกต้องแล้ว   คุณไม่ควรเห็นข้อความ Error ใด ๆ ไม่ก็ลองกลับไปตรวจสอบดูเลยว่าคุณพิมพ์เหมือนข้างบนไหม

  • เริ่มให้โปรแกรมจาวาทำงาน  เอาละคุณลองรันโปรแกรมดูเลย  โดยที่คุณทำตามคำแนะนำมาตลอด เพื่อให้รันโปรแกรม HelloWorld  งั้นเราลองมาทำตามในหน้าต่างเทอร์มินัล  ด้วยการพิมพ์
% java HelloWorld

ถ้าทั้งหมดเดินทางไปได้ด้วยดี  คุณควรจะได้ผลตามนี้

Hello, World

  • การเข้าใจในโปรแกรมจาวา  คือ คีย์หลัก ๆ ที่เราจะเข้าใจในแต่ละบรรทัด  โดยบรรทัดนี้ System.out.println() จะแสดงข้อความ “Hello, World” ในหน้าต่างเทอร์มินัล  เมื่อพวกเราดำเนินการเขียนให้มันสลับซับซ้อนมากยิ่งขึ้น  และพวกเราจะอธิบายถึงความหมายของ public, class, main, String[], args, System.out, และอื่น ๆ ได้
  • การสร้างโปรแกรมจาวาของคุณเอง ในเวลานี้  โปรแกรมของเราทั้งหมดจะคล้ายกับ  HelloWorld.java เว้นแต่ลำดับการวางประโยคใน main()ที่ต่างกัน  เป็นเรื่องง่ายที่สุดในการเขียนโปรแกรมแต่ละตัว  เป็นไปได้ดังนี้
    • คัดลอก HelloWorld.java ชื่อไฟล์ใหม่จะต้องตามด้วย .java เสมอ
    • แทน HelloWorld กับชื่อของโปรแกรมในทุก ๆ จุด
    • แทนประโยคที่ใช้การแสดงผล  โดยการลำดับประโยคให้ถูกต้อง

ข้อผิดพลาด

ข้อผิดพลาดส่วนใหญ่นั้นมักจะแก้ไขได้ง่าย  เพียงแค่ระมัดระวังในการเขียนเท่านั้นเอง  เหมือนกับการที่เราแก้ไขคำผิด และหลักภาษาที่ผิดพลาด  เมื่อตอนเราพิมพ์ E-mail ไปผิดเท่านั้นแหละ

  • ช่วงเวลาในการคอมไพล์ผิดพลาด ส่วนนี้เป็นข้อผิดพลาดที่สามารถตรวจจับได้โดยระบบเมื่อพวกเราคอมไพล์โปรแกรม  เพราะว่าโดยระบบเองได้ป้องกันการคอมไพล์จากการที่แปลภาษาอยู่แล้ว ดังนั้นบางทีข้อความที่ผิดพลาดปรากฎขึ้นมา  เพื่อที่จะอธิบายถึงข้อผิดพลาดบางอย่างนั้นเอง
  • การรันโปรแกรมที่ผิดพลาด ข้อผิดพลาดเหล่านี้ถูกตรวจจับได้โดยระบบเมื่อเราเริ่มทำการรันโปรแกรม  เพราะว่าโปรแกรมพยายามที่จะทำงานทั้ง ๆ ที่กระบวนการมันผิด เช่น การหารด้วย 0
  • ตรรกะที่ผิดพลาด  นี้เป็นข้อผิดพลาดที่ต้องใช้ซึ่งความหวังในการตรวจจับได้โดยการที่โปรแกรมเมอร์ที่ทำการรันโปรแกรม  และได้ส่งผลคำตอบที่ผิด และนั่นเอง Bug คือพิษของโปรแกรมเมอร์ที่ยังอยู่ พวกมันสามารถซ่อนเร้นและทำการตรวจเจอได้ยากมาก

หนึ่งในทักษะที่พวกเราต้องเรียนรู้ในการตรวจหาข้อผิดพลาดนั้น  โดยทักษะนี้ต้องใช้ความระมัดระวังอย่ามากในโค้ดโปรแกรม เพื่อที่จะหลีกเลี่ยงข้อผิดพลาดต่าง ๆ เหล่านี้ได้

นำเข้าและส่งออก  

ปกติแล้วพวกเราต้องการที่จะจัดหา input ที่จะใส่ในโปรแกรมของเรา  ข้อมูลที่โปรแกรมได้ดำเนินการประมวลผลเพื่อคำตอบนั้น เป็นอะไรที่ธรรมดาที่สุดที่จะหาข้อมูลมาป้อนดังที่ปรากฎใน UseArgument.java  แม้ว่าโปรแกรมนี้ถูกทำงาน  มันอ่านข้อความในหลายบรรทัดที่คุณพิมพ์ไป  หลังจากชื่อโปรแกรม และได้ทำการแสดงผลลัพธ์ออกมาที่หน้าต่างเทอร์มินัลเป็นข้อความดังนี้

javac UseArgument.java
% java UseArgument Alice
Hi, Alice. How are you?
% java UseArgument Bob
Hi, Bob. How are you?

แบบฝึกหัด

  1. เขียนโปรแกรม TenHelloWorlds.java เพื่อแสดงผล “Hello, World” 10 ครั้ง
  2. ปรับแต่ง UseArgument.java เพื่อสร้างโปรแกรม UseThree.java ที่นำชื่อมา 3 ชื่อ  และแสดงผลในประโยคที่เหมาะสมกับชื่อ  และให้ชื่อเหล่านั้นเรียงกลับด้านกัน ดังตัวอย่าง  “java UseThree Alice Bob Carol”  ให้เป็น “Hi Carol, Bob, and Alice.”.

แบบฝึกหัดบนเว็บไซต์

  1. เขียนโปรแกรม Initials.java นั้นแสดงผลโดยเริ่มต้นใช้เพียงดองจันทร์ 9 บรรทัดคล้ายกลับรูปข้างล่างเลย
**        *** **********      ** *      **
**      *** **        ** ** ***           **
**    ***     ** **     ** ** **       **
**  ***         ** **     ** ** **    **
*****            ** **   ** ** ** **
**  ***         ** **       ** ** ** **
**    ***     ** **         ** ** ** **
**      *** **        ** ***        ***
**        *** **********              * *
  1. อธิบายว่าเพิ่มอะไรขึ้น ถ้าสิ่งเหล่านี้ตกหล่น HelloWorld.java
    1. main
    2. String
    3. HelloWorld
    4. System.out
    5. println
  2. อธิบายว่าเกิดอะไรขึ้น ถ้าสิ่งเหล่านี้ตกหล่น HelloWorld.java
    1. เครื่องหมาย ;
    2. เครื่องหมายตัวแรก “
    3. เครื่องหมายตัวที่สอง “
    4. เครื่องหมายตัวแรก {
    5. เครื่องหมายตัวที่สอง {
    6. เครื่องหมายตัวแรก }
    7. เครื่องหมายตัวที่สอง }
  3. อธิบายว่าเกิดอะไรขึ้น  ถ้าข้อความเหล่านี้สะกดผิด HelloWorld.java
    1. main
    2. String
    3. HelloWorld
    4. System.out
    5. println
  4. ผมได้พิมพ์ตามโปรแกรมข้างต้นไป  และได้ทำการคอมไพล์ได้เป็นอย่างดี  แต่เมื่อทำการรันโปรแกรมแล้วนั้น ทำไมเกิดข้อผิดพลาดได้ละ java.lang.NoSuchMethodError: main. ผมทำอะไรผิดพลาดละเนี่ย
public class Hello {
  public static void main() {
     System.out.println("Doesn't execute");   
  }
}

คำตอบ  คุณลืมใส่ String[] args

ตอนนี้เรามี แคมป์สอน JAVA เข้มข้นสามเดือนราคาเบาๆ ใครที่กำลังมองหาคอสเพิ่มทักษะไม่ควรพลาด ลองอ่านรายละเอียดตามลิงค์ด้านล่างดูได้เลยครับ
https://getcode.dev/courses/codecamp-bundle-pack/

Write a comment