สอนเขียนโปรแกรม Java ตั้งแต่ต้น

สอนเขียนโปรแกรม Java ตั้งแต่ต้น

Java เป็นภาษาโปรแกรมที่ใช้กันมากทั้งในระบบองค์กร แอนดรอยด์ และเซิร์ฟเวอร์ จุดเด่นคือโค้ดหนึ่งชุดทำงานได้บนระบบปฏิบัติการหลายแบบ เพราะโค้ดถูกคอมไพล์เป็น bytecode แล้วรันบน JVM (Java Virtual Machine) บทความนี้จะพาคุณเขียนโปรแกรมแรก ทำความเข้าใจตัวแปร เงื่อนไข ลูป และคลาส แล้วคอมไพล์และรันด้วยตัวเอง

ทุกตัวอย่างในบทความนี้ถูกคอมไพล์และรันจริงด้วย Java 17 และได้ผลลัพธ์ตามที่แสดง

สิ่งที่ต้องเตรียม

ภาพรวมการทำงาน

ภาพแผนผังการทำงาน: ไฟล์ .java ผ่าน javac กลายเป็น .class แล้ว java รันบน JVM
ภาพแผนผังการทำงาน: ไฟล์ .java ผ่าน javac กลายเป็น .class แล้ว java รันบน JVM

ขั้นตอนพื้นฐานมีสามอย่าง คือเขียนไฟล์ `.java` คอมไพล์ด้วย `javac` ซึ่งได้ไฟล์ `.class` แล้วรันด้วย `java`

โปรแกรมแรก

สร้างไฟล์ชื่อ `Hello.java` ให้ชื่อคลาสตรงกับชื่อไฟล์เสมอ แล้วพิมพ์โค้ดนี้

public class Hello {
    public static void main(String[] args) {
        System.out.println("สวัสดี Java");
    }
}

คอมไพล์และรัน

javac -encoding UTF-8 Hello.java
java -Dfile.encoding=UTF-8 Hello

ผลลัพธ์

สวัสดี Java

`main` คือจุดเริ่มต้นของโปรแกรม `System.out.println` พิมพ์ข้อความออกหน้าจอ ตัวเลือก `-encoding UTF-8` ทำให้ภาษาไทยในไฟล์ถูกอ่านถูกต้อง

ตัวแปรและชนิดข้อมูล

Java เป็นภาษาที่กำหนดชนิดข้อมูลตายตัว ต้องประกาศชนิดของตัวแปรทุกครั้ง

ชนิดใช้เก็บตัวอย่าง
intจำนวนเต็ม`int age = 20;`
doubleจำนวนทศนิยม`double price = 19.5;`
booleanจริงหรือเท็จ`boolean passed = true;`
Stringข้อความ`String name = "สมชาย";`

เงื่อนไขและลูป

ตัวอย่างต่อไปนี้มีคลาส `Student` ที่ตัดสินเกรดจากคะแนน และใช้ `for` วนผ่านรายการนักเรียน

import java.util.ArrayList;
import java.util.List;

public class Hello {
    static class Student {
        String name;
        int score;

        Student(String name, int score) {
            this.name = name;
            this.score = score;
        }

        String grade() {
            if (score >= 80) return "A";
            else if (score >= 70) return "B";
            else if (score >= 50) return "C";
            return "F";
        }
    }

    public static void main(String[] args) {
        System.out.println("สวัสดี Java");

        List<Student> students = new ArrayList<>();
        students.add(new Student("สมชาย", 85));
        students.add(new Student("สมหญิง", 72));
        students.add(new Student("สมศักดิ์", 45));

        int total = 0;
        for (Student s : students) {
            System.out.println(s.name + " ได้เกรด " + s.grade());
            total += s.score;
        }
        System.out.println("คะแนนเฉลี่ย: " + (total / students.size()));
    }
}

ผลลัพธ์ที่ได้จากการรันจริง

สวัสดี Java
สมชาย ได้เกรด A
สมหญิง ได้เกรด B
สมศักดิ์ ได้เกรด F
คะแนนเฉลี่ย: 67

สิ่งที่ควรสังเกต

ข้อผิดพลาดที่มือใหม่มักเจอ

ขั้นต่อไป

เมื่อเข้าใจพื้นฐานแล้ว ให้ลองเขียนโปรแกรมคิดเลขขนาดเล็ก เก็บรายการข้อมูลด้วย `ArrayList` และแยกโค้ดเป็นหลายคลาสในหลายไฟล์ ก่อนจะไปถึงการทำ Web ด้วย Spring Boot

สรุป

Java ทำงานด้วยขั้นตอนคอมไพล์แล้วรันบน JVM จุดเริ่มต้นคือเมธอด `main` ตัวแปรต้องมีชนิดชัดเจน และคลาสช่วยจัดโครงสร้างโปรแกรมให้เป็นระเบียบ