متغيرات الصنف

حتى الآن، شاهدنا المتغيرات المحلية التي يتم تصريح عنها داخل عملية، ومتغيرات الحالة، التي يتم التصريح عنها في تعريف الصنف، غالباً قبل تعاريف العمليات.
يتم إنشاء المتغيرات المحلية عند استدعاء العملية ويتم تدميرها عند انتهائها. يتم إنشاء متغيرات الحالة عندما تنشئ كائناً جديداً ويتم تدميرها عندما يتم جمع الكائن مع القمامة.
الآن حان وقت معرفة متغيرات الصنف (class variables). مثل متغيرات الحالة، يتم تعريف متغيرات الصنف في تعريف الصنف قبل تعاريف العمليات، لكننا نعرفها باستخدام الكلمة المفتاحية static. يتم إنشاء هذه المتغيرات عند تشغيل البرنامج، وتظل على قيد الحياة حتى إنهاء البرنامج.
يمكنك الوصول إلى متغير الصنف من أي مكان داخل تعريف الصنف. يتم استخدام متغيرات الصنف غالباً لتخزين القيم الثابتة التي نحتاجها في عدة أماكن.
كمثال، هذه نسخة من Card حيث يكون suits وranks متغيري صنف:
كود:
class Card {                               
   int suit, rank;
 
   static String[] suits = { "Clubs", "Diamonds", "Hearts", "Spades" };
   static String[] ranks = { "narf", "Ace", "2", "3", "4", "5", "6",
   "7", "8", "9", "10", "Jack", "Queen", "King" };
 
   public static void printCard(Card c) {
   System.out.println(ranks[c.rank] + " of " + suits[c.suit]);
   }
}
يمكننا الوصول إلى suits وranks من داخل printCard كما لو كانا متغيرين محليين.