Java مثال عملي يوضح فائدة الكلمة static في جافا

لنفترض أننا نريد إنشاء كلاس إسمه book لتخزين الكتب مع مراعاة الشروط التالية:
كل كتاب يجب ذكر إسمه bookName, إسم المؤلف author, و عدد الصفحات pageNumbers بالإضافة أنه يجب حفظ عدد الكتب الكلي.
لحفظ عدد الكتب يمكننا إنشاء متغير نوعه private و static يزيد واحداً كلما قمنا بإنشاء كائن جديد ( أي كتاب جديد, لأن كل كتاب عبارة عن كائن من الكلاس book ).

بعد إنشاء هذا الكلاس, سنقوم بإنشاء الكلاس MainBook لتجربته.

Book.java
public class Book {
                                       // هنا قمنا بتعريف الخصائص التي يجب أن تتوفر في كل كتاب
    public String bookName;            // سنستخدم هذا المتغير لحفظ إسم الكتاب
    public String bookAuthor;          // سنستخدم هذا المتغير لحفظ إسم المؤلف
    public int    pageNumbers;         // سنستخدم هذا المتغير لحفظ عدد صفحات الكتاب
 
    private static int bookCounter;    // private سنستخدم هذا المتغير لحفظ عدد الكتب, لا يمكن لأحد من خارج هذا الكلاس تغيير عدد الكتب لأنه
 
    // عند إنشاء كائنات من هذا الكلاس سنستخدم هذا الكونستركتور لإدخال معلومات الكتب مباشرةً عند تعريفهم
    public Book(String bookName, String bookAuthor, int pageNumbers) {
        this.bookName = bookName;
        this.bookAuthor = bookAuthor;
        this.pageNumbers = pageNumbers;
 
        bookCounter++;     // سيكون موحد لجميع الكائنات. هنا كلما قمنا بإنشاء كائن جديد سيزيد واحداً و هكذا سنحصل على عدد جميع الكتب التي أنشأت static بما أن نوعه
    }
 
    // هذه الدالة تطبع محتوى الكائن (أي الكتاب) الذي قام باستدعائها
    public void printBookInfo() {
        System.out.println("Book: " +bookName);
        System.out.println("Author: " +bookAuthor);
        System.out.println("Number of pages: " +pageNumbers);
        System.out.println("------------------------------");
    }
 
    // static هذه الدالة تطبع عدد الكائنات (أي الكتب) و يمكن استدعائها مباشرةً من الكلاس لأن نوعها
    public static void printTotalNumberOfBooks() {
        System.out.println("The total number of books is: " +bookCounter);
    }
 
}
		

Main.java
public class Main {
 
    public static void main(String[] args) {
 
        // هنا قمنا بإنشاء ثلاث كتب
        Book b1 = new Book("java", "Mhamad Harmush", 500);
        Book b2 = new Book("HTML", "Hala Harmush"  , 320);
        Book b3 = new Book("C++" , "Omar El Koussa", 210);
 
        // هنا قمنا بعرض خصائص كل كتاب
        b1.printBookInfo();
        b2.printBookInfo();
        b3.printBookInfo();
 
        // هنا قمنا بعرض عدد جميع الكتب
        Book.printTotalNumberOfBooks();
 
    }
 
}
		

سنحصل على النتيجة التالية عند التشغيل.

Book: java
Author: Mhamad Harmush
Number of pages: 500
------------------------------
Book: HTML
Author: Hala Harmush
Number of pages: 320
------------------------------
Book: C++
Author: Omar El Koussa
Number of pages: 210
------------------------------
The total number of books is: 3 
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة