Bir firma ürettiği farklı tipteki saatlerinde çeşitli dişli çarklar kullanmaktadır. Her bir saatte kullanılan
dişli çark sayısı saatin boyutuna göre değişiklik göstermektedir. Duvar saati, masa saati ve kol saati
olmak üzere üç farklı tipte saat bulunmaktadır. Duvar saatinde 1 adet büyük, 1 adet orta ve 1 adet
küçük ebatlı dişli çark bulunmaktadır. Masa saatinde 1 adet orta ve 1 adet küçük ebatlı dişli çark
bulunmaktadır. Kol saatinde ise 1 adet küçük ebatlı dişli çark bulunmaktadır.
Programda “Saat” isimli temel bir sınıf bulunmaktadır. Saat sınıfının “zaman” isimli bir özelliği
bulunmaktadır. Diğer saat türleri için tüm sınıflar bu sınıftan türetilmiştir. Saat sınıfı “ZamanGoster”
isimli bir metoda sahiptir. Bu metot o anki zaman bilgisini her biri iki dijit olmak üzere (saat-dakika)
biçiminde ekrana yazmaktadır.
Saatlerdeki çarklar birbiri ile bağlantılıdır. Eğer küçük ebatlı dişli çark 2 defa dönmüş ise orta ebatlı
çark 1 defa dönmektedir. Eğer orta ebatlı dişli çark 2 defa döndüğünde ise büyük ebatlı çark 1 defa
dönmektedir.
Tüm saatlerde bir dakikalık zamanın geçmesi için küçük dişli çarkın bir defa dönmesi gerekmektedir.
Tüm sınıfların yapıcı metotları saatleri 00:00 değerine kurmaktadır.
Tüm sınıflarda “ayarla” isimli bir metot bulunmaktadır. Bu metot parametre olarak aldığı zaman
bilgisine göre saati kurmaktadır. Kurma işlemi tamamlandığında her bir çarkın kaç defa döndüğünü
ekrana yazdırmaktadır.
Programın düzgün çalışması için gerekli sınıfları tasarlayarak her bir saat türü için bir nesne oluşturup duvar saatini 12:15’ e masa saatini 15:30’ a kol saatini 17:48’ e kurunuz.