طباعة الكائنات

إن خرج البرنامج السابق هو:
Time@80cc7c0
Time@80cc807
عندما تطبع Java قيمة نوع كائني معرف بوساطة المستخدم، تطبع اسم النوع ورمز ست عشري خاص (عدد أساسه 16) فريد ولا يمكن أن يكون مكرراً لكائنين. لا معنى لهذا الرمز في حد ذاته؛ في الحقيقة، يمكن أن يتغير هذا الرمز بين جهاز وآخر بل حتى بين تشغيل وآخر. لكن يمكن أن يكون مفيداً عند تصحيح الأخطاء، في حال كنت ترغب بمتابعة مسار الكائنات المنفردة.
لطباعة الكائنات بطريقة ذات معنى للمستخدمين (ما يقابل المبرمجين)، يمكنك كتابة عملية تدعى شيئاً ما مثل printTime:
كود:
public static void printTime(Time t) {
   System.out.println(t.hour + ":" + t.minute + ":" + t.second);
}
قارن هذه العملية بنسخة printTime الموجودة في القسم 3.10.
إن خرج هذه العملية هو 11:8:3.14159، سواء مررنا t1 أو t2 كمتحول لها. ومع أننا نستطيع معرفة أن هذا الشكل يمثل الوقت، إلا أنه ليس مكتوباً بصيغة صحيحة. مثلاً، إذا كان عدد الدقائق أو الثواني أقل من 10، فيفترض وجود 0 على يسار الرقم لتملأ الفراغ. قد نرغب أيضاً بإهمال الجزء العشري من الثواني. أي أننا نريد شيئاً مثل 11:08:03.
في معظم لغات البرمجة، توجد أساليب بسيطة للتحكم بتنسيق طباعة الأرقام. أما في Java فلا توجد طرق بسيطة.
توفر Java أدوات قوية لطباعة أشياء بتنسيق معين مثل التاريخ والوقت، كما توفر أيضاً أدوات لتفسير المدخلات المنسقة. لسوء الحظ، فإن استعمال هذه الأدوات ليس بسيطاً، لذلك لن أشرحها في هذا الكتاب. يمكنك إلقاء نظرة على وثائق الصنف Date الموجود في حزمة java.util، إذا كنت ترغب بذلك.