JavaRush /Blog Java /Random-MS /Coffee break #142. Apakah peranan yang dimainkan oleh kat...

Coffee break #142. Apakah peranan yang dimainkan oleh kata kunci statik dalam Java?

Diterbitkan dalam kumpulan
Sumber: FreeCodeCamp Kata kunci statik boleh digunakan dalam bahagian berlainan kod Java seperti pembolehubah, kaedah dan blok statik. Hari ini kita akan mengetahui dengan tepat bagaimana ia boleh digunakan dalam amalan. Coffee break #142.  Apakah peranan yang dimainkan oleh kata kunci statik dalam Java?  - 1Tujuan utama menggunakan kata kunci statik dalam Java adalah untuk menjimatkan memori. Apabila kita mencipta pembolehubah dalam kelas yang akan diakses oleh kelas lain, kita mesti mencipta contoh kelas dahulu dan kemudian memberikan nilai baharu kepada setiap contoh pembolehubah. Ini perlu supaya nilai pembolehubah baharu adalah sama untuk semua kelas/objek baharu. Tetapi apabila kita mencipta pembolehubah statik, nilainya kekal malar dalam semua kelas lain dan kita tidak perlu mencipta contoh untuk menggunakan pembolehubah tersebut. Dengan cara ini kita mencipta pembolehubah sekali, jadi memori diperuntukkan sekali sahaja. Anda akan memahami perkara ini dengan lebih baik dengan beberapa contoh dalam artikel ini.

Bagaimana untuk mencipta pembolehubah statik di Java

Untuk memahami cara menggunakan kata kunci statik semasa membuat pembolehubah, mari lihat cara biasa mencipta pembolehubah yang dikongsi oleh setiap tika kelas.
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
    }
}
Saya akan menerangkan perkara yang berlaku dalam kod di atas langkah demi langkah. Kami telah mencipta kelas Pelajar dengan tiga pembolehubah - studentName , kursus dan sekolah . Kami kemudian mencipta dua contoh kelas Pelajar :
Student Student1 = new Student();
Student Student2 = new Student();
Contoh pertama ialah Student1 , yang mempunyai akses kepada pembolehubah yang dibuat dalam kelasnya, mempunyai nilai berikut:
Student1.studentName = "Ihechikara";
Student1.course = "Data Visualization";
Student1.school = "freeCodeCamp";
Contoh kedua mempunyai makna berikut:
Student2.studentName = "John";
Student2.course = "Data Analysis with Python";
Student2.school = "freeCodeCamp";
Jika anda melihat dengan teliti, anda akan mendapati bahawa kedua-dua pelajar mempunyai nama sekolah yang sama - "freeCodeCamp". Tetapi bagaimana jika kita terpaksa mencipta 100 pelajar untuk sekolah yang sama? Ini bermakna bahawa kita akan memulakan pembolehubah dengan nilai yang sama 100 kali, memperuntukkan memori baharu setiap kali. Ini mungkin tidak menjadi masalah bagi sesetengah orang, tetapi dalam pangkalan kod yang besar ia boleh melambatkan program dengan ketara. Untuk menyelesaikan isu ini, kami akan menggunakan kata kunci statik untuk mencipta pembolehubah sekolah . Selepas ini, semua contoh kelas boleh menggunakan pembolehubah ini. Sesuatu seperti ini:
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
    }
}
Dalam kod ini, kami telah mencipta pembolehubah statik yang dipanggil school . Perhatikan bahawa kata kunci statik mendahului jenis data dan nama pembolehubah: statik String school = "freeCodeCamp"; . Kini apabila kita mencipta tika baharu kelas kita, kita tidak perlu memulakan pembolehubah sekolah untuk setiap tika. Dalam kod kami, kami memberikan nilai kepada pembolehubah hanya dalam contoh pertama, dan kemudian ia diwarisi oleh contoh seterusnya. Ambil perhatian bahawa menukar nilai pembolehubah statik di mana-mana dalam kod mengatasi nilai di bahagian lain kod di mana ia diisytiharkan sebelum ini. Oleh itu, anda hanya perlu menggunakan kata kunci statik untuk pembolehubah yang bertujuan untuk kekal malar dalam program. Anda juga boleh menetapkan nilai kepada pembolehubah apabila anda menciptanya supaya anda tidak perlu mengisytiharkannya semula apabila anda membuat instantiate kelas: statik String school = "freeCodeCamp"; . Inilah yang anda dapat jika anda menggunakan kaedah ini:
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
    }
}
Sekarang anda akan melihat bagaimana untuk memulakan pembolehubah statik menggunakan blok statik.

Bagaimana untuk mencipta kaedah statik di Java

Sebelum kita melihat contoh, berikut adalah beberapa perkara yang perlu anda ketahui tentang kaedah statik di Jawa:
  • Kaedah statik hanya boleh mengakses dan mengubah suai pembolehubah statik.
  • Kaedah statik boleh dipanggil/digunakan tanpa membuat contoh kelas.
Berikut ialah contoh untuk membantu anda memahami perkara ini:
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
    }
}
Dalam kod di atas, kami telah mencipta integer ( evenNumber ) dalam kelas yang dipanggil EvenNumber . Kaedah statik kami dipanggil incrementBy2() . Kaedah ini menambah nilai integer evenNumber dan mencetak nilainya. Tanpa membuat contoh kelas, kami dapat memanggil kaedah incrementBy2() dalam kaedah utama program . Setiap kali kami memanggil kaedah, evenNumber ditambah sebanyak 2 dan dicetak. Anda juga boleh menambahkan nama kelas pada kaedah menggunakan notasi titik apabila memanggil kaedah: EvenNumber.incrementBy2(); . Setiap kaedah statik adalah milik kelas, bukan contoh kelas.

Bagaimana untuk membuat blok statik di Java

Blok statik di Java adalah serupa dengan pembina. Kita boleh menggunakannya untuk memulakan pembolehubah statik, ia dilaksanakan oleh pengkompil sebelum kaedah utama .
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);
    }
}
Dalam kod di atas, kami mencipta tahun pembolehubah integer statik . Kami kemudiannya memulakannya dalam blok statik:
static {
        year = 2022;
        System.out.println("This code block got executed first");
    }
Seperti yang anda lihat, blok statik boleh dibuat menggunakan kata kunci statik diikuti dengan pendakap kerinting. Dalam blok statik kod kami, kami memulakan pembolehubah tahun dengan nilai 2022. Kami juga mencetak beberapa teks - "Blok kod ini dilaksanakan dahulu." Dalam kaedah utama kami mencetak "Hello World" dan tahun pembolehubah statik . Dalam konsol, kod akan dilaksanakan dalam susunan ini:
Blok kod ini telah dilaksanakan pertama Hello World 2022
Ini jelas menunjukkan bagaimana kod dalam blok statik dilaksanakan terlebih dahulu sebelum kaedah utama .

Kesimpulan

Dalam artikel ini, kita bercakap tentang kata kunci statik dalam Java. Ini adalah kata kunci yang pada asasnya membantu kami mengoptimumkan memori dalam program yang ditulis dalam Java. Kami juga melihat cara membuat pembolehubah statik dan kaedah dengan contoh. Akhirnya, kita bercakap tentang blok statik, yang boleh digunakan untuk memulakan pembolehubah statik. Blok statik dilaksanakan sebelum kaedah utama. Selamat mengekod!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION