Java เป็นภาษาโปรแกรมเชิงวัตถุ และอ็อบเจ็กต์เป็นองค์ประกอบหลักใน Java อย่างไรก็ตาม Java ยังจัดให้มีแนวคิดของคลาสแบบคงที่อีกด้วย คลาสแบบคงที่คือคลาสที่สามารถมีได้เฉพาะวิธีการแบบคงที่ ตัวแปร และคลาสที่ซ้อนกันเท่านั้น ในบทความนี้ เราจะมาสำรวจว่า Static Class คืออะไร ทำงานอย่างไร และนำไปใช้งานใน Java
คลาสคงที่ใน Java
คลาสคงที่ใน Java เป็นคลาสที่ไม่สามารถสร้างอินสแตนซ์ได้ นั่นคือเราไม่สามารถสร้างอ็อบเจ็กต์ของคลาสสแตติกได้ เราสามารถเข้าถึงได้เฉพาะสมาชิกโดยใช้ชื่อคลาสเท่านั้น กล่าวอีกนัยหนึ่ง คลาสแบบคงที่คือคลาสที่มีสมาชิกแบบคงที่เท่านั้น คลาสแบบคงที่มักใช้เพื่อจัดกลุ่มวิธีการอรรถประโยชน์ที่เกี่ยวข้องเข้าด้วยกัน ตัวอย่างเช่น คลาส Mathใน Java เป็นคลาสแบบคงที่ที่ให้การดำเนินการทางคณิตศาสตร์ต่างๆ เช่น การค้นหาค่าสูงสุดหรือต่ำสุด ฟังก์ชันตรีโกณมิติ และอื่นๆ เราสามารถเข้าถึงวิธีการในคลาส Math ได้โดยใช้ชื่อคลาสและตัวดำเนินการจุด เช่นนี้Math.max (5, 10)ตัวอย่าง
ลองมาดูตัวอย่างของคลาสคงที่ใน Java สมมติว่าเราต้องการสร้างคลาสเพื่อดำเนินการกับสตริงต่างๆ เช่น การกลับสตริง การค้นหาความยาวของสตริง และอื่นๆ ในตัวอย่างนี้ เราได้สร้างคลาสแบบคงที่ชื่อStringUtilsซึ่งมีวิธีการแบบคงที่สองวิธี: ย้อนกลับและความยาว วิธีการเหล่านี้ใช้สตริงเป็นอาร์กิวเมนต์และส่งกลับสตริงที่กลับรายการและความยาวของสตริงตามลำดับ ใน เมธอด หลักเราได้สร้างสตริงstrแล้วส่งต่อไปยังเมธอด "ย้อนกลับ" และ "ความยาว" ของคลาส StringUtilspublic 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 ยังสามารถมีคลาสที่ซ้อนกันแบบสแตติก ซึ่งสามารถใช้เพื่อจัดกลุ่มฟังก์ชันที่เกี่ยวข้องเข้าด้วยกัน
GO TO FULL VERSION