Tutorial

Java 101 - Let's say Hello World!! (EP.1)

By Arnon Puitrakul - 21 ธันวาคม 2014

Java 101 - Let's say Hello World!! (EP.1)

ซีรีส์ Java 101 นี้ผมจะพยายามใช้ภาษาพูดเยอะหน่อยนะครับ เพราะมันเป็นการอธิบายซะส่วนใหญ่ ซึ่งมันจะมีกี่ตอนผมก็ไม่รู้เหมือนกัน
วันนี้ผมอยากเริ่มด้วยโปรแกรมที่คนที่เขียนโปรแกรมทุกคนจะต้องเคยเจอ ซึ่งคือ Hello World
ก่อนอื่นก็พิมพ์ตามนี้ก่อนเลยครับ

public class Helloworld
{
public static void main (String [] args)
{
System.out.println("Hello World");
}
}

Output ที่ควรจะออกมาคือ คำว่า Hello World นะครับ
มาอธิบายโค้ตกัน
บรรทัดแรก เป็นการประกาศคลาสชื่อ Helloworld (เดียวเรื่อง Class คาดว่า EP.2 ผมจะมาอธิบายนะครับ)
บรรทัดที่ 3 เป็นการประกาศ Method ชื่อ main โดยที่ไม่ส่งค่าใดๆกลับ หรือ void นั่นเอง ส่วนคำว่า public กับ static นั้นเป็น Modifier เดียวผมจะอธิบายไว้ข้างล่างแบบคร่าวๆก่อน
บรรทัดถัดลงมา ผมบอกว่า System.out.println("Hello World"); นั่นคือการให้โปรแกรมส่งออกค่าผ่านทางหน้าจอว่า Hello World
เพราะฉะนั้นคำสั่งที่เราได้รู้ในวันนี้คือ

  • System.out.println("Write Sth"); นั่นคือการส่งออกค่าผ่านทางหน้าจอนี่เอง (จริงๆมันมีอีกหลายคำสั่งที่ใช้ในการส่งออกค่าทางหน้าจอ แต่ไว้เดียว EP.3 ผมจะมาอธิบายอย่างละเอียดอีกครั้งนึง)
    ทีนี้ เมื่อกี้ผมค้างเรื่อง Modifier ทิ้งไว้
    ถามว่า Modifier มันคืออะไร
    จริงๆแล้วมันคือตัวที่ไว้กำหนดคุณสมบัติของตัววัตถุในโปรแกรมเรา ซึ่งเราจะแบ่งได้เป็น 2 แบบด้วยกัน
    1. Non-Access Modifier ตามชื่อเลยครับ มันคือตัวที่ไว้กำหนดอะไรก็ตามที่ไม่ใช่เรื่องของการเข้าถึงวัตถุในโปรแกรม เช่น static ที่เราเห็นใน main นั่นล่ะครับ ตัวเดียวกันเลย
    2.Access Modifier ตามชื่อมันเช่นเดียวกัน มันเป็นตัวกำหนดระดับในการเข้าถึงของวัตถุในโปรแกรมเราว่า คลาสนี้สามารถเข้่าถึงโค๊ตตรงนี้ได้มั้ยหรือยังไง ซึ่งที่เราใช้บ่อยๆเลยก็จะมี
  • public - อันนี้ก็ตามชื่อมันอีกเช่นเคย คือเปิดไปหมด ชอบโชว์นี่เอง เราสามารถเข้าถึงได้เกือบทุกที่ (ยกเว้นอะไรบ้างเดียวจะมาอธิบายในวันหลัง)
  • private - อันนี้ทำให้เราสามารถเข้าถึงได้เฉพาะในคลาสเดียวกันได้เท่านั้น เช่น ผมมีคลาสชื่อ Student แล้วก็มีคลาส Teacher ถ้าผมอยู่ในคลาส Teacher แล้วถ้าผมเขียนเรียกคำสั่งจากคลาส Student อันนั้นโปรแกรมมันจะ Compile ไม่ผ่านครับ เพราะมันเข้าถึงไม่ได้
  • protected - อันนี้ค่อนข้างพิเศษหน่อย(มั้ง) ผมว่างั้นนะ อันนี้มันทำให้เราเข้าถึงได้แค่จากคลาสที่เราสืบทอดมาได้เท่านั้น (เรื่องการสืบทอดเดียวจะไว้ว่ากันทีหลังยาวๆเลย)
  • package - อันนี้ทำให้เราสามารถเข้าถึงได้จาก Package เดียวกันเท่านั้นซึ่งเรื่องของ Package ก็อีกแหละ ต้องไว้อธิบายในวันหลังว่ามันคืออะไรกันแน่?
    อ่ออีกเรื่องนึง ผมว่ามีหลายๆคนถามผมว่า
    ทำไม ตอนประกาศ main จะต้องใส่คำว่า String[] args ด้วยล่ะ??
    ตอบนะครับ การที่เราใส่ String[] args เนี่ยมีไว้เพื่อเวลาเราเรียกโปรแกรมเราผ่าน Command Line ผมว่าทุกคนน่าจะเคยใช้ Command Line นะนะครับ(หรือไม่หว่า) ถ้าสังเกตเวลาเราใช้ Command Line เวลาเราพิมพ์คำสั่ง เราจะมีค่า Argument พิเศษต่อท้ายคำสั่ง เช่น dir -s เป็นต้น การที่เราใส่ไว้ก็เพียงเพื่อเอาให้รับค่าจาก Command Line ได้ก็เท่านั้นเลยครับ
    ถามต่อว่าแล้วจำเป็นต้องใส่มั้ยไอ้ String [] args เนี่ย?
    ควรจะใส่ไว้ครับ ลองคิดเล่นๆนะครับ ว่าถ้าเราไม่ใส่เป็นจะเป็นแค่ Method ที่ดูธรรมดาใช่มั้ยครับ เพราะฉะนั้น java เลยกำหนดว่า main เนี่ยจะต้องรับ String[] args ด้วยนะไม่งั้นไม่ใช่ main มันเป็น jvm specification ที่ตัวภาษา Java กำหนดไว้
    Source Code : https://drive.google.com/folderview?id=0BwrPA9Miv4o2RENZMnpFTDFaTkk&usp=sharing

Read Next...

สร้าง Book Tracking Library ด้วย Obsidian

สร้าง Book Tracking Library ด้วย Obsidian

เราเป็นคนที่อ่านกับซื้อหนังสือเยอะมาก ปัญหานึงที่ประสบมาหลายรอบและน่าหงุดหงิดมาก ๆ คือ ซื้อหนังสือซ้ำเจ้าค่ะ ทำให้เราจะต้องมีระบบง่าย ๆ สักตัวในการจัดการ วันนี้เลยจะมาเล่าวิธีการที่เราใช้ Obsidian ในการจัดการหนังสือที่เรามีกัน...

Garbage Collector บน Python ทำงานอย่างไร

Garbage Collector บน Python ทำงานอย่างไร

หากเราเรียนลงลึกไปในภาษาใหม่ ๆ อย่าง Python และ Java โดยเฉพาะในเรื่องของการจัดการ Memory ว่าเขาใช้ Garbage Collection นะ ว่าแต่มันทำงานยังไง วันนี้เราจะมาเล่าให้อ่านกันว่า จริง ๆ แล้วมันทำงานอย่างไร และมันมีเคสใดที่อาจจะหลุดจนเราต้องเข้ามาจัดการเองบ้าง...

ติดตั้ง Zigbee Dongle บน Synology NAS กับ Home Assistant

ติดตั้ง Zigbee Dongle บน Synology NAS กับ Home Assistant

ก่อนหน้านี้เราเปลี่ยนมาใช้ Zigbee Dongle กับ Home Assistant พบว่าเสถียรขึ้นเยอะมาก อุปกรณ์แทบไม่หลุดออกจากระบบเลย แต่การติดตั้งมันเข้ากับ Synology DSM นั้นมีรายละเอียดมากกว่าอันอื่นนิดหน่อย วันนี้เราจะมาเล่าวิธีการเพื่อใครเอาไปทำกัน...

โหลด CSV วิธีไหนเร็วที่สุด ?

โหลด CSV วิธีไหนเร็วที่สุด ?

เมื่อหลายวันก่อนมีพี่ที่รู้จักกันมาถามว่า เราจะโหลด CSV ยังไงให้เร็วที่สุด เป็นคำถามที่ดูเหมือนง่ายนะ แต่พอมานั่งคิด ๆ ต่อ เห้ย มันมีอะไรสนุก ๆ ในนั้นเยอะเลยนี่หว่า วันนี้เราจะมาเล่าให้อ่านกันว่า มันมีวิธีการอย่างไรบ้าง และวิธีไหนเร็วที่สุด เหมาะกับงานแบบไหน...