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

คลาสคงที่ใน Java

คลาสคงที่ใน Java เป็นคลาสที่ไม่สามารถสร้างอินสแตนซ์ได้ นั่นคือเราไม่สามารถสร้างอ็อบเจ็กต์ของคลาสสแตติกได้ เราสามารถเข้าถึงได้เฉพาะสมาชิกโดยใช้ชื่อคลาสเท่านั้น กล่าวอีกนัยหนึ่ง คลาสแบบคงที่คือคลาสที่มีสมาชิกแบบคงที่เท่านั้น คลาสแบบคงที่มักใช้เพื่อจัดกลุ่มวิธีการอรรถประโยชน์ที่เกี่ยวข้องเข้าด้วยกัน ตัวอย่างเช่น คลาส Mathใน Java เป็นคลาสแบบคงที่ที่ให้การดำเนินการทางคณิตศาสตร์ต่างๆ เช่น การค้นหาค่าสูงสุดหรือต่ำสุด ฟังก์ชันตรีโกณมิติ และอื่นๆ เราสามารถเข้าถึงวิธีการในคลาส Math ได้โดยใช้ชื่อคลาสและตัวดำเนินการจุด เช่นนี้Math.max (5, 10)

ตัวอย่าง

ลองมาดูตัวอย่างของคลาสคงที่ใน Java สมมติว่าเราต้องการสร้างคลาสเพื่อดำเนินการกับสตริงต่างๆ เช่น การกลับสตริง การค้นหาความยาวของสตริง และอื่นๆ ในตัวอย่างนี้ เราได้สร้างคลาสแบบคงที่ชื่อStringUtilsซึ่งมีวิธีการแบบคงที่สองวิธี: ย้อนกลับและความยาว วิธีการเหล่านี้ใช้สตริงเป็นอาร์กิวเมนต์และส่งกลับสตริงที่กลับรายการและความยาวของสตริงตามลำดับ ใน เมธอด หลักเราได้สร้างสตริงstrแล้วส่งต่อไปยังเมธอด "ย้อนกลับ" และ "ความยาว" ของคลาส StringUtils
public class StringUtils {

    public static String reverse(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }

    public static int length(String str) {
        return str.length();
    }

    public static void main(String[] args) {
        String str = "Hello, World!";

        String reversedStr = StringUtils.reverse(str);
        int strLength = StringUtils.length(str);
        System.out.println(reversedStr);
        System.out.println(strLength);
    }
}
ผลลัพธ์ของโปรแกรมจะเป็น:
!dlroW ,olleH 13
ในตัวอย่างที่อัปเดตถัดไป เราได้เพิ่มคลาสที่ซ้อนกันแบบสแตติกที่เรียกว่าFormatterภายในคลาสStringUtils คลาสที่ซ้อนกันแบบคงที่นี้ยังมีวิธีการแบบคงที่ที่เรียกว่ารูปแบบที่รับสตริงและส่งกลับเวอร์ชันตัวพิมพ์ใหญ่ ใน วิธีการ หลักเราได้ใช้ตัวจัดรูป แบบคลาสที่ซ้อนกันแบบคงที่ เพื่อจัดรูปแบบสตริงstrและพิมพ์ไปยังคอนโซล นอกจากนี้เรายังเรียก วิธี การย้อนกลับและความยาวของ คลาส StringUtilsเพื่อย้อนกลับสตริงและค้นหาความยาวของมันตามลำดับ
public class StringUtils {

    // nested Static class
    public static class Formatter {
        public static String format(String str) {
            return str.toUpperCase();
        }
    }

    public static String reverse(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }

    public static int length(String str) {
        return str.length();
    }

    public static void main(String[] args) {
        String str = "Hello, World!";

        // Using static class
        String formattedStr = StringUtils.Formatter.format(str);
        System.out.println(formattedStr);

        String reversedStr = StringUtils.reverse(str);
        int strLength = StringUtils.length(str);
        System.out.println(reversedStr);
        System.out.println(strLength);
    }
}
ผลลัพธ์ของโปรแกรมจะเป็น:
สวัสดีชาวโลก! !dlroW ,olleH 13
อย่างที่คุณเห็น คลาสแบบสแตติกใน Java ยังสามารถมีคลาสที่ซ้อนกันแบบสแตติก ซึ่งสามารถใช้เพื่อจัดกลุ่มฟังก์ชันที่เกี่ยวข้องเข้าด้วยกัน

บทสรุป

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