JavaRush /จาวาบล็อก /Random-TH /คอฟฟี่เบรค #142. คำหลักแบบคงที่มีบทบาทอย่างไรใน Java

คอฟฟี่เบรค #142. คำหลักแบบคงที่มีบทบาทอย่างไรใน Java

เผยแพร่ในกลุ่ม
ที่มา: FreeCodeCamp คีย์เวิร์ดแบบคงที่สามารถใช้ได้ในส่วนต่างๆ ของโค้ด Java เช่น ตัวแปร วิธีการ และบล็อกแบบคงที่ วันนี้เราจะมาดูกันว่าสามารถนำไปใช้ในทางปฏิบัติได้อย่างไร วัตถุประสงค์หลักของการใช้ สแตติกคอฟฟี่เบรค #142.  คำหลักแบบคงที่มีบทบาทอย่างไรใน Java  - 1คีย์เวิร์ดใน Java คือเพื่อประหยัดหน่วยความจำ เมื่อเราสร้างตัวแปรในคลาสที่จะเข้าถึงได้โดยคลาสอื่น เราต้องสร้างอินสแตนซ์ของคลาสก่อน จากนั้นจึงกำหนดค่าใหม่ให้กับแต่ละอินสแตนซ์ของตัวแปร นี่เป็นสิ่งจำเป็นเพื่อให้ค่าของตัวแปรใหม่เหมือนกันสำหรับคลาส/อ็อบเจ็กต์ใหม่ทั้งหมด แต่เมื่อเราสร้างตัวแปรคงที่ ค่าของมันจะคงที่ในคลาสอื่นๆ ทั้งหมด และเราไม่จำเป็นต้องสร้างอินสแตนซ์เพื่อใช้ตัวแปร วิธีนี้เราจะสร้างตัวแปรเพียงครั้งเดียว ดังนั้นหน่วยความจำจึงถูกจัดสรรเพียงครั้งเดียว คุณจะเข้าใจสิ่งนี้ได้ดีขึ้นด้วยตัวอย่างบางส่วนในบทความนี้

วิธีสร้างตัวแปรคงที่ใน Java

เพื่อให้เข้าใจถึงวิธีใช้ คีย์เวิร์ดแบบคงที่เมื่อสร้างตัวแปร มาดูวิธีปกติในการสร้างตัวแปรที่แต่ละอินสแตนซ์ของคลาสใช้ร่วมกัน
class Student {
    String studentName;
    String course;
    String school;

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();

        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";
        Student1.school = "freeCodeCamp";

        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";
        Student2.school = "freeCodeCamp";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
ฉันจะอธิบายสิ่งที่เกิดขึ้นในโค้ดด้านบนทีละขั้นตอน เราได้สร้าง ชั้น เรียนStudent โดยมีตัวแปรสามตัว ได้แก่ชื่อนักเรียนหลักสูตรและโรงเรียน จากนั้นเราจึงสร้าง คลาส Student สองอินสแตนซ์ :
Student Student1 = new Student();
Student Student2 = new Student();
อินสแตนซ์แรกคือStudent1ซึ่งมีสิทธิ์เข้าถึงตัวแปรที่สร้างขึ้นในคลาส โดยมีค่าต่อไปนี้:
Student1.studentName = "Ihechikara";
Student1.course = "Data Visualization";
Student1.school = "freeCodeCamp";
กรณีที่สองมีความหมายดังต่อไปนี้:
Student2.studentName = "John";
Student2.course = "Data Analysis with Python";
Student2.school = "freeCodeCamp";
หากมองใกล้ ๆ จะพบว่านักเรียนทั้งสองคนมีชื่อโรงเรียนเหมือนกัน - “freeCodeCamp” แต่จะเกิดอะไรขึ้นถ้าเราต้องสร้างนักเรียน 100 คนสำหรับโรงเรียนเดียวกัน? ซึ่งหมายความว่าเราจะเริ่มต้นตัวแปรด้วยค่าเดียวกัน 100 ครั้ง โดยจัดสรรหน่วยความจำใหม่ทุกครั้ง นี่อาจไม่เป็นปัญหาสำหรับบางคน แต่ในโค้ดเบสขนาดใหญ่ อาจทำให้โปรแกรมช้าลงอย่างมาก เพื่อแก้ไขปัญหานี้ เราจะใช้คำหลักแบบคงที่เพื่อสร้างตัวแปรโรงเรียน หลังจากนี้ ทุกอินสแตนซ์ของคลาสสามารถใช้ตัวแปรนี้ได้ บางสิ่งเช่นนี้:
class Student {
    String studentName;
    String course;
    static String school;

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();


        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";
        Student1.school = "freeCodeCamp";


        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
ในโค้ดนี้ เราได้สร้างตัวแปรคงที่ที่เรียกว่าschool โปรดสังเกตว่าคำหลักคงที่นำหน้าประเภทข้อมูลและชื่อตัวแปร: static String school = "freeCodeCamp"; . ตอนนี้เมื่อเราสร้างอินสแตนซ์ใหม่ของชั้นเรียนของเรา เราไม่จำเป็นต้องเริ่มต้น ตัวแปร โรงเรียนสำหรับแต่ละอินสแตนซ์ ในโค้ดของเรา เราได้กำหนดค่าให้กับตัวแปรในอินสแตนซ์แรกเท่านั้น จากนั้นจึงสืบทอดโดยอินสแตนซ์ถัดไป โปรดทราบว่าการเปลี่ยนแปลงค่าของตัวแปรคงที่ทุกที่ในโค้ดจะแทนที่ค่าในส่วนอื่นๆ ของโค้ดที่ได้รับการประกาศไว้ก่อนหน้านี้ ดังนั้น คุณควรใช้เฉพาะ คำหลัก คงที่สำหรับตัวแปรที่ตั้งใจให้คงที่ในโปรแกรมเท่านั้น คุณยังสามารถกำหนดค่าให้กับตัวแปรเมื่อคุณสร้างมัน เพื่อที่คุณจะได้ไม่ต้องประกาศอีกครั้งเมื่อคุณสร้างอินสแตนซ์ของคลาส: static String school = "freeCodeCamp"; . นี่คือสิ่งที่คุณจะได้รับหากคุณใช้วิธีนี้:
class Student {
    String studentName;
    String course;
    static String school = "freeCodeCamp";

    public static void main(String[] args) {
        Student Student1 = new Student();
        Student Student2 = new Student();


        Student1.studentName = "Ihechikara";
        Student1.course = "Data Visualization";

        Student2.studentName = "John";
        Student2.course = "Data Analysis with Python";

        System.out.println(Student1.studentName + " " + Student1.course + " " + Student1.school + "\n");
        // Ihechikara Data Visualization freeCodeCamp
        System.out.println(Student2.studentName + " " + Student2.course + " " + Student2.school);
        // John Data Analysis with Python freeCodeCamp
    }
}
ตอนนี้คุณจะเห็นวิธีการเริ่มต้นตัวแปรแบบคงที่โดยใช้บล็อกแบบคงที่

วิธีสร้างวิธีการคงที่ใน Java

ก่อนที่เราจะดูตัวอย่าง ต่อไปนี้คือบางสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับวิธีการคงที่ใน Java:
  • วิธีการแบบคงที่สามารถเข้าถึงและแก้ไขตัวแปรแบบคงที่เท่านั้น
  • สามารถเรียก/ใช้เมธอดแบบสแตติกได้โดยไม่ต้องสร้างอินสแตนซ์ของคลาส
นี่คือตัวอย่างที่จะช่วยให้คุณเข้าใจสิ่งนี้:
class EvenNumber {

    static int evenNumber;

    static void incrementBy2(){
        evenNumber = evenNumber + 2;
        System.out.println(evenNumber);
    }

    public static void main(String[] args) {
        incrementBy2(); // 2
        incrementBy2(); // 4
        incrementBy2(); // 6
        incrementBy2(); // 8
    }
}
ในโค้ด ข้าง ต้น เราได้สร้างจำนวนเต็ม ( evenNumber ) ในคลาสที่เรียกว่าEvenNumber วิธีการคงที่ของเราเรียกว่าincreatBy2( ) วิธีการนี้จะเพิ่มค่าของเลขจำนวนเต็มและพิมพ์ค่าของมัน โดยไม่ต้องสร้างอินสแตนซ์ของคลาส เราสามารถเรียก เมธอด increatBy2() ในเมธอด หลักของโปรแกรมได้ แต่ละครั้งที่เราเรียกเมธอดนี้EvenNumberจะเพิ่มขึ้น 2 และพิมพ์ออกมา คุณยังสามารถเพิ่มชื่อคลาสต่อท้ายเมธอดโดยใช้เครื่องหมายจุดเมื่อเรียกใช้เมธอด: EvenNumber.increatBy2(); . แต่ละวิธีแบบสแตติกเป็นของคลาส ไม่ใช่ของอินสแตนซ์ของคลาส

วิธีสร้างบล็อกแบบคงที่ใน Java

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

    static int year;

    static {
        year = 2022;
        System.out.println("This code block got executed first");
    }

    public static void main(String[] args) {

        System.out.println("Hello World");
        System.out.println(year);
    }
}
ในโค้ดข้างต้น เราได้สร้างตัวแปรจำนวนเต็มคงที่year จากนั้นเราเริ่มต้นมันในบล็อกแบบคงที่:
static {
        year = 2022;
        System.out.println("This code block got executed first");
    }
อย่างที่คุณเห็น static block สามารถสร้างได้โดยใช้คีย์เวิร์ด static ตามด้วยเครื่องหมายปีกกา ในบล็อกคงที่ของโค้ดของเรา เราได้เริ่มต้น ตัวแปร ปีด้วยค่า 2022 นอกจากนี้เรายังพิมพ์ข้อความบางส่วนออกมา - “บล็อกโค้ดนี้ถูกดำเนินการก่อน” ใน วิธีการ หลัก เราพิมพ์ "Hello World" และ ปีตัวแปรคงที่ ในคอนโซล รหัสจะถูกดำเนินการตามลำดับนี้:
บล็อกโค้ดนี้ถูกดำเนินการครั้งแรก Hello World 2022
สิ่งนี้แสดงให้เห็นอย่างชัดเจนถึงวิธีการดำเนินการโค้ดในบล็อกแบบคงที่ก่อนวิธี การ หลัก

บทสรุป

ในบทความนี้ เราได้พูดคุยเกี่ยวกับ สแตติกคีย์เวิร์ดใน Java นี่คือคีย์เวิร์ดที่ช่วยเราเพิ่มประสิทธิภาพหน่วยความจำในโปรแกรมที่เขียนด้วย Java โดยทั่วไป เรายังได้เห็นวิธีการสร้างตัวแปรคงที่และวิธีการพร้อมตัวอย่าง สุดท้ายนี้ เราได้พูดคุยเกี่ยวกับบล็อกแบบคงที่ ซึ่งสามารถใช้เพื่อเริ่มต้นตัวแปรแบบคงที่ได้ บล็อกแบบคงที่จะถูกดำเนินการก่อนวิธีการหลัก ขอให้มีความสุขในการเขียนโค้ด!
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION