Javaمثال عملي يوضح فائدة الكلمة static
في جافا
لنفترض أننا نريد إنشاء كلاس إسمه book
لتخزين الكتب مع مراعاة الشروط التالية:
كل كتاب يجب ذكر إسمه bookName
, إسم المؤلف author
, و عدد الصفحات pageNumbers
بالإضافة أنه يجب حفظ عدد الكتب الكلي.
لحفظ عدد الكتب يمكننا إنشاء متغير نوعه private
و static
يزيد واحداً كلما قمنا بإنشاء كائن جديد ( أي كتاب جديد, لأن كل كتاب عبارة عن كائن من الكلاس book
).
بعد إنشاء هذا الكلاس, سنقوم بإنشاء الكلاس MainBook
لتجربته.
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); } }
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